Я использую модуль Terraform для управления приложениями и средами AWS Elastic Beanstalk и хочу передать список переменных среды в модуль.Как передать параметры aws_elastic_beanstalk_environment в модуль Terraform
Из-за отсутствия лучшего решения, я сейчас перехожу к плоскому списку имен и значений и объявляю фиксированное число setting
stanzas (см. Ниже). Кажется, это работает, если, конечно, кто-то не примет более переменные окружения, чем я ожидал.
Итак - есть ли лучший способ достичь этого?
# file: main.tf
variable env_vars {
default = ["FIRST_ENV_VAR", "1", "SECOND_ENV_VAR", "2"]
}
provider "aws" {
region = "eu-central-1"
}
module "beanstalk-app" {
source = "./beanstalk"
env_vars = "${var.env_vars}"
}
# file: beanstalk/main.tf
variable "env_vars" {
type = "list"
}
resource "aws_elastic_beanstalk_application" "app" {
name = "myapp"
}
resource "aws_elastic_beanstalk_environment" "env" {
name = "myapp-env"
application = "${aws_elastic_beanstalk_application.app.name}"
solution_stack_name = "64bit Amazon Linux 2016.03 v2.1.3 running Tomcat 8 Java 8"
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "${element(var.env_vars, 0)}"
value = "${element(var.env_vars, 1)}"
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "${element(var.env_vars, 2)}"
value = "${element(var.env_vars, 3)}"
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "${element(var.env_vars, 4)}"
value = "${element(var.env_vars, 5)}"
}
}