Amazon-Web-Services

使用 CloudFormation 創建 EC2 實例和卷

  • May 28, 2020

我正在嘗試使用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你缺少一個-in Tags

從這裡改變它:

  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 ab什麼的。僅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

引用自:https://serverfault.com/questions/1018957