首页 > 解决方案 > Terraform 抱怨 lambda 中使用了列表

问题描述

我有一个 lambda,我在其中传递一个列表以从中获取属性。列表 ENV_LIST 有超过 1 个元素。当我尝试运行一个 terraform 计划时,它似乎在抱怨变量 ENV_LIST。我已将它指定为我的 variables.tf 文件中的一个列表,并在我的 lamnda.tf 中引用它,但它仍然在抱怨。

Error: aws_lambda_function.lambda_function: environment.0.variables (ENV_LIST): '' expected type 'string', got unconvertible type '[]interface {}'

λ.tf

   environment {
    variables = {
      DB_NAME_LIST = "${var.db_name_list}"
      ENV_LIST     = "${var.env_list}"
    }
  }

变量.tf

variable "db_name_list" {
  type = "list"
}
variable "env_list" {
  type = "list"
}

标签: pythonamazon-web-servicesaws-lambdaterraform

解决方案


variable "db_names" {
  type        = list(string)
  description = "db_names"
}

resource "aws_lambda_function" "function" {
  function_name    = "${var.name_prefix}-function${local.name_suffix}"
  description      = "Function"
  filename         = var.filename
  source_code_hash = var.source_code_hash
  runtime          = "nodejs14.x"
  handler          = "index.handler"
  timeout          = var.timeout
  memory_size      = var.memory_size
  role             = var.lambda_role_arn
  environment {
    variables = {
      DB_NAMES       = join(",", var.db_names)
    }
  }
}

推荐阅读