如何使用 aws cli 对特定标签执行分层查询并以平面结构输出结果?

问题描述 投票:0回答:1

通过以下查询

aws fsx describe-file-systems \
  --no-paginate --no-cli-pager --output yaml \
  --query 'FileSystems[].{id:FileSystemId,netid:NetworkInterfaceIds[0],name:Tags[?Key==`Name`].Value}'

输出列出了额外层次结构中标签中的搜索结果:

- id: fs-1234abcd
  name:
  - home
  netid: eni-1234abcde

我想要一个像这样的扁平结构:

- id: fs-1234abcd
  name: home
  netid: eni-1234abcde

这将使显示对象表或进行进一步查询变得更加容易。我尝试了通常的展平运算符

[]
但这不会消除额外的级别。我想我仍然不理解 JMESPath 或 aws 的实现所使用的数据类型的复杂性。

aws-cli
1个回答
0
投票

受到这个答案的启发,我现在明白了:

aws fsx describe-file-systems \
  --no-paginate --no-cli-pager --output yaml \
  --query 'FileSystems[].{id:FileSystemId,netid:NetworkInterfaceIds[0],name:Tags[?Key==`Name`].Value|[0]}'

我尝试添加

[0]
来取消引用一个标签的结果列表的第一个元素,但随后查询返回
(null)
。添加管道
|
就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.