返回的属性中包含句点/点时的AWS CLI查询选项

时间:2019-05-08 06:00:04

标签: aws-cli

这是我正在运行的命令

aws ssm describe-automation-executions \
    --filters "Key=ExecutionId,Values=b4a76700-50e0-4b3d-a790-d80a54ee91de" \
    --query "AutomationExecutionMetadataList[0].Outputs"

输出为

{
    "createImage.ImageId": [
        "ami-0db79d4244a6501bc"
    ]
}

这是我的期望。但是,我想进一步优化查询以选择createImage.ImageId,并且由于该属性中包含点,因此以下查询将不起作用

--query "AutomationExecutionMetadataList[0].Outputs.createImage.ImageId"

这将返回null作为结果输出。

我尝试了其他几件事,但是似乎无法通过AWS CLI查询选择createImage.ImageId属性。 是否可以通过--query来执行此操作,而无需使用其他脚本工具(jq等)

1 个答案:

答案 0 :(得分:1)

aws ssm describe-automation-executions \
        --filters "Key=ExecutionId,Values=b4a76700-50e0-4b3d-a790-d80a54ee91de" \
        --query 'AutomationExecutionMetadataList[0].Outputs."createImage.ImageId"'

经过一些试验,上述命令最终生效。

另一方面,我注意到http://jmespath.org/

中记录了该格式的AWS CLI查询格式
  

-query参数接受符合JMESPath规范的字符串

     

https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-filter