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

时间:2018-01-22 17:51:41

标签: amazon-web-services amazon-cloudformation aws-cli

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

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

我似乎在同一个堆栈中获得了多个结果。我好像它返回每个堆栈的每个版本?我如何为每个堆栈获得一个结果?

2 个答案:

答案 0 :(得分:2)

是什么让你认为它会返回重复的堆栈名称?有超过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'

答案 1 :(得分:1)

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

发生了什么事情,你可能有很多堆栈共享相同的名称。例如,您可以创建名为“Stack1”的堆栈,将其删除,并创建一个名为“Stack1”的新堆栈。这两个堆栈将具有不同的ID,但在调用list-stacks时将显示。第一个将具有状态DELETE_COMPLETE并且具有与第二个堆栈不同的ID。