Mi regla de Amazon EventBridge no invoca mi tarea de Amazon Elastic Container Service (Amazon ECS).
Descripción corta
Cuando utilizas una regla de EventBridge para invocar una tarea de Amazon ECS, EventBridge llama a la API RunTask para ejecutar las tareas.
Es posible que la regla de EventBridge no invoque tu tarea de ECS por los siguientes motivos:
- La configuración de las reglas de EventBridge es incorrecta.
- La configuración de objetivo de la regla de EventBridge es incorrecta.
- El rol de AWS Identity and Management (IAM) no tiene los permisos para ejecutar las tareas.
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Comprobación de la configuración de las reglas de EventBridge
Comprueba si la regla de EventBridge está en el estado HABILITADO. Si está en el estado DESACTIVADO, reactiva la regla y realiza pruebas para determinar si la regla puede crear una tarea.
Para comprobar el estado de la regla, puedes usar la consola de EventBridge o la AWS CLI.
Consola de EventBridge
Sigue estos pasos:
- Abre la consola de EventBridge.
- En el panel de navegación, selecciona Reglas.
- En Seleccionar bus de eventos, selecciona el bus de eventos asociado a la regla.
- Selecciona la regla para ver su estado.
AWS CLI
Ejecuta el siguiente comando describe-rule:
aws events describe-rule --name "DailyLambdaFunction" --region "us-east-1"
Nota: Sustituye us-east-1 por tu región de AWS.
En la salida del comando, comprueba el parámetro State para identificar el estado de la regla. Si la regla está en estado DESACTIVADO, comprueba los registros de AWS CloudTrail para identificar el motivo por el que se ha desactivado la regla.
Asegúrate de que el patrón de eventos sea correcto y coincida con los eventos que provienen del origen del evento. Para verificar el patrón de eventos, usa el entorno de pruebas de EventBridge.
Comprobación de la configuración de objetivo de la regla de EventBridge
Haz lo siguiente:
- Comprueba los parámetros Clúster de ECS, TaskDefinition y Configuración de red para el objetivo de la regla de EventBridge para asegurarte de que son correctos.
- Comprueba que el rol de IAM de EventBridge tenga los permisos necesarios para ejecutar la tarea.
Utiliza las siguientes métricas de Amazon CloudWatch para que te ayuden a solucionar problemas:
- Comprueba la métrica TriggeredRules. CloudWatch muestra la métrica solo cuando un evento activa una regla.
- Usa la métrica Invocations para comprobar cuántas veces EventBridge invocó una regla y, a continuación, intentó ejecutar la tarea de ECS.
- Usa la métrica FailedInvocations para determinar el número de invocaciones fallidas. Si el valor es alto, es posible que el objetivo esté configurado incorrectamente.
Nota: La estadística de suma puede ser la estadística más útil para comprobar la métrica FailedInvocations.
Determinar por qué falló la llamada a la API RunTask
Sigue estos pasos:
- Abre la consola de CloudTrail.
- En el panel de navegación, elige Historial de eventos.
- En la lista desplegable Atributos de búsqueda, elige Nombre del evento.
- En el cuadro de texto, escribe RunTask para filtrar los eventos relacionados con la API RunTask.
- Filtra el intervalo de tiempo en función de la versión ejecutable esperada de la tarea de ECS.
Nota: Los valores predeterminados para el intervalo de tiempo son 30 minutos, 1 hora, 3 horas y 12 horas. Para especificar un intervalo de tiempo personalizado, elige Intervalo absoluto.
- Elige el evento y, a continuación, revisa el registro de eventos JSON en la sección Registro de eventos. Busca el motivo del error en errorCode y errorMessage.
Uso de una DLQ de EventBridge
Las reglas de EventBridge admiten las colas de mensajes fallidos (DLQ). Las DLQ usan Amazon Simple Queue Service (Amazon SQS) para almacenar los eventos de invocación fallidos en una cola estándar que especifiques. Cuando la regla de evento no invoca tu objetivo, EventBridge envía una carga JSON que contiene los detalles de la invocación y las respuestas del objetivo a la DLQ. Puedes analizar el error en la entrega del evento en la DLQ para resolver el problema.
Información relacionada
¿Cómo puedo solucionar los problemas con reglas de Amazon EventBridge?
¿Cómo puedo usar una cola de mensajes fallidos para solucionar problemas con las reglas de FailedInvocations de EventBridge?