region
не существует в выходных данных команды, поэтому вы не можете искать значение region
.
describe-security-groups-output
Таким образом, другой вариант - развернуть значение $region variable
, а затем использовать escape-последовательность, чтобы напечатать значение как статическое c значение.
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