我有一个关于 Terraform 的小问题,但我无法在线找到解决方案。想象一下以下场景:
data "aws_vpc" "vpc_name" {
id = var.vpc_id
}
data "aws_subnet_ids" "vpc_subnets" {
vpc_id = data.aws_vpc.vpc_name.id
}
想象一下我创建了一个这样的 EC2 实例:
resource "aws_instance" "ec2_test" {
...
ami = ...
instance_type = ...
subnet_id = element(tolist(data.aws_subnet_ids.vpc_subnets.ids), 1)
...
在子网中,我使用元素函数选择了一个元素并将子网 ID 列表转换为列表。
现在,我有两个问题:
是否可以在不转换为列表(tolist)的情况下选择第一个子网?我想知道为什么我可以做类似 data.aws_subnet_ids.vpc_subnets[1] 或类似的事情?
如何从子网列表中检索随机 ID?
问候,
最佳答案
需要tolist操作,因为aws_subnet_ids.ids是一个集合。您可以稍微清理一下并说 tolist(data.aws_subnet_ids.vpc_subnets.ids)[0]
。
要获得随机数,请使用 random provider .
https://stackoverflow.com/questions/66069677/