给出一个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
?
答案 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'