Terraform / alicloud:使用多个数据磁盘创建ECS实例

问题描述

我正在尝试使用Terraform创建多个ECS实例。实际上,我希望每个ecs实例都具有多个数据磁盘。因此,一个磁盘用于OS,另外两个磁盘用于数据。

代码段应如下所示:

resource "alicloud_instance" "node" {
  image_id                      = data.alicloud_images.nodes.id
  instance_type                 = var.instance_type_controller
  internet_max_bandwidth_out    = 100
  security_groups               = alicloud_security_group.cluster.id

  key_name = var.key_pair
  count    = 1

  system_disk_size              = 80

  data_disks                    = [
    {
      name                  = "/dev/xvdb"
      size                  = 200
      delete_with_instance  = true
    },{
      name                  = "/dev/xvdc"
      size                  = 100
      delete_with_instance  = true
    }
  ]
}

唯一的问题是我有一条消息错误告诉我

An argument named "data_disks" is not expected here. Did you mean to define a
block of type "data_disks"?

我经历了documentation,并且我很确定data_disks的类型为list(map(string)),所以我写的内容应该可以,但是只有将其设置为

data_disks {
      name                  = "/dev/xvdb"
      size                  = 200
      delete_with_instance  = true
}

但是我需要将多个数据磁盘连接到我的ECS实例...我丢失了什么吗?

我正在使用以下terraform / provider版本:

Terraform v0.13.0
+ provider registry.terraform.io/hashicorp/alicloud v1.94.0
+ provider registry.terraform.io/hashicorp/random v2.3.0
+ provider registry.terraform.io/hashicorp/template v2.1.2

解决方法

@ydaetskcoR评论。解决方案是具有多个data_disks块。像这样:

resource "alicloud_instance" "node" {
  image_id                      = data.alicloud_images.nodes.id
  instance_type                 = var.instance_type_controller
  internet_max_bandwidth_out    = 100
  security_groups               = alicloud_security_group.cluster.id

  key_name = var.key_pair
  count    = 1

  system_disk_size              = 80
   
  data_disks {
      name                  = "/dev/xvdb"
      size                  = 200
      delete_with_instance  = true
  }

  data_disks {
      name                  = "/dev/xvdc"
      size                  = 100
      delete_with_instance  = true
  }
 
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...