JavaScript referencia de la función de resolución para la fuente EventBridge de datos - AWS AppSync

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

JavaScript referencia de la función de resolución para la fuente EventBridge de datos

La AWS AppSync solicitud y respuesta de la función de resolución utilizada con la fuente de EventBridge datos le permiten enviar eventos personalizados al EventBridge bus de Amazon.

Solicitud

El controlador de solicitudes le permite enviar varios eventos personalizados a un bus de EventBridge eventos:

export function request(ctx) { return { "operation" : "PutEvents", "events" : [{}] } }

Una EventBridge PutEvents solicitud tiene la siguiente definición de tipo:

type PutEventsRequest = { operation: 'PutEvents' events: { source: string detail: { [key: string]: any } detailType: string resources?: string[] time?: string // RFC3339 Timestamp format }[] }

Respuesta

Si la PutEvents operación se realiza correctamente, la respuesta de EventBridge se incluye enctx.result:

export function response(ctx) { if(ctx.error) util.error(ctx.error.message, ctx.error.type, ctx.result) else return ctx.result }

Los errores que se produzcan al realizar operaciones PutEvents como InternalExceptions o Timeouts aparecerán en ctx.error. Para obtener una lista EventBridge de los errores más comunes, consulta la referencia de errores EventBridge comunes.

El result tendrá la siguiente definición de tipos:

type PutEventsResult = { Entries: { ErrorCode: string ErrorMessage: string EventId: string }[] FailedEntryCount: number }
  • Entradas

    Resultados de los eventos ingeridos, tanto correctos como incorrectos. Si la ingesta se realizó correctamente, la entrada contiene el EventID. De lo contrario, puede usar ErrorCode y ErrorMessage para identificar el problema con la entrada.

    Para cada registro, el índice del elemento de respuesta es el mismo que el de la matriz de solicitudes.

  • FailedEntryCount

    Número de entradas con error. Este valor se representa como un entero.

Para obtener más información sobre la respuesta dePutEvents, consulte PutEvents.

Ejemplo de respuesta de muestra 1

El siguiente ejemplo es una operación PutEvents con dos eventos correctos:

{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" } ], "FailedEntryCount" : 0 }

Ejemplo de respuesta de muestra 2

El siguiente ejemplo es una operación PutEvents con tres eventos, dos correctos y uno incorrecto:

{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" }, { "ErrorCode" : "SampleErrorCode", "ErrorMessage" : "Sample Error Message" } ], "FailedEntryCount" : 1 }

Campos PutEvents

PutEventscontiene los siguientes campos de plantilla de mapeo:

  • Versión

    El campo version es común a todas las plantillas de mapeo de solicitudes y define la versión utilizada por la plantilla. Este campo es obligatorio. El valor 2018-05-29 es la única versión compatible con las plantillas de EventBridge mapeo.

  • Operación

    La única operación admitida es PutEvents. Esta operación permite añadir eventos personalizados a su bus de eventos.

  • Eventos

    Una matriz de eventos que se añadirán al bus de eventos. Esta matriz debe tener una asignación de entre 1 y 10 elementos.

    El objeto Event tiene los siguientes campos:

    • "source": cadena que define el origen del evento.

    • "detail": un JSON objeto que puede utilizar para adjuntar información sobre el evento. Este campo puede ser un mapa vacío ( { } ).

    • "detailType: cadena que identifica el tipo de evento

    • "resources": una JSON matriz de cadenas que identifica los recursos involucrados en el evento. Este campo puede ser una matriz vacía.

    • "time": marca temporal del evento proporcionada como cadena. Debe seguir el formato de RFC3339marca de tiempo.

Los siguientes fragmentos de código son algunos ejemplos de objetos Event válidos:

Ejemplo 1

{ "source" : "source1", "detail" : { "key1" : [1,2,3,4], "key2" : "strval" }, "detailType" : "sampleDetailType", "resources" : ["Resouce1", "Resource2"], "time" : "2022-01-10T05:00:10Z" }

Ejemplo 2

{ "source" : "source1", "detail" : {}, "detailType" : "sampleDetailType" }

Ejemplo 3

{ "source" : "source1", "detail" : { "key1" : 1200 }, "detailType" : "sampleDetailType", "resources" : [] }