Terraform ';环境内部至少应有一个字段';地形误差
当我尝试应用地形以创建lambda函数时,我遇到了以下错误:Terraform ';环境内部至少应有一个字段';地形误差,terraform,terraform-provider-aws,terraform0.12+,Terraform,Terraform Provider Aws,Terraform0.12+,当我尝试应用地形以创建lambda函数时,我遇到了以下错误: Error: At least one field is expected inside environment 这是我的地形模块: resource "aws_lambda_function" "lambda" { function_name = var.lambda_filename description = var.description runtime = "python3.6" environment
Error: At least one field is expected inside environment
这是我的地形模块:
resource "aws_lambda_function" "lambda" {
function_name = var.lambda_filename
description = var.description
runtime = "python3.6"
environment {
variables = var.variables
}
}
当var.variables
设置为null时,会引发此错误
我怎样才能修好它
我正在使用terraform 0.12.6和aws provider 2.25.0,我找到了一个解决方案:在terrafrom的最新版本中使用
动态
resource "aws_lambda_function" "lambda" {
function_name = var.lambda_filename
description = var.description
runtime = "python3.6"
dynamic "environment" {
for_each = local.environment_map
content {
variables = environment.value
}
}
}
环境地图
是通过以下方式创建的:
locals {
environment_map = var.variables == null ? [] : [var.variables]
}
写any_map==null的较短方法?[]:[any_map]
是any_map[*]
;splat运算符的一个“特殊功能”是,如果应用于非序列的内容,则它将根据值是否为null生成空列表或单个元素列表。能否添加称为terraform“最新”版本的版本?@ccu,即terraform 0.12及更高版本?搜索“动态块”