关于 AWS Cloudformation 标签和逻辑 ID 的问题?

Questions on AWS Cloudformation Tags and Logical ID's?

我想达到什么目的: 正在尝试使用云形成模板创建 VPC。

  1. 我观察到什么:当我使用 Cloud-formation 模板创建 VPC 时,在创建的每个服务的 TAGS 下[如子网、NAT、Internet 网关]我看到

aws:cloudformation:logical-id

aws:云formation:stack-id

aws:cloud formation:stack-名称

我在 KEY/VALUE 下看到上面提到的内容,尽管我的 JSON 模板不包含上面 lines.They 自动创建的内容。 同时,当我创建一个没有云形成的 VPC 时[使用仪表板],我没有在 TAGS.Can 下看到上面提到的任何内容有人解释为什么这些标签仅使用 Cloudformation 模板创建?

  1. 每当使用 AWS::EC2::VPCGatewayAttachment 和 AWS::EC2::Route 等服务时,主要用于将已创建的 NAT 和 Internet 网关附加到子网或 VPC,我会看到一个逻辑 ID 被创建它。在更新发生之前,我在 "Preview your changes"] 下看到了它们。 问题
    1. 更新后,我无法在任何地方refer/see那个逻辑ID?
    2. 是否为服务 AWS::EC2::VPCGatewayAttachment 和 AWS::EC2::Route 创建了逻辑 ID,它们只是充当硬件 [虚拟化硬件] 的启动器?

CloudFormation 默认将这些标签添加到它创建的所有资源中。它实际上对 运行 成本分配报告和获得 "cost per stack" 非常有帮助。 CloudFormation 使用这些标签对您的资源进行分组,并允许您使用逻辑标识符对堆栈执行命令,而无需知道所创建资源的实际标识符。 (示例:使用等待条件时,您需要使用逻辑标识符而不是实际资源标识符来指示云的形成)

更新后,您应该能够在 CloudFormation 堆栈的 "Resources" 选项卡下以及资源标签中看到所有资源的逻辑标识符和实际标识符。我相信 CloudFormation 确实会为其创建的所有资源创建逻辑标识符。

我注意到一件令人讨厌的事情是在云形成中使用 S3 存储桶时。 CloudFormation 将 aws:* 标签添加到存储桶中,这会阻止您手动 adding/removing 其他标签,因为在保存时它会抱怨 aws:* 标签无效。因此调整S3 bucket tags的唯一方法就是通过cloud formation stack。

截图: