AWS CloudFormation YAML格式错误求助:标签字段解析失败
AWS CloudFormation YAML模板问题解决方案
1. 修复Subnet2 Tags字段的YAML格式错误
错误提示"expected
- 确保Tags是数组结构:每个标签项以
-开头,且缩进与Properties下的其他属性(比如CidrBlock)对齐 - 标签对象的Key和Value必须是标准键值对,禁止使用YAML的
?显式键语法(比如? Name: ...这种写法完全不符合CloudFormation要求) - 正确示例:
Subnet2: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VpcId CidrBlock: 10.0.1.0/24 AvailabilityZone: !Select [1, !GetAZs ''] Tags: - Key: Name Value: Public Subnet 2 - Key: Environment Value: Production
2. 清理混写的Terraform语法
CloudFormation与Terraform语法不兼容,需全面替换为CloudFormation标准写法:
- 移除Terraform风格的
resource "aws_xxx" "xxx" { ... }块,改用CloudFormation的Resources节下的资源条目 - 替换Terraform变量引用(如
var.vpc_id)为CloudFormation的参数引用(!Ref VpcId)或参数存储引用(!Sub '{{resolve:ssm:/myapp/vpc-id}}') - 替换Terraform的AZ获取逻辑(如
aws_availability_zones.available.names[1])为CloudFormation内置函数:!Select [1, !GetAZs '']
3. 解决EC2TgtGrp资源重复定义问题
CloudFormation要求Resources节下的资源名称全局唯一,重复定义会直接导致部署失败:
- 删除所有重复的
EC2TgtGrp资源条目,仅保留一个符合需求的定义 - 若需多个目标组,为每个目标组设置唯一的资源名称(如
EC2TgtGrp-Web、EC2TgtGrp-API),并分别配置对应的端口、协议、VPC等属性
内容的提问来源于stack exchange,提问作者Data Science Analytics Manager
相关产品推荐
相关产品推荐

