使用 Boto3 来自 CF 模板的资源 ARN

Resources ARN from CF template using Boto3

我有一个配置不同资源的云形成模板,例如(EC2、S3、DynamoDB、Lamda、IAM 角色、RDS、EIP、EBS)。想要获取资源 ARN。因此,我们可以相应地更新资源标签。 Cloudformation describe_stacks Api 未提供有关资源 ARN 的信息。 在 boto3 中创建标签需要资源的 ARN。

回应=client.tag_resources( ResourceARNList=[ 'string', ], 标签={ 'string': 'string' } )

您可以将标签应用于堆栈本身,而不是单独标记所有资源。您应用于 AWS CloudFormation 模板的任何标签都将自动应用于堆栈创建的资源。来自 the documentation:

All stack-level tags, including automatically created tags, are propagated to resources that CloudFormation supports. Currently, tags aren't propagated to Amazon EBS volumes that are created from block device mappings.

文档中没有提到这一点,但是describe_stacksAPI中的StackId字段实际上是CloudFormation堆栈的ARN(Sample output). You can use it along with client.tag_resources标记堆栈。

如果出于某种原因您需要为堆栈创建的每个资源单独添加不同的标签,您有两个选择:

  1. 在 CloudFormation 模板本身中定义标签。
  2. 在 CloudFormation 模板的 output section 中添加 ARN 值。然后,您可以使用 describe_stacks.
  3. 读取值