如何在AWS中使用Terraform获取ec2实例的subnet_id ?



假设我们在AWS中有一些ec2实例。我们如何通过Terraform得到这些ec2s的subnet_ids?

您应该使用数据源来获取现有的EC2实例,然后在需要的地方引用数据源和属性subnet_id。查看文档:https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/instance#subnet_id

  1. 获取与ec2实例相关的数据,您想获得子网:
data "aws_instances" "ec2s" {
filter {
name   = "tag:Name"
values = ["value"]
}
}
  1. 使用count获取ec2instance_id:
data "aws_instance" "ec2_subnets" {
count    = length(data.aws_instances.ec2s.ids)
instance_id = data.aws_instances.ec2s.ids[count.index]
}
  1. 现在,子网可以被引用:
resource "aws_***" "***" {
count           = length(data.aws_instance.ec2_subnets)
subnet_id       = data.aws_instance.ec2_subnets[count.index].subnet_id
###
# Other Terraform attributes
###
}

最新更新