我的 terraform 配置中有两个 lambda,我希望它们具有完全相同的环境变量。
我不想每次修改一个 lambda 环境块时都需要修改它。是否有可能有某种可重用的块?
所以代替这个:
resource "aws_lambda_function" "f1" {
<..>
environment {
variables = {
ENV_STAGE = "${lower(var.environment)}" # all of these will always be same for both lambdas
A = "A"
}
}
}
resource "aws_lambda_function" "f2" {
<..>
environment {
variables = {
ENV_STAGE = "${lower(var.environment)}"
A = "A"
}
}
}
Run Code Online (Sandbox Code Playgroud)
它会是这样的:
env = {
variables = {
ENV_STAGE = "${lower(var.environment)}"
A = "A"
}
}
resource "aws_lambda_function" "f1" {
<..>
environment = env
}
resource "aws_lambda_function" "f2" {
<..>
environment = env
}
Run Code Online (Sandbox Code Playgroud)
你需要一个当地人街区
locals {
shared_env_variables = {
ENV_STAGE = "${lower(var.environment)}"
A = "A"
}
}
resource "aws_lambda_function" "f1" {
environment {
variables = merge(local.shared_env_variables, {
ONLY_FOR_F1: "something"
})
}
}
resource "aws_lambda_function" "f2" {
environment {
variables = local.shared_env_variables
}
}
Run Code Online (Sandbox Code Playgroud)
更高级的事情,例如基于地图创建资源,可以使用for_each
| 归档时间: |
|
| 查看次数: |
3462 次 |
| 最近记录: |