Я использую модуль, написанный моим коллегой, но по какой-то причине я получаю сообщение, что подсеть не найдена, а идентификатор начинается с 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 должен генерировать исключение. Кроме того, похоже, что вы не используетеcount
, поэтому вам не нужен оператор splat, который у вас есть. В общем, я ожидал, что это будетdata.aws_subnet_ids.ids
вместо того, что вы показываете. - person ydaetskcoR   schedule 26.06.2019aws_subnet
источников данных сcount
, тогда да, это работало бы так, но вместо этого вы используетеaws_subnet_ids
источник данных, к которому следует обращаться, как указано в последнем комментарии. - person ydaetskcoR   schedule 26.06.2019