我对 terraform 有一个不寻常的问题。
我创建了两个 VPC,并在同一个 terraform 脚本中添加了一个私有托管区域。
我执行以下操作:
data "aws_vpcs" "foo" {}
这让我获得了在该地区创建的 VPC。
通常我可以输出 VPC 的 ID,例如:
output "test" {
value = data.aws_vpcs.foo.ids
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个列表,如:
[ "vpc-0c8446a2164b7d0af", "vpc-0e7c63c3f383d115d", ]
现在,从这个列表中,我想获得第一个 VPC id:“vpc-0c8446a2164b7d0af”
问题是它不起作用。我尝试使用元素函数,如:
element(data.aws_vpcs.foo.ids, 0)
element([data.aws_vpcs.foo.ids], 0)
我也尝试将它分配给一个值,如:data.aws_vpcs.foo.ids[0]
它不起作用,我在 terraform 上找不到任何其他选项来帮助我解决这个问题。
我想使用第一个 VPC id 创建资源:
resource "aws_route53_zone" "private" {
name = "example.com"
vpc {
vpc_id = data.aws_vpcs.foo.ids[0]
}
}
Run Code Online (Sandbox Code Playgroud)
所以我可以从我在该地区获得的 VPC 列表中获得第一个 VPC(顺序无关紧要)。
当我运行 terraform plan 时出现错误:
Error: Invalid index
on main.tf line 25, in resource "aws_route53_zone" "private":
25: …Run Code Online (Sandbox Code Playgroud)