Aws ec2 экземпляр ip-адрес от cli aws ec2 описать-экземпляры

saws спросил: 12 мая 2018 в 05:21 в: amazon-web-services

Я хотел бы получить все IP-адреса для экземпляра ec2. Я смотрю на CLI aws ec2 describe-экземпляры, и я вижу, что у нас есть 2 места, где у нас есть IP-адрес. Я понимаю, что каждый интерфейс может иметь собственный IP-адрес / IP-адрес и может принадлежать к различным подсетям, следовательно, поля в разделе "Сетевые интерфейсы". Но мне непонятно, почему у нас есть IP-адрес (публичный / частный) и подсеть. Не будут ли эти данные частью одного из интерфейсов. Есть ли что-нибудь, что это означает. почему это дублирование? `

например. aws ec2 describe-экземпляры

"Instances": [
    {
    *** I have IP address and subnet here ***
    "PrivateIpAddress": "10.0.0.19",
    "SubnetId": "subnet-12345678",
    "NetworkInterfaces": [
    ***I also have IP address, subnetId for each interface here**
    "PrivateIpAddress": "10.0.0.19",
    "SubnetId": "subnet-12345678",
    }
]

2 ответа

strongjz ответил: 12 мая 2018 в 06:14

Вам придется перебирать некоторые языки программирования, так как NetworkInterfaces - это список, а также PrivateIpAddresses.

https://docs.aws.amazon.com/cli/latest/reference/ec2/ describe-examples.html

JQ предоставит вам необходимый результат.

aws ec2 describe-instances  --instance-id i-1234567890qwertyu --output json | jq .Reservations[].Instances[].NetworkInterfaces[].PrivateIpAddresses[].PrivateIpAddress -r
10.0.1.247
10.0.1.246
dhillonfarms ответил: 14 мая 2018 в 05:09

Частным IP-адресом является первичный IP-адрес, назначенный экземпляру. Ниже приведен фрагмент кода в Python, чтобы получить следующее:

ec2 = boto3.resource('ec2')filters = [{
    <if-any>
     }]instances = ec2.instances.filter(Filters=filters)for instance in instances:
    print(instance.private_ip_address)