首页 > 解决方案 > 返回的属性中有句点/点时的 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作为结果输出返回。

我尝试了其他几件事,但似乎无法createImage.ImageId通过 AWS CLI 查询选择属性。是否可以通过--query不使用其他脚本工具(jq等)来做到这一点

标签: aws-cli

解决方案


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

经过一些实验,上面的命令最终起作用了。

在旁注中,我注意到 AWS CLI 查询格式采用此处记录的格式http://jmespath.org/

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

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


推荐阅读