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.
AWS AppSync JavaScript référence de fonction de résolution pour la source de EventBridge données
La demande et AWS AppSync la réponse de la fonction de résolution utilisées avec la source de EventBridge données vous permettent d'envoyer des événements personnalisés au EventBridge bus Amazon.
Demande
Le gestionnaire de demandes vous permet d'envoyer plusieurs événements personnalisés à un bus d' EventBridge événements :
export function request(ctx) { return { "operation" : "PutEvents", "events" : [{}] } }
La définition de type d'une EventBridge PutEvents
demande est la suivante :
type PutEventsRequest = { operation: 'PutEvents' events: { source: string detail: { [key: string]: any } detailType: string resources?: string[] time?: string // RFC3339 Timestamp format }[] }
Réponse
Si l'PutEvents
opération est réussie, la réponse du formulaire EventBridge est incluse dans le ctx.result
:
export function response(ctx) { if(ctx.error) util.error(ctx.error.message, ctx.error.type, ctx.result) else return ctx.result }
Les erreurs qui se produisent lors de l'exécution d'PutEvents
opérations telles que InternalExceptions
ou Timeouts
apparaîtront dansctx.error
. Pour obtenir la liste EventBridge des erreurs courantes, consultez la référence des erreurs EventBridge courantes.
Ils result
auront la définition de type suivante :
type PutEventsResult = { Entries: { ErrorCode: string ErrorMessage: string EventId: string }[] FailedEntryCount: number }
-
Entrées
L'événement ingéré entraîne à la fois un succès et un échec. Si l'ingestion a réussi, l'entrée
EventID
en contient. Sinon, vous pouvez utiliser leErrorCode
etErrorMessage
pour identifier le problème lié à l'entrée.Pour chaque enregistrement, l'index de l'élément de réponse est le même que celui du tableau de requêtes.
-
FailedEntryCount
Le nombre d'entrées ayant échoué. Cette valeur est représentée par un entier.
Pour plus d'informations sur la réponse dePutEvents
, voir PutEvents.
Exemple de réponse 1
L'exemple suivant est une PutEvents
opération avec deux événements réussis :
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" } ], "FailedEntryCount" : 0 }
Exemple de réponse 2
L'exemple suivant est une PutEvents
opération comportant trois événements, deux réussites et un échec :
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" }, { "ErrorCode" : "SampleErrorCode", "ErrorMessage" : "Sample Error Message" } ], "FailedEntryCount" : 1 }
Champs de PutEvents
PutEvents
contient les champs du modèle de mappage suivants :
-
Version
Commun à tous les modèles de mappage de demandes, le
version
champ définit la version utilisée par le modèle. Ce champ est obligatoire. La valeur2018-05-29
est la seule version prise en charge pour les modèles de EventBridge mappage. -
Opération
La seule opération prise en charge est
PutEvents
. Cette opération vous permet d'ajouter des événements personnalisés à votre bus d'événements. -
Événements
Un ensemble d'événements qui seront ajoutés au bus d'événements. Ce tableau doit avoir une allocation de 1 à 10 éléments.
L'objet
Event
comporte les champs suivants :-
"source"
: chaîne qui définit la source de l'événement. -
"detail"
: JSON objet que vous pouvez utiliser pour joindre des informations relatives à l'événement. Ce champ peut être une carte vide ({ }
). -
"detailType
: chaîne identifiant le type d'événement. -
"resources"
: JSON tableau de chaînes identifiant les ressources impliquées dans l'événement. Ce champ peut être un tableau vide. -
"time"
: l'horodatage de l'événement fourni sous forme de chaîne. Cela doit suivre le format d'RFC3339horodatage.
-
Les extraits ci-dessous sont des exemples d'objets valides Event
:
Exemple 1
{ "source" : "source1", "detail" : { "key1" : [1,2,3,4], "key2" : "strval" }, "detailType" : "sampleDetailType", "resources" : ["Resouce1", "Resource2"], "time" : "2022-01-10T05:00:10Z" }
Exemple 2
{ "source" : "source1", "detail" : {}, "detailType" : "sampleDetailType" }
Exemple 3
{ "source" : "source1", "detail" : { "key1" : 1200 }, "detailType" : "sampleDetailType", "resources" : [] }