Я пытаюсь создать многоразовый модуль terraform для ресурса эластичного бобового стебля. Я застрял, пытаясь понять, как передать переменные среды приложения. Я бы хотел сделать что-то вроде этого:
./api.tf
module "eb" {
source = "./eb"
name = "api"
vpc_id = "${var.vpc_id}"
...
environment = {
VAR1 = "${var.var1}"
VAR2 = "${var.var2}"
VAR3 = "${var.var3}"
...
}
}
./eb/eb.tf
variable "name" { }
variable "vpc_id" { }
variable "environment" { type = "map" }
resource "aws_elastic_beanstalk_environment" "api" {
name = "${var.name}"
...
setting {
namespace = "aws:ec2:vpc"
name = "VPCId"
value = "${var.vpc_id}"
}
# application environment variables
# Here's where I'm stuck:
# I would like to iterate over the environment map, setting name and value.
setting {
count = "${length(keys(var.environment))}"
namespace = "aws:elasticbeanstalk:application:environment"
name = "${element(keys(var.environment), count.index)}"
value = "${lookup(var.environment, element(keys(var.environment), count.index))}"
}
}
Моя первая проблема в том, что не похоже, что в опциях поддерживается счетчик. Есть ли другие способы сделать что-то подобное, чтобы я мог предоставить дополнительные настройки для модуля eb?