将参数传递给dev和prod集群中的模块

时间:2018-01-31 16:26:14

标签: amazon-web-services amazon-s3 terraform

您应该如何将变量传递给一个环境。

我定义了一个日志记录参数,我想将此变量仅传递给我的prod redshift而不是dev redshift。 dev redshift集群不应定义日志记录参数。

我被困在如何传递模块内部,我有prod和dev redshift集群的单独模块。

MarketingCloudSdk.requestSdk(new 

    MarketingCloudSdk.WhenReadyListener() {
                @Override
                public void ready(MarketingCloudSdk marketingCloudSdk) {
                    marketingCloudSdk.getPushMessageManager().handlePushMessage(bundle);
                }
            });

1 个答案:

答案 0 :(得分:3)

似乎你误解了如何使用terraform模块管理不同的环境。

不要写两个模块来管理dev / prod环境,一个应该就够了。

                 0         1
  female 0.0917782 0.2791587
  male   0.5000000 0.1290631

在这种情况下,管理不同环境的不同设置的关键是使用terraform Conditionals

variable "logging" {
     target_bucket= "xxxx-${var.env}"
}

resource "aws_s3_bucket" "log_bucket" {
  bucket = "${var.bucket}-${var.env}"
  logging = ["${var.logging}"]


module "redshift" {
  source                      = "../modules/xxxx"
  env                         = "${var.env}"
  region                      = "us-east-1"
  logging                     = ${var.env == "prod" ? {} : { target_bucket= "xxxx" } }"
}