Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Ajouter AmazonEventBridgeévénements avecPutEvents
LePutEvents
l'action envoie plusieursévénementspourEventBridgeen une seule demande. Pour plus d'informations, voirPutEventsdans leAmazonEventBridgeRéférence d'APIetévénements PUTdans leAWS CLIRéférence de commande.
Chaque demande PutEvents
peut prendre en charge un nombre d'entrées limité. Pour plus d'informations, veuillez consulter AmazonEventBridgequotas. L'opération PutEvents
tente de traiter toutes les entrées dans l'ordre naturel de la demande. Après avoir appeléPutEvents
,EventBridgeattribue un identifiant unique à chaque événement.
Rubriques
L'exemple de code Java suivant envoie deux événements identiques àEventBridge.
Après avoir exécuté ce code, lePutEvents
le résultat inclut un tableau d'entrées de réponse. Chaque entrée du tableau de réponses correspond à une entrée du tableau de demandes dans l'ordre du début à la fin de la demande et de la réponse. Le tableau de réponse Entries
comprend toujours le même nombre d'entrées que le tableau de demande.
Gérer les défaillances avecPutEvents
Par défaut, si une entrée individuelle dans une demande échoue,EventBridgecontinue de traiter le reste des entrées de la demande. Une réponseEntries
le tableau peut inclure à la fois des entrées réussies et des entrées infructueuses. Vous devez détecter les entrées infructueuses et les inclure dans un appel ultérieur.
Les entrées de résultats réussies incluent unId
valeur, et les entrées de résultats infructueuses incluentErrorCode
etErrorMessage
valeurs.ErrorCode
décrit le type d'erreur.ErrorMessage
fournit des informations supplémentaires sur l'erreur. L'exemple suivant comporte trois entrées de résultats pour unPutEvents
demande. La deuxième entrée est infructueuse.
{ "FailedEntryCount": 1, "Entries": [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "ErrorCode": "InternalFailure", "ErrorMessage": "Internal Service Failure" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" } ] }
Note
Si vous utilisezPutEvents
pour publier un événement sur un bus d'événements qui n'existe pas,EventBridgele matching d'événements ne trouvera pas de règle correspondante et supprimera l'événement. Bien queEventBridgeenverra un200
réponse, elle n'échouera pas à la demande et n'inclura pas l'événement dans leFailedEntryCount
valeur de la réponse à la demande.
Vous pouvez inclure les entrées infructueuses dans les suivantesPutEvents
demandes. Tout d'abord, pour savoir si des entrées ont échoué dans la demande, consultezFailedRecordCount
paramètre dansPutEventsResult
. Si ce n'est pas zéro, vous pouvez ajouter chaqueEntry
qui possède unErrorCode
qui n'est pas nul pour une demande ultérieure. L'exemple suivant montre un gestionnaire de défaillances.
PutEventsRequestEntry requestEntry = new PutEventsRequestEntry() .withTime(new Date()) .withSource("com.mycompany.myapp") .withDetailType("myDetailType") .withResources("resource1", "resource2") .withDetail("{ \"key1\": \"value1\", \"key2\": \"value2\" }"); List<PutEventsRequestEntry> putEventsRequestEntryList = new ArrayList<>(); for (int i = 0; i < 3; i++) { putEventsRequestEntryList.add(requestEntry); } PutEventsRequest putEventsRequest = new PutEventsRequest(); putEventsRequest.withEntries(putEventsRequestEntryList); PutEventsResult putEventsResult = awsEventsClient.putEvents(putEventsRequest); while (putEventsResult.getFailedEntryCount() > 0) { final List<PutEventsRequestEntry> failedEntriesList = new ArrayList<>(); final List<PutEventsResultEntry> PutEventsResultEntryList = putEventsResult.getEntries(); for (int i = 0; i < PutEventsResultEntryList.size(); i++) { final PutEventsRequestEntry putEventsRequestEntry = putEventsRequestEntryList.get(i); final PutEventsResultEntry putEventsResultEntry = PutEventsResultEntryList.get(i); if (putEventsResultEntry.getErrorCode() != null) { failedEntriesList.add(putEventsRequestEntry); } } putEventsRequestEntryList = failedEntriesList; putEventsRequest.setEntries(putEventsRequestEntryList); putEventsResult = awsEventsClient.putEvents(putEventsRequest); }
Envoi d'événements à l'aide duAWS CLI
Vous pouvez utiliserAWS CLIpour envoyer des événements personnalisés àEventBridgeafin qu'ils puissent être traités. L'exemple suivant place un événement personnalisé dans EventBridge :
aws events put-events \ --entries '[{"Time": "2016-01-14T01:02:03Z", "Source": "com.mycompany.myapp", "Resources": ["resource1", "resource2"], "DetailType": "myDetailType", "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }"}]'
Vous pouvez également créer un fichier JSON contenant des événements personnalisés.
[ { "Time": "2016-01-14T01:02:03Z", "Source": "com.mycompany.myapp", "Resources": [ "resource1", "resource2" ], "DetailType": "myDetailType", "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }" } ]
Ensuite, pour utiliser leAWS CLIpour lire les entrées de ce fichier et envoyer des événements, à l'invite de commande, tapez :
aws events put-events --entries file://
entries.json