如何使用AWS CLI获取NAT网关公共IP?

时间:2019-10-30 23:52:03

标签: json amazon-web-services amazon-ec2 jq aws-cli

给出一个VPC ID;我正在使用AWS CLI和jq派生给定VPC ID的NAT网关地址。这是我到目前为止的内容:

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

是否可以使用nat-gateways资源的AWS CLI过滤器直接获取PublicIp

2 个答案:

答案 0 :(得分:2)

由于此问题具有jq标记,因此在给出JSON文本的情况下,以下是提取“ PublicIp”值(或值)的一些方法:

1)所有此类值

apply

apply :: Consumer a -> a -> IO ()
apply (Consumer f) x = void (f x)

2)首先是这样的值

将以上任一内容包装在对.nats[] | .PublicIp 的调用中。

答案 1 :(得分:2)

使用--query提取字段:

aws ec2 describe-nat-gateways --query 'NatGateways[*].NatGatewayAddresses[*].PublicIp'