在 terraform 中为 Lambda 环境变量重新使用 "common variables"
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
})
}
...
}
假设我有多个具有自己特定环境变量的 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
})
}
...
}