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