-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Contexto
Em um cenário que precisavamos alterar o timeout default da fila, ao aplicar o terraform ele removia a subscription das filas sqs. Avaliando o cenário, foi diagnosticado que o erro se dava por conta do tipo de validação nullish aplicado esse módulo.
O módulo funcionava de mandeira errônea apenas se o campo fosse preenchido. Caso não fosse preenchido e tentasse utilizar o valor "var.default", o funcionamento ocorria corretamente.
Exemplo
module "sqs" {
source = "github.com/Coaktion/terraform-aws-sqs-module"
queues = [
{
name = "my_queue"
fifo_queue = false
sqs_example_field = "something"
},
{
name = "my_fifo_queue"
}
]
resource_prefix = "prefix_queue"
default_fifo_queue = true
}
Possuimos os campos de SQS com dois tipos de validação de nullish, presentes no módulo:
Funcionamento incorreto:
sqs_example_field = queue.sqs_example_field != null ? queue.sqs_example_field : var.sqs_default_example_field
Funcionamento correto (alteração):
sqs_example_field = lookup(queue, "sqs_example_field", var.sqs_default_example_field)
Resolução: clique aqui
Ficou evidente que os campos mais utilizados utilizavam um tipo de validação nullish diferente dos campos que não eram utilizados tão frequentemente. Após a alteração do tipo de validação (removendo o lookpu) o módulo atuou corretamente, mantendo a subscription da fila, mesmo com um valor não default no campo.
A validação dos outros campos não foram alterados pois não fazia parte do contexto da demanda, não havendo tempo hábil para alterar e testar corretamente.