Skip to content

Comportamento inesperado com atributo NÃO sendo default (Removendo subscription) #3

@andaraGui

Description

@andaraGui

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions