Terraform 地形可重用可变块
我的terraform配置中有两个lambda,我希望它们具有完全相同的环境变量 我不希望每次修改一个lambda环境块时都需要修改这两个环境块。有可能有某种可重用的块吗 因此,与此相反:Terraform 地形可重用可变块,terraform,Terraform,我的terraform配置中有两个lambda,我希望它们具有完全相同的环境变量 我不希望每次修改一个lambda环境块时都需要修改这两个环境块。有可能有某种可重用的块吗 因此,与此相反: resource "aws_lambda_function" "f1" { <..> environment { variables = { ENV_STAGE = "${lower(var.environment)}" # all of these will al
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"
}
}
}
资源“aws\u lambda\u函数”“f1”{
环境{
变量={
ENV_STAGE=“${lower(var.environment)}”#对于两个lambda,所有这些都将始终相同
A=“A”
}
}
}
资源“aws_lambda_函数”“f2”{
环境{
变量={
ENV_STAGE=“${lower(var.environment)}”
A=“A”
}
}
}
应该是这样的:
env = {
variables = {
ENV_STAGE = "${lower(var.environment)}"
A = "A"
}
}
resource "aws_lambda_function" "f1" {
<..>
environment = env
}
resource "aws_lambda_function" "f2" {
<..>
environment = env
}
env={
变量={
ENV_STAGE=“${lower(var.environment)}”
A=“A”
}
}
资源“aws_lambda_函数”“f1”{
环境=环境
}
资源“aws_lambda_函数”“f2”{
环境=环境
}
您需要一个
使用可以实现基于地图创建资源等更高级的功能。您需要
使用@dtech可以实现基于地图创建资源等更高级的功能。答案是正确的,我只想补充一点,v0.11的语法略有不同(我目前使用的语法)
本地人{
公共环境={
ENV_STAGE=“${lower(var.environment)}”
}
}
资源“aws_lambda_函数”“lambda”{
环境{
变量=“${merge(local.common_env)}”
}
}
@dtech的答案是正确的,我只想补充一点,v0.11的语法略有不同(我目前使用的语法)
本地人{
公共环境={
ENV_STAGE=“${lower(var.environment)}”
}
}
资源“aws_lambda_函数”“lambda”{
环境{
变量=“${merge(local.common_env)}”
}
}
您可以将这两个资源组合起来,并对它们进行两次迭代。这是否可行取决于两个lambda资源之间的差异。您可以组合这两个资源并在它们上迭代两次。这是否可行取决于两个lambda资源之间的差异。
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
}
}
locals {
common_env = {
ENV_STAGE = "${lower(var.environment)}"
}
}
resource "aws_lambda_function" "Lambda" {
<..>
environment {
variables = "${merge(local.common_env)}"
}
}