Amazon-Web-Services
使用 CloudFormation 創建 EC2 實例和卷
我正在嘗試使用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 的新手並堅持使用這個。
在
rpt04appvolume
你缺少一個-
inTags
:從這裡改變它:
rpt04appvolume: Type: 'AWS::EC2::Volume' Properties: ... Tags: Key: Name Value: RPT-04-APP
對此:
rpt04appvolume: Type: 'AWS::EC2::Volume' Properties: ... Tags: - Key: Name # Note the '-' Value: RPT-04-APP
順便說一句 -
AvailabilityZone: us-west-1
應該改為us-west-1 a或b什麼的。僅us-west-1是區域名稱而不是可用區名稱。希望有幫助:)
這是一個顯示多個標籤的範例。實例類型是Linux,但是CF中的Windows是一樣的。
我複制了我經常使用的模板與複製的一些 ID 的混合。我的實際模板大量引用了我在其他模板中創建的資源 !ImportValue 和在此模板中定義的東西 !Ref
EC2Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: t3a.nano ImageId: ami-0970010f37c4f9c8d SubnetId: subnet-19234d70 SecurityGroupIds: - sg-f2bcJmn9 AvailabilityZone: ap-southeast-2 BlockDeviceMappings: - DeviceName: "/dev/xvda" Ebs: VolumeSize: '8' Encrypted: 'true' Tags: - Key: Name Value: Fred the VM - Key: environment Value: Production - Key: favorite_color Value: red