Mi regla de eventos de destino de Amazon EventBridge no se inicia cuando envío eventos a una cuenta de AWS o región de AWS diferente.
Descripción corta
Es posible que los eventos no se publiquen en todas las cuentas o regiones por los siguientes motivos:
- La regla de eventos de la cuenta de origen no se inició o las invocaciones de objetivo fallaron.
- La cuenta u organización de origen no tiene los permisos correctos.
- La regla de eventos de la cuenta de destino no se inició o las invocaciones de objetivo fallaron.
Para capturar los códigos de error de las invocaciones fallidas, usa una cola de mensajes fallidos (DLQ). Para más información, consulta ¿Cómo modifico la configuración de reintentos de EventBridge y uso una DLQ para las invocaciones con error?
Resolución
La regla de eventos de la cuenta de origen no se inició o las invocaciones de objetivo fallaron
EventBridge publica un evento en todas las cuentas solo cuando la cuenta de origen inicia una regla de eventos e invoca el objetivo.
EventBridge inicia una regla cuando su patrón coincide con el evento entrante. Si hay una coincidencia de patrones, EventBridge envía un valor de 1 a la métrica TriggeredRules que corresponde al evento coincidente. Para obtener más información sobre las métricas de EventBridge, consulta Monitoring Amazon EventBridge (Supervisión de Amazon EventBridge).
Si EventBridge inicia la regla, comprueba la métrica Invocations para ver la regla correspondiente para confirmar que EventBridge ha invocado el objetivo. La métrica Invocations solo muestra que EventBridge ha intentado invocar el objetivo. La métrica no confirma que la invocación se haya completado.
Para comprobar el estado de finalización de la invocación de objetivo, usa la métrica FailedInvocations para la regla correspondiente. Si no hay ningún punto de datos en la métrica FailedInvocations, pero hay un punto de datos correspondiente en la métrica Invocations, EventBridge ha invocado correctamente el objetivo.
Es posible que las invocaciones fallidas se deban a que el bus de eventos de la cuenta de destino no tiene los permisos necesarios. Los permisos insuficientes de AWS Identity and Access Management (IAM) en el objetivo de la regla de la cuenta de origen también pueden provocar invocaciones fallidas.
La cuenta u organización de origen no tiene los permisos correctos
Para recibir eventos de otras cuentas o de AWS Organizations, la cuenta de origen debe tener permiso para enviar eventos. Confirma que la política basada en recursos que se adjunta al bus de eventos otorgue el permiso correspondiente a la cuenta de origen.
Ejemplo de política con los permisos correctos:
{ "Version": "2012-10-17",
"Statement": [{
"Sid": "WebStoreCrossAccountPublish",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SOURCE-ACC-ID:root"
},
"Action": "events:PutEvents",
"Resource": "arn:aws:events:REGION:DESTINATION-ACC-ID:event-bus/destination-account-bus-name"
}]
}
Nota: Sustituye SOURCE-ACC-ID por el ID de la cuenta de origen y DESTINATION-ACC-ID por el ID de la cuenta de destino. Sustituye también REGION por la región de la cuenta de destino y destination-account-bus-name por el nombre del bus de la cuenta de destino.
Cuando el objetivo de la regla sea un bus de eventos, utiliza un rol de IAM para conceder permiso para enviar eventos a una cuenta o región diferente. Adjunta la siguiente política basada en recursos al rol de IAM:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "ActionsForResource",
"Effect": "Allow",
"Action": [
"events:PutEvents"
],
"Resource": [
"arn:aws:events:REGION:DESTINATION-ACC-ID:event-bus/DESTINATION-ACCOUNT-BUS-NAME"
]
}
]
}
Nota: Sustituye DESTINATION-ACC-ID por el ID de tu cuenta de destino. Sustituye también REGION por la región de la cuenta de destino y DESTINATION-ACCOUNT-BUS-NAME por el nombre del bus de la cuenta de destino.
La cuenta de origen puede entonces realizar una llamada a la API PutEvents en el bus de eventos de la cuenta de destino.
Si usas PutTargets para crear manualmente el objetivo de la regla y establecer permisos para toda la organización en el bus de eventos, especifica un rol de IAM.
Para obtener más información sobre los permisos de IAM necesarios, consulta Grant permissions to allow events from other AWS accounts (Concesión de permisos para permitir eventos de otras cuentas de AWS). Consulta también Permissions for event buses in Amazon EventBridge (Permisos para buses de eventos en Amazon EventBridge).
La regla de eventos de la cuenta de destino no se inició o las invocaciones de objetivo fallaron
Al publicar un evento en el bus de eventos de la cuenta de destino, configura reglas en la cuenta de destino que coincidan con los eventos de la cuenta del remitente.
Para confirmar que el patrón de la regla coincida con el evento entrante que la inicia, comprueba las métricas de la regla de la cuenta de destino. Comprueba que la invocación del objetivo se haya realizado correctamente. Para obtener más información sobre las métricas de EventBridge, consulta Monitoring Amazon EventBridge (Supervisión de Amazon EventBridge).