【发布时间】:2020-09-28 12:56:54
【问题描述】:
我对 terraform 有一个不寻常的问题。
我创建了两个 VPC,并在同一个 terraform 脚本中添加了一个私有托管区域。
我执行以下操作:
data "aws_vpcs" "foo" {}
这让我获得了在该地区创建的 VPC。
通常我可以输出 VPC 的 ID,例如:
output "test" {
value = data.aws_vpcs.foo.ids
}
这给了我一个类似的列表:
[ “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]
}
}
所以我可以从我在该地区获得的 VPC 列表中获得第一个 VPC(顺序无关紧要)。
当我运行 terraform plan 时出现错误:
Error: Invalid index
on main.tf line 25, in resource "aws_route53_zone" "private":
25: vpc_id = data.aws_vpcs.foo.ids[0]
This value does not have any indices.
【问题讨论】:
-
当你说它不起作用时你得到什么错误?您能否编辑您的问题以显示
aws_vpcs数据源的 Terraform 代码? -
您应该编辑您的问题以包含错误,而不是在评论中发布。
标签: terraform terraform-provider-aws