aws cloudformation list-stacks 给我重复的堆栈?

aws cloudformation list-stacks gives me duplicate stacks?

我运行这是为了获取我的 CF 堆栈列表:

aws cloudformation list-stacks --region us-east-1

我似乎得到了相同堆栈的多个结果。我好像它返回每个堆栈的每个 version?我如何为每个堆栈获得一个结果?

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

aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[].StackName'

或获取堆栈状态:

aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[].[StackName,StackStatus]' --output text

仅获取具有 运行 个堆栈的堆栈:

--stack-status-filter CREATE_COMPLETE

更多信息:aws cloudformation list-stacks

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

aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[].[StackName,StackStatus]' --output text | grep -v DELETE_COMPLETE

排除多个状态:

aws cloudformation list-stacks --region us-east-1 --query 'StackSummaries[].[StackName,StackStatus]' --output text | egrep -v 'DELETE_COMPLETE| CREATE_COMPLETE| UPDATE_COMPLETE'

CloudFormation 中没有堆栈版本的概念。 aws cloudformation list-stacks 不会 return 重复堆叠。

发生的情况是您可能有许多堆栈共享相同的名称。例如,您可以创建一个名为 "Stack1" 的堆栈,将其删除,然后创建一个同名的新堆栈 "Stack1"。这 2 个堆栈将具有不同的 ID,但会在调用 list-stacks 时出现。第一个将具有状态 DELETE_COMPLETE 并且具有与第二个堆栈不同的 ID。