AWS CLI JMESPath 查询帮助在 cli 中使用查询选项
AWS CLI JMESPath Query help using query option in cli
我有以下 cli 命令
aws ecs list-services --cluster ecs-cluster-1
给这个JSON
{
"serviceArns": [
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app4",
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app3",
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app1",
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app4"
]
}
如何使用 --query
选项通过匹配应用名称 (app1
) 取回 app1
ARN?
预期输出
arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app1
请注意,此 JSON 数组未排序。
假设它是列表中的第一个条目,您可以使用:
--query servicesArns[0]
根据您的操作系统,您可能需要引用它:
--query 'servicesArns[0]'
如果您要查找 'contains' app1
的条目,请使用:
--query serviceArns[?contains(@, 'app1') == `true`]|[0]
那些back-ticks总是给我带来麻烦。您可以尝试并可能使用其他 tick-marks.
JMESPath 的良好参考:
您可以使用 contains
or ends_with
作为过滤部分。
然后您想停止项目并获取数组的第一项,以便只有您感兴趣的应用程序 ARN。
文档的 pipe expression 教程中介绍了停止投影。
所以,给定表达式
serviceArns[?ends_with(@,'app1')]|[0]
你最终得到了预期的结果
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app1"
在 AWS 命令行界面中,这将是:
aws ecs list-service \
--cluster ecs-cluster-1 \
--query "serviceArns[?ends_with(@,'app1')]|[0]"
我有以下 cli 命令
aws ecs list-services --cluster ecs-cluster-1
给这个JSON
{
"serviceArns": [
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app4",
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app3",
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app1",
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app4"
]
}
如何使用 --query
选项通过匹配应用名称 (app1
) 取回 app1
ARN?
预期输出
arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app1
请注意,此 JSON 数组未排序。
假设它是列表中的第一个条目,您可以使用:
--query servicesArns[0]
根据您的操作系统,您可能需要引用它:
--query 'servicesArns[0]'
如果您要查找 'contains' app1
的条目,请使用:
--query serviceArns[?contains(@, 'app1') == `true`]|[0]
那些back-ticks总是给我带来麻烦。您可以尝试并可能使用其他 tick-marks.
JMESPath 的良好参考:
您可以使用 contains
or ends_with
作为过滤部分。
然后您想停止项目并获取数组的第一项,以便只有您感兴趣的应用程序 ARN。
文档的 pipe expression 教程中介绍了停止投影。
所以,给定表达式
serviceArns[?ends_with(@,'app1')]|[0]
你最终得到了预期的结果
"arn:aws:ecs:us-east-1:XXXXXXXXXXXXX:service/ecs-cluster-1/app1"
在 AWS 命令行界面中,这将是:
aws ecs list-service \
--cluster ecs-cluster-1 \
--query "serviceArns[?ends_with(@,'app1')]|[0]"