小编Fla*_*san的帖子

Terraform:如何从数据类型中获取元素

我对 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)

terraform terraform-provider-aws

2
推荐指数
1
解决办法
1181
查看次数

标签 统计

terraform ×1

terraform-provider-aws ×1