鉴于此:
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
知道为什么吗?
答案 0 :(得分:8)
Terraform中的aws_eip
资源使用vpc
配置属性(true
或false
)的值作为切换来决定资源ID
应该是allocation_id
,还是它public_ip
。然后,我们在API调用中使用ID
将EIP与实例相关联。
在EC2 Classic中,AssociateAddress
调用需要public_id
值。在EC2-VPC中,它期望allocation_id
值。
对于附加到VPC中的实例资源的aws_eip
资源,您需要在vpc = true
配置中包含aws_eip
。