Ошибка "по крайней мере одно поле внутри среды" в terraform
Когда я попытался применить терраформу для создания лямбда-функции, я получил эту ошибку:
Error: At least one field is expected inside environment
Вот мой модуль terraform:
resource "aws_lambda_function" "lambda" {
function_name = var.lambda_filename
description = var.description
runtime = "python3.6"
environment {
variables = var.variables
}
}
Эта ошибка возникает, когда var.variables
установлено в ноль.
Как я могу это исправить?
Я использую terraform 0.12.6 и провайдера AWS 2.25.0
2 ответа
Я нахожу решение: используйте dynamic
в последней версии террафром
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
}
}
}
environment_map
создан таким образом:
locals {
environment_map = var.variables == null ? [] : [var.variables]
}
Добавляя к решению выше, также не забудьте установить значение по умолчанию для вашей переменной равным нулю. Например.
variable variables {
type = map
default = null
description = "My map"
}