Получение IP-адреса экземпляра EC2 по идентификатору экземпляра

С использованием aws CLIКак я могу получить частный IP-адрес экземпляра EC2, учитывая его instanceID?

Когда я делаю:

aws ec2 describe-instance-status --instance-ids <instance_ID>

Я получаю другую информацию, но не частные IP-адреса, такие как:

{
    "InstanceStatuses": [
        {
            "InstanceId": "XXXXX", 
            "InstanceState": {
                "Code": 16, 
                "Name": "running"
            }, 
            "AvailabilityZone": "us-east-1a", 
            "SystemStatus": {
                "Status": "ok", 
                "Details": [
                    {
                        "Status": "passed", 
                        "Name": "reachability"
                    }
                ]
            }, 
            "InstanceStatus": {
                "Status": "ok", 
                "Details": [
                    {
                        "Status": "passed", 
                        "Name": "reachability"
                    }
                ]
            }
        }
    ]
}

2 ответа

Решение

Пытаться describe-instances вместо. Частный IP-адрес не возвращается с описанием-экземпляром-статусом, потому что эта команда описывает состояние системы и экземпляра, в первую очередь касающееся оборудования / проблем или запланированных событий.

Согласно разделу "Вывод" документации описаний экземпляров, часть вывода описаний экземпляров представляет собой строку PrivateIpAddress,

Пример использования:

aws ec2 describe-instances --instance-ids <instance_ID>

Чтобы получить ВСЕ частные IP-адреса:

aws ec2 describe-instances --instance-ids ${INSTANCE_ID} |\
jq -r '.Reservations[].Instances[].NetworkInterfaces[].PrivateIpAddress'

или же

aws ec2 describe-instances --instance-ids ${INSTANCE_ID} |\
jq -r ".Reservations[]" | grep PrivateIpAddress |\
egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort -u

Вы можете сделать это, используя опцию запроса.

aws ec2 describe-instances --instance-ids ${INSTANCE_ID} --query Reservations[].Instances[].NetworkInterfaces[].PrivateIpAddress

Это просто вернет частный IP-адрес и никакой другой выходной информации

Другие вопросы по тегам