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?
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.