关联EIP失败:InvalidParameterCombination:地址映射到VPC实例时必须指定分配id

Failure associating EIP: InvalidParameterCombination: You must specify an allocation id when mapping an address to a VPC instance

鉴于此:

resource "aws_instance" "example" {
  ami           = "ami-2757f631"
  instance_type = "t2.micro"
}

resource "aws_eip" "ip" {
  instance = "${aws_instance.example.id}"
}

来自 https://www.terraform.io/intro/getting-started/dependencies.html

我收到一个错误:

* aws_eip.ip: Failure associating EIP: InvalidParameterCombination: You must specify an allocation id when mapping an address to a VPC instance

知道为什么吗?

Terraform 中的 aws_eip 资源使用 vpc 配置属性(truefalse)的值作为开关来决定资源 ID应该是allocation_id,或者是public_ip。然后我们在 API 调用中使用 ID 将 EIP 与实例相关联。

在 EC2 Classic 中,AssociateAddress 调用需要 public_id 值。在 EC2-VPC 中,它需要 allocation_id 值。

对于 aws_eip 资源附加到 VPC 中的实例资源,您需要在 aws_eip 配置中包含 vpc = true