amazon-web-services - 使用 Cloudformation 将多个 BlockDeviceMappings 安装到 EC2 实例

标签 amazon-web-services amazon-ec2 aws-cloudformation amazon-ebs

我尝试使用 cloudformation 将多个 EBS 卷安装到我的 EC2 实例,但由于某种原因,仅安装了我指定的最后一个 EBS 卷。

EG:
NewEC2Instance:
    Type: AWS::EC2::Instance
    DependsOn: OldSecurityGroup
    Properties:
      ImageId: !Ref pImageId
      InstanceType: !Ref pInstanceType
      BlockDeviceMappings:
        -
          DeviceName: /dev/sda1
          Ebs:
            VolumeSize: 10
          DeviceName: /dev/sdf
          Ebs:
            VolumeSize: 11
            Encrypted: true
          DeviceName: /dev/sdg
          Ebs:
            VolumeSize: 12
            Encrypted: true 
          DeviceName: /dev/sdh
          Ebs:
            VolumeSize: 100
            Encrypted: true 

对于上述代码,仅创建 100Gb/dev/sdh。

我认为 Cloudformation 正在覆盖 EBS 卷。

有人知道为什么吗?请帮忙!

最佳答案

每个设备名称前面缺少一个-。就像这样:

  BlockDeviceMappings:
  - DeviceName: "/dev/xvda"
    Ebs:
      VolumeSize: 16
      VolumeType: gp2
  - DeviceName: "/dev/xvdf"
    Ebs:
      VolumeSize: 12
      VolumeType: gp2

仅使用一个-,您实际上是在定义一个包含具有冲突键的单个元素的数组,yaml 的默认行为是使用它在对象中找到的最后一个键。

关于amazon-web-services - 使用 Cloudformation 将多个 BlockDeviceMappings 安装到 EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48713853/

相关文章:

php - 如何从 Amazon SES 检索响应?

apache - 无法在 Amazon EC2 上安装 solr

amazon-web-services - "Reset"亚马逊 EC2 服务器

node.js - AWS 无服务器图像处理程序 - 版本 5 - 在 Node.js 12 上运行的 Lambda 生命周期结束

amazon-web-services - 如何在 AWS ECR 中使用 ASSUME_ROLE 推送到账户

python - python中的aws lambda context.succeed(在节点中)替代方案

amazon-web-services - 启用计数时创建 Terraform 输出

amazon-web-services - VS 运行哪些命令来发布 .net core 无服务器应用程序?

amazon-web-services - Route53、证书管理器和 CloudFront 之间的 CloudFormation 循环依赖关系

amazon-web-services - Amazon AWS DynamoDB 桌面客户端 - 是否存在?