为什么我的子网数据源返回 VPC?
Why is my subnet data source returning a VPC?
我正在使用我的同事编写的模块,但由于某种原因,我发现找不到子网 -- 并且标识符以 vpc-
开头。为什么这会返回 VPC 而不是子网?
data "aws_subnet_ids" "app" {
vpc_id = "${data.aws_vpc.default.id}"
tags = {
SubnetType = "app"
}
}
作为
传递给模块
private_subnets = "${data.aws_subnet_ids.app.*.id}"
并在此处使用:
resource "aws_autoscaling_group" "default-alb" {
name = "${chomp(data.template_file.standard_name.rendered)}"
launch_configuration = tostring(element(aws_launch_configuration.default,count.index).name)
min_size = "${var.min_instances}"
max_size = "${var.min_instances}"
target_group_arns = [
tostring(element(aws_alb_target_group.default-http,count.index).arn),
]
vpc_zone_identifier = var.private_subnets
lifecycle {
create_before_destroy = true
}
}
但是我得到错误:
Error: Error creating AutoScaling Group: ValidationError: The subnet ID 'vpc-004[redacted]' does not exist
status code: 400, request id: 73e98545-975c-11e9-bd63-fd4915ceeabf
on .terraform/modules/core-api/alb.tf line 1, in resource "aws_autoscaling_group" "default-alb":
1: resource "aws_autoscaling_group" "default-alb" {
子网标识符不应该以 subnet-
开头吗?
aws_subnet_ids
数据源没有 id
参数或属性,因此 Terraform 应该在那里抛出异常,我有点惊讶它没有这样做。
此外,您似乎没有在上面使用计数,因此不需要那里的 splat 运算符。
所以代替:
private_subnets = "${data.aws_subnet_ids.app.*.id}"
您应该使用 ids
属性来 return 与您的过滤器匹配的所有子网 ID 的列表:
private_subnets = "${data.aws_subnet_ids.app.ids}"
我正在使用我的同事编写的模块,但由于某种原因,我发现找不到子网 -- 并且标识符以 vpc-
开头。为什么这会返回 VPC 而不是子网?
data "aws_subnet_ids" "app" {
vpc_id = "${data.aws_vpc.default.id}"
tags = {
SubnetType = "app"
}
}
作为
传递给模块private_subnets = "${data.aws_subnet_ids.app.*.id}"
并在此处使用:
resource "aws_autoscaling_group" "default-alb" {
name = "${chomp(data.template_file.standard_name.rendered)}"
launch_configuration = tostring(element(aws_launch_configuration.default,count.index).name)
min_size = "${var.min_instances}"
max_size = "${var.min_instances}"
target_group_arns = [
tostring(element(aws_alb_target_group.default-http,count.index).arn),
]
vpc_zone_identifier = var.private_subnets
lifecycle {
create_before_destroy = true
}
}
但是我得到错误:
Error: Error creating AutoScaling Group: ValidationError: The subnet ID 'vpc-004[redacted]' does not exist
status code: 400, request id: 73e98545-975c-11e9-bd63-fd4915ceeabf
on .terraform/modules/core-api/alb.tf line 1, in resource "aws_autoscaling_group" "default-alb":
1: resource "aws_autoscaling_group" "default-alb" {
子网标识符不应该以 subnet-
开头吗?
aws_subnet_ids
数据源没有 id
参数或属性,因此 Terraform 应该在那里抛出异常,我有点惊讶它没有这样做。
此外,您似乎没有在上面使用计数,因此不需要那里的 splat 运算符。
所以代替:
private_subnets = "${data.aws_subnet_ids.app.*.id}"
您应该使用 ids
属性来 return 与您的过滤器匹配的所有子网 ID 的列表:
private_subnets = "${data.aws_subnet_ids.app.ids}"