Я работаю над модулем, который упаковывает ресурс aws_dynamodb_table и проходит через несколько аргументов.У меня проблемы с некоторыми дополнительными блоками, например ttl
.Я обнаружил, что, несмотря на возможность указания только один раз, ttl
технически является списком ресурса.Однако, поскольку он может быть указан только один раз, мой модуль определяет свою переменную ttl
как карту.Кроме того, ttl
является необязательным для ресурса, поэтому я хотел бы, чтобы оно также было необязательным для моего модуля.
Это то, что у меня пока есть:
Я определяю ttl
какнеобязательная карта, такая как
variables.tf
... stuff ..
variable "ttl" {
description = "(Optional) Defines ttl"
type = "map"
default = {}
}
... more stuff ...
Затем я назначаю ее для aws_dynamodb_table
ресурса
main.tf
resource "aws_dynamodb_table" "default" {
... stuff ...
ttl = "${length(keys(var.ttl)) > 0 ? list(var.ttl) : list()}"
... more stuff ...
}
При таком подходе я получаю следующую ошибку:
conditional operator cannot be used with list values in:
${length(keys(var.ttl)) > 0 ? list(var.ttl) : list()}
Разве это невозможно?Это кажется достаточно простым, но я в тупике.