如何按标签值过滤 CloudFormation 堆栈?

red*_*888 1 amazon-web-services aws-cloudformation aws-cli jmespath

我想获取具有以下标记/值的所有 CloudFormation 堆栈的堆栈名称:

elasticbeanstalk:environment-namemyenvironment

有什么办法可以做到这一点吗?我尝试了这个查询,但它引发了语法错误:

aws cloudformation describe-stacks --query 'Stacks[].Tags[?Key == `elasticbeanstalk:environment-name` && ?Value == `myenvironment`]'
Run Code Online (Sandbox Code Playgroud)

编辑

我弄清楚了过滤部分,但我不知道如何获取堆栈名称。这将返回 null,如何检索 StackName?

aws cloudformation describe-stacks --query 'Stacks[].Tags[?Key == `elasticbeanstalk:environment-name` && Value == `myenv`].{MyStack: StackName}'
Run Code Online (Sandbox Code Playgroud)

red*_*888 10

这实在是太痛苦了。我期待编写比正则表达式更少的 jmespath 查询

aws cloudformation describe-stacks --query 'Stacks[?Tags[?Key == `elasticbeanstalk:environment-name` && Value == `myenvname`]].{StackName: StackName}' --output text
Run Code Online (Sandbox Code Playgroud)