繁体   English   中英

将 terraform 中的“公共变量”重新用于 Lambda 环境变量

[英]Re-use "common variables" in terraform for Lambda environment variables

假设我有多个具有自己特定环境变量的 lambda,但也共享一个公共环境变量列表,我如何在一个位置定义公共环境变量并将其“传播”到 lambda 的环境变量定义中?

在 Javascript 中,你可以使用扩展运算符,所以像这样

COMMON_VARS = {
  COMMON_VAR_1 = var.common_var_1
  COMMON_VAR_2 = var.common_var_2
}

resource "aws_lambda_function" "lambda_1" {
  ...
  environment {
    variables = {
      LAMBDA_VAR_1      = var.lambda_var_1
      ...COMMON_VARS
    }
  }
  ...
}

resource "aws_lambda_function" "lambda_2" {
  ...
  environment {
    variables = {
      LAMBDA_VAR_2      = var.lambda_var_2
      ...COMMON_VARS
    }
  }
  ...
}

请注意,所有var.*变量都将在variable块中定义。

您可以使用merge来组合普通变量和新变量:

resource "aws_lambda_function" "lambda_1" {
  ...
  environment {
    variables = merge(var.COMMON_VARS, {
      LAMBDA_VAR_1      = var.lambda_var_1
    })
  }
  ...
}

resource "aws_lambda_function" "lambda_2" {
  ...
  environment {
    variables = merge(var.COMMON_VARS, {
      LAMBDA_VAR_2      = var.lambda_var_2
    })
  }
  ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM