AWS CLI - 使用 jmespath 查询的结果

AWS CLI - result using jmespath query

我有问题所以你会保护我的生命:-)

当我 运行 来自 aws-shell

的以下命令时
cloudformation describe-stacks --query Stacks[*].[StackName,StackId,CreationTime,LastUpdatedTime,Parameters[?ParameterKey==\`PARAM_NAME1\`].ParameterValue,Parameters[?ParameterKey==\`PARAM_NAME2\`].ParameterValue] --output text

结果分为 3 行:

automation-X arn:aws:cloudformation:X X None
PARAM_VALUE1
PARAM_VALUE2

但我的目标是只有一行(像这样)

automation-X arn:aws:cloudformation:X X None PARAM_VALUE1 PARAM_VALUE2

也就是说,在第一行也是唯一一行有 PARAM_VALUE1 和 PARAM_VALUE2。

谁能帮帮我?

我很感激, 提前谢谢你

忘记说明了,命令的结果多行(1000多行),每行由6个参数组成

表达式

Parameters[?ParameterKey==`PARAM_VALUE1`].ParameterValue

returns 本身 returns 一个 数组 ParameterValue 的投影。即使该数组只包含一个项目,aws --output text 模式仍然将其解释为一个新行。要解决此问题,您需要使用管道 | 将投影转换为单个值以停止投影,然后选择数组中的第一项:

aws cloudformation describe-stacks --query 'Stacks[*].[StackName,StackId,CreationTime,LastUpdatedTime,Parameters[?ParameterKey==`PARAM_NAME1`].ParameterValue|[0],Parameters[?ParameterKey==`PARAM_NAME2`].ParameterValue|[0]]' --output text

您会看到 |[0] 添加到查询中的每个参数。