aws cloudformation 列表堆栈给了我重复的堆栈?

red*_*888 2 amazon-web-services aws-cloudformation aws-cli

我运行它以获取我的 CF 堆栈列表:

aws cloudformation list-stacks --region us-east-1
Run Code Online (Sandbox Code Playgroud)

对于相同的堆栈,我似乎得到了多个结果。我似乎返回每个堆栈的每个版本?我如何只为每个堆栈获得一个结果?

hel*_*loV 7

是什么让您认为它返回重复的堆栈名称?是否有超过 100 个堆栈?以下应仅提供堆栈名称并应包括最新版本。

aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[].StackName'
Run Code Online (Sandbox Code Playgroud)

或获取堆栈状态:

aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[].[StackName,StackStatus]' --output text
Run Code Online (Sandbox Code Playgroud)

仅获取运行堆栈的堆栈:

--stack-status-filter CREATE_COMPLETE
Run Code Online (Sandbox Code Playgroud)

有关更多信息:aws cloudformation list-stacks

您可以使用 JMESPATH in--query来排除某些状态下的堆栈。最简单的方法是使用grep.

aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[].[StackName,StackStatus]' --output text | grep -v DELETE_COMPLETE
Run Code Online (Sandbox Code Playgroud)

排除多个状态:

aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[].[StackName,StackStatus]' --output text | egrep -v 'DELETE_COMPLETE| CREATE_COMPLETE| UPDATE_COMPLETE'
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过更新查询参数来排除已删除的堆栈。您的命令将如下所示:`aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[?starts_with(StackStatus, \`DELETE_COMPLETE\`) != \`true\`].[StackName,StackStatus ]' --输出文本` (2认同)