【发布时间】:2020-04-09 04:29:44
【问题描述】:
我遇到了这个错误:
Inappropriate value for attribute "vpc_zone_identifier": element 0: string required.
变量应该是字符串列表,所以元素 0 应该是字符串。
代码如下:
VPC 模块:
resource "aws_subnet" "terraform-pub-sn" {
count = "${length(data.aws_availability_zones.all.names)}"
vpc_id = "${aws_vpc.terraform-vpc.id}"
cidr_block = "${element(var.vpc_subnet_cidr, count.index)}"
availability_zone = "${data.aws_availability_zones.all.names[count.index]}"
}
输出:
output "terraform_subnet_ids" {
value = ["${aws_subnet.terraform-pub-sn.*.id}"]
}
Main.tf:
module "auto_scaling_group" {
source = "./modules/AutoScalingGroup"
terraform_subnet_ids = ["${module.vpc.terraform_subnet_ids}"]
}
ASG 模块:
variable "terraform_subnet_ids"{}
resource "aws_autoscaling_group" "terraform-asg" {
vpc_zone_identifier = ["${var.terraform_subnet_ids}"]
...
}
我花了半天时间试图解决这个问题,不知道还要尝试什么以及应该如何定义它。 AFAIK 添加 [] 将使变量成为字符串列表,当它选择元素 0 并返回错误时,该元素在技术上应该是一个字符串,所以不知道问题是什么。也许有一种方法可以即时检查它是什么?
完整的错误在这里:
Error: Incorrect attribute value type
on modules\AutoScalingGroup\asg.tf line 43, in resource "aws_autoscaling_group" "terraform-asg":
43: vpc_zone_identifier = ["${var.terraform_subnet_ids}"]
Inappropriate value for attribute "vpc_zone_identifier": element 0: string
required.
【问题讨论】:
-
这是 Terraform 0.12 吗?
标签: terraform terraform-provider-aws