我正在尝试使用CloudFormation部署两个 Windows Server 2019 EC2 实例,并将一个新卷附加到每个实例(两个实例,总共两个卷)。部署时出现以下错误:
属性标签的值必须是列表类型
根据我的研究,听起来我引用我试图创建的卷的方式可能是问题,但不确定。
这是我的一些模板供参考:
Resources:
rpt04:
Type: 'AWS::EC2::Instance'
Properties:
AvailabilityZone: us-west-1
InstanceType: t2.large
ImageId: ami-0cc5ea3dde5301489
Tags:
- Key: "Name"
Value: "RPT-04 (W2K16)"
KeyName: Key_2020
SecurityGroupIds:
- sg-f2bcJmn9
SubnetId: subnet-19234d70
BlockDeviceMappings:
- DeviceName: /dev/sda1
Ebs:
VolumeSize: 100
DeleteOnTermination: true
Volumes:
-
Device: xvdb
VolumeId: !Ref rpt04appvolume
Metadata:
'AWS::CloudFormation::Designer':
id: 357656a6-846b-4674-b06a-22901916ff91
rpt04appvolume:
Type: 'AWS::EC2::Volume'
Properties:
AvailabilityZone: us-west-1
Size: 100
VolumeType: gp2
Tags:
Key: Name
Value: RPT-04-APP
Metadata:
'AWS::CloudFormation::Designer':
id: 3340c328-2324-42e5-bd11-b3c1d1f41a09
我很感激这方面的任何帮助/帮助。我是 CloudFormation 的新手并坚持使用这个。
这是一个显示多个标签的示例。实例类型是Linux,但是CF中的Windows是一样的。
我复制了我经常使用的模板与复制的一些 ID 的混合。我的实际模板大量引用了我在其他模板中创建的资源 !ImportValue 和在此模板中定义的东西 !Ref
在
rpt04appvolume
你缺少一个-
inTags
:从这里改变它:
对此:
顺便说一句 -
AvailabilityZone: us-west-1
应该改为us-west-1 a或b什么的。仅us-west-1是区域名称而不是可用区名称。希望有帮助:)