命令输出中不存在region,因此无法查找值region。
describe-security-groups-output
所以另一种选择是扩展$region variable 的值,然后使用转义序列将该值打印为静态值。
Region:\``echo $region`\`
你可以使用
export region=us-east-1 && aws ec2 describe-security-groups --region=$region --filters Name=ip-permission.cidr,Values='0.0.0.0/0' --query "SecurityGroups[*].{Name:GroupName,vpc:VpcId,sg:GroupId,Region:\``echo $region`\` }" --output table
样本输出
---------------------------------------------------------------------------------------
| DescribeSecurityGroups |
+-------------------------------+------------+------------------------+---------------+
| Name | Region | sg | vpc |
+-------------------------------+------------+------------------------+---------------+
| launch-wizard-17 | us-west-2 | sg-12345 | vpc-12345 |
AWS-cli 查看区域,因此您可以一次获取所有区域,从所有区域中获取 security group 使用下面的脚本。
#!/bin/bash
for region in $(aws ec2 describe-regions --query "Regions[].RegionName" --output text); do
echo "SG for region ${region}"
aws ec2 describe-security-groups --region=$ --filters Name=ip-permission.cidr,Values='0.0.0.0/0' --query "SecurityGroups[*].{Name:GroupName,vpc:VpcId,sg:GroupId,Region:\``echo $region`\` }" --output table
done
aws-cli-cheatsheet