这个命令有点问题。我只想列出egress
ACL
规则,只列出规则编号。所以这是我的命令:
aws ec2 describe-network-acls --network-acl-ids acl-c324a5a4 --output text --query 'NetworkAcls[*].Entries[*].{RN:RuleNumber}' --filter Name=entry.rule-action,Values=allow Name=entry.egress,Values=true
返回的是:
100
110
120
130
140
150
160
170
32767
100
110
120
130
140
150
160
170
32767
它基本上列出了出口和入口规则。出口和入口规则具有相同的规则编号。它还列出了* DENY rule (32767)
,我也想避免这种情况。
任何人都可以帮助我使用此命令,我只想列出出口规则编号吗?
由于
答案 0 :(得分:1)
所以你想要允许的 Egress 规则号。您可以使用以下查询执行此操作:
lower_case_with_underscore
您可以阅读有关Controlling Command Output from the AWS Command Line Interface
的更多信息答案 1 :(得分:1)
在awk和grep的帮助下,我们可以获得唯一的Egress规则列表,如下所示。
aws ec2 describe-network-acls --network-acl-ids acl-63092b1a --query 'NetworkAcls[*].Entries[*].[Egress,RuleNumber]' --output text | grep -v False | awk {'print $2'} | grep -v '^$\|^\s*\#'
要按特定字段的值过滤结果,请使用JMESPath“?”运营商。以下示例查询仅输出us-west-2a可用区中的卷:
$ aws ec2 describe-volumes --query 'Volumes[?AvailabilityZone==`us-west-2a`]'