创建多个 AWS EBS 卷并使用 Terraform 将其附加到一个实例

Creating Multiple AWS EBS volumes and attach it to an instance using Terraform

我正在创建一个 Terraform 配置以允许用户输入他们想要附加到 EC2 实例的 AWS EBS 卷的数量。

variable "number_of_ebs" {}

resource "aws_volume_attachment" "ebs_att" {
  count = "${var.number_of_ebs}"
  device_name= "/dev/sdh"
  volume_id   = "${element(aws_ebs_volume.newVolume.*.id, count.index)}"
  instance_id = "${aws_instance.web.id}"
}

resource "aws_instance" "web" {
  ami           = "ami-14c5486b"
  instance_type = "t2.micro"
  availability_zone = "us-east-1a"
  vpc_security_group_ids=["${aws_security_group.instance.id}"]
  key_name="KeyPairVirginia"
  tags {
    Name = "HelloWorld"
  }
}

resource "aws_ebs_volume" "newVolume" {
  count = "${var.number_of_ebs}"
  name  = "${format("vol-%02d", count.index + 1)}"
  availability_zone = "us-east-1a"
  size              = 4
  type="standard"
  tags {
    Name = "HelloWorld"
  }
}

肯定是报错了。我不知道如何为创建的每个卷动态分配不同的名称并将 volume_id 附加到实例。

下面是我得到的错误。

  var.number_of_ebs
  Enter a value: 2

  Error: aws_ebs_volume.newVolume[0]: : invalid or unknown key: name

  Error: aws_ebs_volume.newVolume[1]: : invalid or unknown key: name

如果您检查资源 aws_ebs_volumedocs,您会发现参数 name 不受支持。 这解释了错误消息。