Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AWS AppSync JavaScript riferimento alla funzione resolver per l'origine dati EventBridge
La funzione di richiesta e risposta del AWS AppSync resolver utilizzata con l'origine EventBridge dati consente di inviare eventi personalizzati al bus Amazon EventBridge .
Richiesta
Il gestore delle richieste consente di inviare più eventi personalizzati a un EventBridge bus di eventi:
export function request(ctx) { return { "operation" : "PutEvents", "events" : [{}] } }
Una EventBridge PutEvents
richiesta ha la seguente definizione di tipo:
type PutEventsRequest = { operation: 'PutEvents' events: { source: string detail: { [key: string]: any } detailType: string resources?: string[] time?: string // RFC3339 Timestamp format }[] }
Risposta
Se l'PutEvents
operazione ha esito positivo, la risposta di EventBridge viene inclusa inctx.result
:
export function response(ctx) { if(ctx.error) util.error(ctx.error.message, ctx.error.type, ctx.result) else return ctx.result }
Errori che si verificano durante l'esecuzione di PutEvents
operazioni come InternalExceptions
o Timeouts
che verranno visualizzati inctx.error
. Per un elenco degli EventBridge errori più comuni, consulta il riferimento agli errori EventBridge comuni.
result
Avranno la seguente definizione del tipo:
type PutEventsResult = { Entries: { ErrorCode: string ErrorMessage: string EventId: string }[] FailedEntryCount: number }
-
Voci
I risultati dell'evento ingerito, sia riusciti che infruttuosi. Se l'ingestione è andata a buon fine, la voce contiene il
EventID
In caso contrario, è possibile utilizzare il comandoErrorCode
andErrorMessage
per identificare il problema relativo alla voce.Per ogni record, l'indice dell'elemento di risposta è lo stesso dell'indice nell'array di richiesta.
-
FailedEntryCount
Il numero di inserimenti non riusciti. Questo valore è rappresentato come un numero intero.
Per ulteriori informazioni sulla risposta diPutEvents
, vedere PutEvents.
Esempio di risposta 1
L'esempio seguente è un'PutEvents
operazione con due eventi riusciti:
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" } ], "FailedEntryCount" : 0 }
Esempio di risposta di esempio 2
L'esempio seguente è un'PutEvents
operazione con tre eventi, due riusciti e uno fallito:
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" }, { "ErrorCode" : "SampleErrorCode", "ErrorMessage" : "Sample Error Message" } ], "FailedEntryCount" : 1 }
PutEvents
campi
PutEvents
contiene i seguenti campi del modello di mappatura:
-
Versione
Comune a tutti i modelli di mappatura delle richieste, il
version
campo definisce la versione utilizzata dal modello. Questo campo è obbligatorio. Il valore2018-05-29
è l'unica versione supportata per i modelli di EventBridge mappatura. -
Operazioni
L'unica operazione supportata è
PutEvents
. Questa operazione consente di aggiungere eventi personalizzati al bus degli eventi. -
Eventi
Una serie di eventi che verranno aggiunti all'event bus. Questo array dovrebbe avere un'allocazione di 1-10 elementi.
L'oggetto
Event
dispone dei campi seguenti:-
"source"
: Una stringa che definisce l'origine dell'evento. -
"detail"
: Un JSON oggetto che è possibile utilizzare per allegare informazioni sull'evento. Questo campo può essere una mappa vuota ({ }
). -
"detailType
: Una stringa che identifica il tipo di evento. -
"resources"
: Una JSON matrice di stringhe che identifica le risorse coinvolte nell'evento. Questo campo può essere una matrice vuota. -
"time"
: Il timestamp dell'evento fornito come stringa. Questo dovrebbe seguire il formato del RFC3339timestamp.
-
I frammenti seguenti sono alcuni esempi di oggetti validi: Event
Esempio 1
{ "source" : "source1", "detail" : { "key1" : [1,2,3,4], "key2" : "strval" }, "detailType" : "sampleDetailType", "resources" : ["Resouce1", "Resource2"], "time" : "2022-01-10T05:00:10Z" }
Esempio 2
{ "source" : "source1", "detail" : {}, "detailType" : "sampleDetailType" }
Esempio 3
{ "source" : "source1", "detail" : { "key1" : 1200 }, "detailType" : "sampleDetailType", "resources" : [] }