【问题标题】:Get ARNs of all resources in Cloudformation Stack获取 Cloudformation Stack 中所有资源的 ARN
【发布时间】:2020-01-27 17:15:45
【问题描述】:

获取 Cloudformation 创建的每个资源的 ARN 的最简单方法是什么?

我正在尝试找到一种简单的方法来执行此操作,以便我可以收集此信息并将其发送到外部监控/拓扑工具,用于建立组件之间的关系。

据我所知,没有简单的方法可以获取 Cloudformation 中每个资源的 ARN。

我认为:

aws cloudformation describe-stack-resources --stack-name <stack-name-here>

可能有效,但我没有从中获得 ARN。

解决这个问题的最佳方法是什么?

【问题讨论】:

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


    【解决方案1】:

    如果describe-stack-resources(或list-stack-resource)要返回ARN 值,您可以通过--query flag 提取结果的某些字段。但是,用于在堆栈中列出 AWS 资源的 CLI 命令不提供 ARN。即使是输出字段 LogicalResourceIdPhysicalResourceIdResourceType 显然也不能用于第二个查询以分别获取 ARN。

    您可以使用resourcegroupstaggingapiget-resources 命令,其中returns 是标签和资源ARN 的列表。如果您使用例如堆栈名称标记所有资源;你应该可以这样称呼它:

    aws resourcegroupstaggingapi get-resources --tag-filters "Key=stackName,Values=myStackName"
    

    您还可以查看this 以进行进一步讨论,并访问此example 以了解其输出的外观。

    【讨论】:

    • 啊哈,这至少可以在某些场景中工作,通常我们应用“堆栈”标签,这样可能会工作 - 我会试一试,感谢您的出色回答!遗憾的是,您无法直接从 cloudformation 响应中获取 ARN。我本来打算将 PhysicalResourceId 和 Type 转换为 ARN,但是对于所有不同的资源来说太混乱了。
    猜你喜欢
    • 2016-07-07
    • 2019-08-27
    • 1970-01-01
    • 2020-03-13
    • 2020-07-11
    • 2020-02-06
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    相关资源
    最近更新 更多