JavaScript riferimento alla funzione resolver per l'origine dati EventBridge - AWS AppSync

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à.

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'PutEventsoperazione 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.

resultAvranno 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 comando ErrorCode and ErrorMessage 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'PutEventsoperazione 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'PutEventsoperazione 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

PutEventscontiene 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 valore 2018-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" : [] }