我正在尝试使用aws cli命令根据没有名称标签的卷类型和状态进行过滤,并在下面添加其他标记
aws ec2 describe-volumes --filters Name=volume-type,Values=gp2 Name=status,Values="available" --query 'Volumes[?!not_null(Tags[?Key == `Name`].Value,Tags[?Key == `Alias`].Value)]'
上面的cli有效,但notnull部分不适用于这两个标签。它唯一的过滤量没有标记为"名称"但它仍然列出了标签为" Alias"
的所有卷我希望他们两个(标记为姓名和别名)不会出现 - 基本上
好吧,基于这个link:只过滤一个标签
aws ec2 describe-volumes --filters Name=volume-type,Values=gp2 Name=status,Values="available" --query 'Volumes[?!not_null(Tags[?Key == `Name`]'
编辑:尝试做类似的事情用StartTime描述快照
aws ec2 describe-snapshots --owner-ids "***********" --query 'Snapshots[?!not_null(Tags[?Key == `Name`]) && !not_null(Tags[?Key == `Alias`]) && ?StartTime>=`2017-09-15`]'
收到错误...是否可以提供上述日期范围?
答案 0 :(得分:1)
您可以使用JMESPath and
expression编写与
aws ec2 describe-volumes \
--filters Name=volume-type,Values=gp2 Name=status,Values="available" \
--query 'Volumes[?!not_null(Tags[?Key == `Name`]) && !not_null(Tags[?Key == `Alias`])]'