假设我的AWS帐户上有一个现有的Elastic IP。
由于超出此问题范围的原因,此EIP不能(也不能(通过Terraform进行管理。
我知道我想将这个EIP(比如11.22.33.44
(分配给我通过TF 创建的EC2实例
传统方法当然会通过TF 创建EIP和EC2实例
resource "aws_eip" "my_instance_eip" {
instance = "my_instance.id"
vpc = true
}
resource "aws_eip_association" "my_eip_association" {
instance_id = "my_instance.id"
allocation_id = "aws_eip.my_instance_eip.id"
}
然而,有没有办法让EC2通过TF知道它应该被分配为EIP,11.22.33.44
,这在TF生命周期之外?
您可以使用aws_eip数据源获取现有eip的信息,然后在aws_eip_association
:中使用该信息
data "aws_eip" "my_instance_eip" {
public_ip = "11.22.33.44"
}
resource "aws_eip_association" "my_eip_association" {
instance_id = aws_instance.my_instance.id
allocation_id = data.aws_eip.my_instance_eip.id
}