Как получить общедоступный IP-адрес шлюза NAT с помощью интерфейса командной строки AWS? - PullRequest
0 голосов
/ 31 октября 2019

Учитывая идентификатор VPC;Я использую AWS CLI и jq для получения адреса шлюза NAT для данного идентификатора VPC. Вот что у меня есть:

aws ec2 describe-nat-gateways --region='${aws_region}' | jq -r --arg efs_name ${vpcid} '.[] | .[] | select(.VpcId==$vpcid) | {nats: .NatGatewayAddresses}'

И вывод:

{
  "nats": [
            {
             "PublicIp": "52.34.207.107",
             "NetworkInterfaceId": "eni-0bc0d320",
             "AllocationId": "eipalloc-fa7739c0",
             "PrivateIp": "172.20.130.224"
            }
          ]
}

Есть ли способ получить PublicIp напрямую, используя фильтры AWS CLI для nat? -воротный ресурс?

Ответы [ 2 ]

2 голосов
/ 31 октября 2019

Используйте --query для извлечения поля:

aws ec2 describe-nat-gateways --query 'NatGateways[*].NatGatewayAddresses[*].PublicIp' 
2 голосов
/ 31 октября 2019

Поскольку в этом вопросе есть тег jq, вот несколько способов извлечь значение PublicIp (или, возможно, значения), используя текст JSON, как показано:

1) Все такие значения

.nats[] | .PublicIp

или

.. | objects | .PublicIp

2) Первое такое значение

Завершение любого из вышеперечисленных при вызове first.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...