IP-адрес экземпляра aws ec2 из описаний экземпляров aws ec2 - PullRequest
0 голосов
/ 05 июня 2018

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

например, aws ec2 описывает-экземпляры

"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 ]

0 голосов
/ 07 июня 2018

Частный 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)
0 голосов
/ 05 июня 2018

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

https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...