Passer au contenu

Comment résoudre les problèmes liés aux règles intercomptes ou interrégionales Amazon EventBridge ?

Lecture de 4 minute(s)
0

Ma règle d'événement de destination Amazon EventBridge ne s'active pas lorsque j'envoie des événements vers un autre compte AWS ou une autre région AWS.

Brève description

Les événements peuvent ne pas être publiés sur tous les comptes ou régions pour les raisons suivantes :

  • La règle d'événement sur le compte source n'a pas été initiée ou les invocations de cible ont échoué.
  • Le compte ou l'organisation source ne dispose pas des autorisations appropriées.
  • La règle d'événement sur le compte de destination n'a pas été initiée ou les invocations de cible ont échoué.

Pour capturer les codes d'erreur relatifs aux invocations échouées, utilisez une file d'attente de lettres mortes (DLQ). Pour plus d’informations, consultez la section Comment modifier les paramètres de nouvelle tentative d'EventBridge et utiliser un DLQ pour les invocations qui ont échoué ?

Résolution

La règle d'événement sur le compte source n'a pas été initiée ou les invocations de cible ont échoué

EventBridge publie un événement sur tous les comptes uniquement lorsque le compte source initie une règle d'événement et invoque la cible.

EventBridge lance une règle lorsque son modèle correspond à l'événement entrant. S'il existe une correspondance de modèle, EventBridge envoie la valeur 1 à la métrique TriggeredRules qui correspond à l'événement associé. Pour plus d'informations sur les métriques EventBridge, consultez la section Surveillance d'Amazon EventBridge.

Si EventBridge déclenche la règle, vérifiez la métrique Invocations de la règle correspondante afin de confirmer qu'EventBridge a invoqué la cible. La métrique Invocations indique uniquement qu'EventBridge a essayé d'invoquer la cible. La métrique ne confirme pas que l'invocation est terminée.

Pour vérifier le statut d'achèvement de l'invocation cible, utilisez la métrique FailedInvocations pour la règle correspondante. S'il n'existe aucun point de données dans la métrique FailedInvocations mais qu'il existe un point de données correspondant dans la métrique Invocations, EventBridge a correctement invoqué la cible.

Des invocations défaillantes peuvent survenir, car le bus d'événements du compte de destination ne dispose pas des autorisations requises. Des autorisations Gestion des identités et des accès AWS (AWS IAM) insuffisantes sur la cible de la règle du compte source peuvent également entraîner l'échec des invocations.

Le compte ou l'organisation source ne dispose pas des autorisations appropriées

Pour recevoir des événements provenant d'autres comptes ou d'AWS Organizations, le compte source doit être autorisé à envoyer des événements. Vérifiez que la politique basée sur les ressources associée au bus d'événements accorde l'autorisation appropriée au compte source.

Exemple de politique avec les autorisations appropriées :

{  "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"
  }]
}

Remarque : remplacez SOURCE-ACC-ID par l'ID du compte source et DESTINATION-ACC-ID par l'ID du compte de destination. Remplacez également REGION par la région du compte de destination et destination-account-bus-name par le nom du bus du compte de destination.

Lorsque la cible de la règle est un bus d'événements, utilisez un rôle IAM pour autoriser l'envoi d'événements vers un autre compte ou une autre région. Associez la politique basée sur les ressources suivante au rôle 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"
            ]
        }
    ]
}

Remarque : remplacez DESTINATION-ACC-ID par l'identifiant de votre compte de destination Remplacez également REGION par la région du compte de destination et DESTINATION-ACCOUNT-BUS-NAME par le nom de bus du compte de destination.

Le compte source peut ensuite effectuer un appel d'API PutEvents sur le bus d'événements du compte de destination.

Si vous utilisez PutTargets pour créer manuellement la cible de la règle et définir des autorisations pour toute l'organisation sur le bus d'événements, spécifiez un rôle IAM.

Pour plus d'informations sur les autorisations IAM requises, consultez la section Accorder des autorisations pour autoriser les événements provenant d'autres comptes AWS. Consultez également la section Autorisations pour les bus d’événements dans Amazon EventBridge.

La règle d'événement sur le compte de destination n'a pas été initiée ou les invocations de cible ont échoué

Lorsque vous publiez un événement sur le bus d'événements du compte de destination, configurez des règles dans le compte de destination qui correspondent aux événements du compte de l'expéditeur.

Pour vérifier que le modèle de la règle correspond à l'événement entrant qui la déclenche, vérifiez les métriques des règles du compte de destination. Vérifiez que l'invocation de la cible est réussie. Pour plus d'informations sur les métriques EventBridge, consultez la section Surveillance d'Amazon EventBridge.

AWS OFFICIELA mis à jour il y a 7 mois