假设我们在AWS中有一些ec2
实例。我们如何通过Terraform
得到这些ec2s的subnet_ids
?
您应该使用数据源来获取现有的EC2实例,然后在需要的地方引用数据源和属性subnet_id
。查看文档:https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/instance#subnet_id
- 获取与
ec2
实例相关的数据,您想获得子网:
data "aws_instances" "ec2s" {
filter {
name = "tag:Name"
values = ["value"]
}
}
- 使用count获取
ec2
的instance_id
:
data "aws_instance" "ec2_subnets" {
count = length(data.aws_instances.ec2s.ids)
instance_id = data.aws_instances.ec2s.ids[count.index]
}
- 现在,子网可以被引用:
resource "aws_***" "***" {
count = length(data.aws_instance.ec2_subnets)
subnet_id = data.aws_instance.ec2_subnets[count.index].subnet_id
###
# Other Terraform attributes
###
}