我运行它来获取我的CF堆栈列表:
aws cloudformation list-stacks --region us-east-1
我似乎在同一个堆栈中获得了多个结果。我好像它返回每个堆栈的每个版本?我如何为每个堆栈获得一个结果?
答案 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。