Referencia de plantillas de mapeo de solucionador de AWS AppSync para EventBridge - AWS AppSync

Referencia de plantillas de mapeo de solucionador de AWS AppSync para EventBridge

nota

Ahora admitimos de forma básica el tiempo de ejecución APPSYNC_JS y su documentación. Considere la opción de utilizar el tiempo de ejecución APPSYNC_JS y sus guías aquí.

La plantilla de mapeo de solucionador de AWS AppSync utilizada con el origen de datos de EventBridge permite enviar eventos personalizados al bus de Amazon EventBridge.

Plantilla de mapeo de solicitudes

La plantilla de mapeo de solicitudes PutEvents permite enviar varios eventos personalizados a un bus de eventos de EventBridge. El documento de mapeo tiene la siguiente estructura:

{ "version" : "2018-05-29", "operation" : "PutEvents", "events" : [{}] }

A continuación se muestra un ejemplo de una plantilla de mapeo de solicitudes para EventBridge:

{ "version": "2018-05-29", "operation": "PutEvents", "events": [{ "source": "com.mycompany.myapp", "detail": { "key1" : "value1", "key2" : "value2" }, "detailType": "myDetailType1" }, { "source": "com.mycompany.myapp", "detail": { "key3" : "value3", "key4" : "value4" }, "detailType": "myDetailType2", "resources" : ["Resource1", "Resource2"], "time" : "2023-01-01T00:30:00.000Z" } ] }

Plantilla de mapeo de respuestas

Si la operación PutEvents se realiza correctamente, la respuesta de EventBridge se incluirá en $ctx.result:

#if($ctx.error) $util.error($ctx.error.message, $ctx.error.type, $ctx.result) #end $util.toJson($ctx.result)

Los errores que se produzcan al realizar operaciones PutEvents como InternalExceptions o Timeouts aparecerán en $ctx.error. Para ver una lista de errores comunes de EventBridge, consulte la referencia de errores comunes de EventBridge.

El result tendrá el siguiente formato:

{ "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 de PutEvents, 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

PutEvents contiene los siguientes campos de plantillas 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 admitida para las plantillas de mapeo de EventBridge.

  • 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 es un objeto JSON válido que tiene los siguientes campos:

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

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

    • "detailType: cadena que identifica el tipo de evento

    • "resources": matriz JSON 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 marca temporal RFC3339.

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