Referência do modelo de mapeamento do resolvedor do AWS AppSync para EventBridge - AWS AppSync

Referência do modelo de mapeamento do resolvedor do AWS AppSync para EventBridge

nota

Agora, oferecemos suporte principalmente ao runtime do APPSYNC_JS e sua documentação. Considere usar o runtime do APPSYNC_JS e seus guias disponíveis aqui.

O modelo de mapeamento do resolvedor do AWS AppSync usado com a fonte de dados do EventBridge permite que você envie eventos personalizados para o barramento do Amazon EventBridge.

Modelo de mapeamento de solicitações

O modelo de mapeamento da solicitação PutEvents permite que você envie vários eventos personalizados para um barramento de eventos do EventBridge. O documento de mapeamento possui a seguinte estrutura:

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

Veja a seguir um exemplo de um modelo de mapeamento de solicitações para o 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" } ] }

Modelo de mapeamento de respostas

Se a operação PutEvents for bem-sucedida, a resposta do EventBridge será incluída em $ctx.result:

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

Erros que ocorrem durante a execução de operações PutEvents, como InternalExceptions ou Timeouts, aparecerão em $ctx.error. Para obter uma lista dos erros comuns do EventBridge, consulte a referência de erros comuns do EventBridge.

O result estará no seguinte formato:

{ "Entries" [ { "ErrorCode" : String, "ErrorMessage" : String, "EventId" : String } ], "FailedEntryCount" : number }
  • Entradas

    Os resultados do evento ingerido, tanto bem-sucedidos quanto com erro. Se a ingestão foi bem-sucedida, a entrada contém EventID. Caso contrário, você pode usar ErrorCode e ErrorMessage para identificar o problema com a entrada.

    Para cada registro, o índice do elemento de resposta é igual ao índice na matriz de solicitações.

  • FailedEntryCount

    O número de entradas com falha. Esse valor é representado como um número inteiro.

Para obter mais informações sobre a resposta de PutEvents, consulte PutEvents.

Exemplo de resposta de amostra 1

O exemplo a seguir é uma operação PutEvents com dois eventos bem-sucedidos:

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

Exemplo de resposta de amostra 2

O exemplo a seguir é uma operação PutEvents com três eventos, dois bem-sucedidos e um com falha:

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

Campos de PutEvents

PutEvents contém os seguintes campos do modelo de mapeamento:

  • Version (Versão)

    Comum a todos os modelos de mapeamento de solicitação, version define a versão usada pelo modelo. Este campo é obrigatório. O valor 2018-05-29 é a única versão compatível com os modelos de mapeamento do EventBridge.

  • Operation

    A única operação suportada é PutEvents. Essa operação permite adicionar eventos personalizados ao seu barramento de eventos.

  • Eventos

    Uma série de eventos que serão adicionados ao barramento de eventos. Essa matriz deve ter uma alocação de 1 a 10 itens.

    O objeto Event é um objeto JSON válido que tem os seguintes campos:

    • "source": uma string que define a origem do evento.

    • "detail": um objeto JSON pode ser usado para anexar informações sobre o evento. Esse campo pode ser um mapa vazio ({ }).

    • "detailType: um código que identifica o tipo de evento.

    • "resources": uma matriz JSON de strings que identifica os recursos envolvidos no evento. Esse campo pode ser uma matriz vazia.

    • "time": o carimbo de data/hora do evento fornecido como string. Deve seguir o formato RFC3339.

Os trechos abaixo são alguns exemplos de objetos Event válidos:

Exemplo 1

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

Exemplo 2

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

Exemplo 3

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