#module #terraform
Вопрос:
Заранее благодарю за помощь и потраченное время.
Я пытаюсь создать модуль terraform для конфигурации сетевого брандмауэра AWS.
Ниже приведен мой код:
firewall_arn = var.firewall_arn
logging_configuration {
dynamic "config" {
for_each = var.log_destination_configs
content {
log_destination {
bucketName = lookup(config.value, "bucketName", null)
prefix = lookup(config.value, "prefix", null)
logGroup = lookup(config.value, "logGroup", null)
deliveryStream = lookup(config.value, "deliveryStream", null)
}
log_destination_type = lookup(config.value, "log_destination_type", null)
log_type = lookup(config.value, "log_type", null)
}
}
}
}
Однако, когда я попытался скомпилировать, я получаю следующую ошибку:
Error: Unsupported block type
on ../../main.tf line 4, in resource "aws_networkfirewall_logging_configuration" "default":
4: dynamic "config" {
Blocks of type "config" are not expected here.
}
Это потому, что я объявляю блок в logging_configuration, а это запрещено?
Еще раз спасибо.
Ответ №1:
Согласно документации по аргументу logging_configuration, вложенный блок имеет имя log_destination_config
и не config
имеет . Вот почему в сообщении об ошибке говорится, что в этом блоке config
не ожидается блок. Если вы соответствующим образом обновите имя блока и переменные лямбда-области:
logging_configuration {
dynamic "log_destination_config" {
for_each = var.log_destination_configs
content {
log_destination {
bucketName = lookup(log_destination_config.value, "bucketName", null)
prefix = lookup(log_destination_config.value, "prefix", null)
logGroup = lookup(log_destination_config.value, "logGroup", null)
deliveryStream = lookup(log_destination_config.value, "deliveryStream", null)
}
log_destination_type = lookup(log_destination_config.value, "log_destination_type", null)
log_type = lookup(log_destination_config.value, "log_type", null)
}
}
}
тогда это должно решить проблему, связанную с вашим сообщением об ошибке.