AWS CLI 仅列出当前运行的 cloudformation 堆栈的名称?

Ale*_*lex 4 amazon-web-services aws-cloudformation aws-cli

我正在构建一个更大的 AWS CLI 工作,但其中一个构建块让我感到困惑;

如何获取当前正在运行的每个 AWS Cloudformation 堆栈的名称列表?

我可以使用以下内容很好地列出堆栈,但我无法获得将其与堆栈名称配对的查询。

aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE --output text
Run Code Online (Sandbox Code Playgroud)

我可以在 bash 中减少结果表,但如果存在更优雅的 aws 解决方案,我会喜欢。

Ant*_*ace 8

您可以将查询参数添加到同一查询中以将结果集缩小到仅 StackName。

根据@idbehold,您还需要包括所有堆栈状态过滤器,除了CREATE_FAILEDDELETE_COMPLETE真正捕获所有当前堆栈。这些只需要用空格分隔。

询问:

"StackSummaries[*].StackName"
Run Code Online (Sandbox Code Playgroud)

完整示例:

aws cloudformation list-stacks --stack-status-filter CREATE_IN_PROGRESS CREATE_COMPLETE ROLLBACK_IN_PROGRESS ROLLBACK_FAILED ROLLBACK_COMPLETE DELETE_IN_PROGRESS DELETE_FAILED UPDATE_IN_PROGRESS UPDATE_COMPLETE_CLEANUP_IN_PROGRESS UPDATE_COMPLETE UPDATE_ROLLBACK_IN_PROGRESS UPDATE_ROLLBACK_FAILED UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS UPDATE_ROLLBACK_COMPLETE REVIEW_IN_PROGRESS --query "StackSummaries[*].StackName"
Run Code Online (Sandbox Code Playgroud)

进一步阅读

  • 为了避免列出除 CREATE_FAILED 和 DELETE_COMPLETE 之外的所有可能的状态标志,可以执行客户端查询:``aws cloudformation list-stacks --query 'StackSummaries[*] | [?StackStatus!=`CREATE_FAILED` && StackStatus!=`DELETE_COMPLETE`] | [*].[StackName]' --输出文本`` (5认同)
  • AWS CLI 没有提供 `--stack-status-ignore` 选项真的太糟糕了。 (3认同)