¿Cómo puedo solucionar los problemas con reglas de Amazon EventBridge?

6 minutos de lectura
0

Quiero averiguar por qué mi regla de Amazon EventBridge no activó ni invocó el destino como cabría esperar.

Breve descripción

Utilice este flujo de trabajo de validación para aislar el problema:

  1. Confirme que se ha producido el evento relevante (por ejemplo, una llamada a la API de AWS CloudTrail o la carga de un objeto de Simple Storage Service (Amazon S3)).
  2. Confirme que el evento coincidió con el patrón de eventos de la regla.
  3. Confirme si el destino procesó correctamente el evento (por ejemplo, el evento invocó una función de AWS Lambda).

Resolución

Siga estos pasos para solucionar los problemas relacionados con reglas de Amazon EventBridge:

Validar un evento de entrada

Valide el evento de entrada de una o varias de las siguientes maneras:

  • Si AWS CloudTrail capturó el evento, analice los registros de CloudTrail. Compruebe que la llamada a la API se haya realizado en el momento previsto y que coincida con todos los campos del patrón de eventos.
    Nota: Algunos servicios de AWS solo están disponibles en la región us-east-1. Por ejemplo, las llamadas a la API de AWS Identity and Access Management (IAM) solo se publican en la región us-east-1. Si se creó una regla correspondiente a los eventos de IAM en otra región, estos eventos no se reenviarán a EventBridge. Como resultado, estos eventos no activan la regla.
  • La consola de Amazon EventBridge proporciona la herramienta Sandbox de EventBridge, que contiene ejemplos de eventos de AWS y de socios. Utilice la herramienta para comparar el patrón de eventos propuesto con los eventos de AWS, de socios y personalizados. Como alternativa, utilice la API TestEventPattern para confirmar la coincidencia entre el patrón de eventos y el evento.
  • EventBridge proporciona métricas de TriggeredRules para informar de si se han obtenido eventos coincidentes correctamente con una regla. Las marcas de tiempo de los puntos de datos de TriggeredRules indican cuándo se produjo el evento.

Revisar las métricas de CloudWatch

Siga estos pasos para revisar las métricas de CloudWatch en relación con una regla de Amazon EventBridge:

  1. Abra la consola de CloudWatch.
  2. Seleccione Todas las métricas.
  3. Seleccione el espacio de nombres AWS/Events.
  4. Seleccione las métricas TriggerRules, Invocations y FailedInvocations (si están disponibles) para la regla en cuestión. Puede ver estas métricas con la estadística SUM.

Validar el patrón de eventos

Para que se dé una coincidencia con un evento, todos los campos de un patrón de eventos deben coincidir. Utilice la herramienta Sandbox para probar el evento deseado con un patrón de eventos con unos cuantos campos. Por ejemplo, use un patrón de eventos simple como el que se muestra a continuación:

{
    "source": ["aws.s3"]
}

Aumente la complejidad del patrón de eventos si obtiene coincidencias satisfactorias. Cada campo que añada al patrón de eventos filtrará los eventos con los que coincide y reducirá el enfoque.

A continuación se muestra un ejemplo de patrón de eventos. El patrón coincide con una lista de llamadas a la API de Amazon S3 en un bucket específico para un objeto que comienza con una de estas dos cadenas: feature1 y feature2.

{
  "source": [
    "aws.s3"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventName": [
      "PutObject",
      "DeleteObject",
      "DeleteObjects"
    ],
    "requestParameters": {
      "bucketName": [
        "123456789012-prod-app1"
      ],
      "key": [
        {
          "prefix": "feature1/"
        },
        {
          "prefix": "feature2/"
        }
      ]
    }
  }
}

Añada campos gradualmente para aislar los campos que no coincidan con los eventos deseados.

Validar el destino

  • La métrica Invocations publica un punto de datos cuando una regla reenvía un evento a un destino. Esto representa las invocaciones correctas y las fallidas.

  • Amazon EventBridge emite un punto de datos FailedInvocations cuando es incapaz de invocar el destino definitivamente. FailedInvocations indica problemas con la configuración del destino o debidos a permisos inadecuados.

  • Amazon EventBridge debe contar con los permisos adecuados para invocar el destino. En función del destino, los permisos los concede el rol de AWS Identity and Access Management (IAM) o una política de recursos.

  • Al crear reglas con la consola de Amazon EventBridge, la consola añade automáticamente los permisos necesarios a los recursos relacionados.
    Nota: Configure los permisos de forma explícita si despliega la regla mediante AWS SDK, la Interfaz de la línea de comandos de AWS (AWS CLI) o AWS CloudFormation.

  • Si no hay ningún punto de datos FailedInvocations, significa que Amazon EventBridge ha entregado el evento en el destino correctamente. Sin embargo, es posible que el destino no funcione bien. Por ejemplo, un destino de AWS Lambda puede toparse con errores durante la ejecución o la limitación. Para obtener más información, revise las métricas de Amazon CloudWatch del destino y los registros relevantes.

  • Asocie una cola de mensajes fallidos (DLQ) de Amazon Simple Queue Service (Amazon SQS) al destino. Los eventos no entregados en el destino se envían a la cola de mensajes fallidos. Puede utilizar este método para obtener más detalles sobre los eventos fallidos. Eche un vistazo al siguiente fragmento de un mensaje extraído de la DLQ sobre un evento fallido:

    "MessageAttributes": {
                    "ERROR_CODE": {
                        "StringValue": "NO_PERMISSIONS",
                        "DataType": "String"
                    },
                    "ERROR_MESSAGE": {
                        "StringValue": "User: events.amazonaws.com is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-east-1:123456789012:function:Hello_World because no resource-based policy allows the lambda:InvokeFunction action (Service: AWSLambdaInternal; Status Code: 403;
    Error Code: AccessDeniedException; Request ID: 6635c4c4-9c54-416e-bc40-ef25bad0aca5; Proxy: null)",
                        "DataType": "String"
                    },

    El mensaje muestra que el servicio de Amazon EventBridge no tiene los permisos necesarios para invocar el destino de Lambda.

  • Las reglas de Amazon EventBridge admiten hasta cinco destinos. Asocie temporalmente un destino de grupo de Registros de Amazon CloudWatch o un tema de Amazon Simple Notification Service (Amazon SNS). Esta acción captura los eventos reenviados a los destinos o aísla las configuraciones incorrectas de destinos. Tanto el registro como el tema proporcionan estos servicios:

  • Confirman el cuerpo del evento y los campos específicos que el destino debe analizar y procesar.

  • Confirman la entrega del evento en el destino.

  • Confirman que la configuración del transformador de entrada es correcta.

Información relacionada

Troubleshooting Amazon EventBridge

¿Por qué la regla de EventBridge no activó la función Lambda?

How do I troubleshoot errors in the Amazon EventBridge Scheduler?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses