You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Former2导出Troposphere/Raw子网代码时出现标签缺失问题

Former2导出子网资源丢失关联标签问题处理

问题现象

使用Former2导出IaC代码时,部分子网生成的代码未携带关联标签,分别使用Troposphere、Raw两种导出模式校验均存在该问题,异常代码示例如下:

EC2Subnet20 = template.add_resource(ec2.Subnet(
    'EC2Subnet20',
    AvailabilityZone=GetAtt(EC2Instance2, 'AvailabilityZone'),
    CidrBlock="30.0.2.0/24",
    VpcId=Ref(EC2VPC),
    MapPublicIpOnLaunch=False
))

EC2Subnet21 = template.add_resource(ec2.Subnet(
    'EC2Subnet21',
    AvailabilityZone=GetAtt(EC2Instance, 'AvailabilityZone'),
    CidrBlock="30.0.21.0/24",
    VpcId=Ref(EC2VPC),
    MapPublicIpOnLaunch=False,
    Tags=[
        {
            "Key": "Name",
            "Value": "TS-Subnet-Private-Dev"
        }
    ]
))

经AWS控制台核查,EC2Subnet20对应资源实际配置了2个标签,但导出代码中无对应Tags配置项。

问题根因

该问题不属于本地工具配置错误,是Former2默认扫描逻辑的已知缺陷:

  • Former2默认扫描资源时优先调用资源列表类接口拉取配置,这类接口返回的标签字段仅覆盖资源创建时直接绑定、或在资源详情页手动编辑的自定义标签,不会拉取通过标签编辑器批量绑定、其他AWS服务自动附加的托管标签、Organizations组织层级继承的强制标签,因此会出现同类型资源部分带Tags字段、部分缺失的情况。
  • Troposphere、Raw两种导出模式共用同一套扫描源数据,只要源数据未拉取全量标签,两种模式的导出结果都会丢字段,不是单一导出模板的问题。

处理方案

  • 打开Former2设置面板,找到扫描配置分类,开启资源级接口拉取全量标签选项(对应英文选项:Include tags from resource-level API calls),重新触发全量资源扫描。开启后工具会对每个扫描到的资源单独调用详情接口,拉取绑定的全量标签补全到配置中。
  • 扫描完成后先抽查之前存在标签丢失问题的资源,确认Tags字段已覆盖控制台显示的所有标签后,再执行导出操作。
  • 若开启上述选项后仍有个别标签缺失,可通过AWS CLI执行命令拉取目标子网的全量标签手动补全,参考命令:
aws ec2 describe-subnets --subnet-ids <替换为目标子网ID> --query 'Subnets[].Tags'

注意:如果使用导出的模板更新线上现有资源,必须提前校验标签字段完整性,避免部署时发生标签漂移,意外删除资源上已绑定的存量标签。

内容的提问来源于stack exchange,提问作者jono2010

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 18:33:30