3
私はTerraformモジュールを使用してAWS Elastic Beanstalkのアプリケーションと環境を管理しており、モジュールに環境変数のリストを渡したいと考えています。aws_elastic_beanstalk_environment設定をTerraformモジュールに渡す方法
私は現在、より良い解決策がないため、名前と値のフラットなリストを渡しており、固定数のsetting
スタン(以下を参照)を宣言しています。もちろん、誰かが私が予想したよりも多くの環境変数を渡すことがない限り、これはうまくいくようです。
これを実現するにはより良い方法がありますか? HCL繰り返さ対象ブロックで
# 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)}"
}
}