Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform ';环境内部至少应有一个字段';地形误差_Terraform_Terraform Provider Aws_Terraform0.12+ - Fatal编程技术网

Terraform ';环境内部至少应有一个字段';地形误差

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

当我尝试应用地形以创建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 {
    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及更高版本?搜索“动态块”