У меня есть код для создания VPC, с 2 частными подсетями, 2xec2 экземплярами в приватной и бастионной в публичной.
В коде ec2 используется output.tf модуля VPC subnet_ids. так как есть 2 частные подсети, то генерируются 2 subnet_ids. когда эти сгенерированные значения subnet_id передаются в экземпляры ec2 вместо одного subnet_id, они одновременно подают 2 значения subnet_ids как одно значение.
В результате terraform не смог найти это значение subnet_ids, создание завершилось неудачей.
ошибка:
Идентификатор подсети 'подсеть-0 ***********, подсеть-0 *************' не существует
редактирование подсетей *
vpc.tf
private_subnets = "10.10.20.#/#,10.10.20.#/#"
instanceec2.tf
subnet_id = "${module.vpc.private_subnets}"
ниже приведены модули:
vpc_main.tf
// Private subnet/s
resource "aws_subnet" "private" {
vpc_id = "${aws_vpc.vpc.id}"
cidr_block = "${element(split(",", var.private_subnets), count.index)}"
availability_zone = "${element(split(",", var.azs), count.index)}"
count = "${length(split(",", var.private_subnets))}"
tags {
Name = "${var.name}-private-${element(split(",", var.azs), count.index)}"
Team = "${var.team}"
Environment = "${var.environment}"
Service = "${var.service}"
Product = "${var.product}"
Owner = "${var.owner}"
Description = "${var.description}"
managed_by = "terraform"
}
}
resource "aws_route_table" "private" {
vpc_id = "${aws_vpc.vpc.id}"
count = "${length(split(",", var.private_subnets))}"
tags {
Name = "${var.name}-private-${element(split(",", var.azs), count.index)}"
Team = "${var.team}"
Environment = "${var.environment}"
Service = "${var.service}"
Product = "${var.product}"
Owner = "${var.owner}"
Description = "${var.description}"
managed_by = "terraform"
}
}
resource "aws_route_table_association" "private" {
subnet_id = "${element(aws_subnet.private.*.id, count.index)}"
route_table_id = "${element(aws_route_table.private.*.id, count.index)}"
count = "${length(split(",", var.private_subnets))}"
}
``````
vpc_outputs.tf
```````
output "private_subnets" {
value = "${join(",", aws_subnet.private.*.id)}"
}
Ожидаемое значение - только один идентификатор подсети в качестве значения:
Ошибка: укажите 2 идентификатора подсети как одно значение.
aws_instance.ec2-instance [0]: 1 произошла ошибка:
- aws_instance.ec2-instance.0: Ошибка запуска экземпляра источника: InvalidSubnetID.NotFound: ИД подсети 'подсеть-0 **********, подсеть-0 ********* ** 'не существует