es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Evento de AWS CloudWatch que activa SQS: no funciona.

Configuré una cola AWS SQS con Terraform. Hay algunos suscriptores en ejecución en AWS ECS. Mi plan era configurar una regla de CloudWatch con una expresión cron, que periódicamente envía un mensaje a la cola SQS. La cola SQS se ve así:

resource "aws_sqs_queue" "main-queue-fifo" {
  name                        = join("-", [var.environment, "main", "queue.fifo"])
  fifo_queue                  = true
  content_based_deduplication = true
  delay_seconds               = 0
  max_message_size            = 51200  # 50 kb
  message_retention_seconds   = 345600 # 4 días
  receive_wait_time_seconds   = 10
  visibility_timeout_seconds  = 180

  tags = {
    Environment = var.environment
  }
}

Y la regla + destino de AWS CloudWatch se ve así:

resource "aws_cloudwatch_event_rule" "sqs-cn-overdue-reminder" {
  name                = join("-", [var.environment, "sqs-cn-overdue-reminder-rule"]) 
  description         = "Recordar a la organización que pague las notas de crédito vencidas"
  schedule_expression = "cron(0 11 ? * MON-FRI *)" # De lunes a viernes a las 11:00
}

resource "aws_cloudwatch_event_target" "sqs-cn-overdue-reminder" {
  target_id = join("-", [var.environment, "sqs-cn-overdue-reminder-target"])
  arn       = aws_sqs_queue.main-queue-fifo.arn
  input     = jsonencode({"event": "cn-overdue-reminder"})
  rule      = aws_cloudwatch_event_rule.sqs-cn-overdue-reminder.name

  sqs_target {
    message_group_id = "main"
  }
}

El problema es que el mensaje nunca llega a la cola SQS. En las métricas de la regla puedo ver que la invocación fue desencadenada, pero falló. Pero no puedo ver por qué falló la invocación. ¿Alguien sabe por qué falló la invocación?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no tengo los permisos necesarios para investigar una cuenta de AWS. Sin embargo, según el código proporcionado, una posible razón por la que la invocación falla podría ser que los suscriptores de ECS no estén configurados correctamente para recibir mensajes de la cola SQS. Otra posible razón podría ser que el formato del mensaje de entrada sea incorrecto, lo cual se puede verificar habilitando el registro de CloudWatch en el destino y revisando los registros en busca de errores. Se recomienda verificar los registros de CloudWatch del destino y los suscriptores para investigar más a fondo el problema.

Comments are closed.