As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
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 AWS AppSync resolvedor usado com a fonte de EventBridge dados permite que você envie eventos personalizados para o EventBridge barramento da Amazon.
Modelo de mapeamento de solicitações
O modelo de mapeamento de PutEvents
solicitações permite que você envie vários eventos personalizados para um barramento de EventBridge eventos. 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 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 PutEvents
operação for bem-sucedida, a resposta de 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 EventBridge dos erros comuns, consulte a referência de erros EventBridge comuns.
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 usarErrorCode
eErrorMessage
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 doPutEvents
, 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:
-
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 valor2018-05-29
é a única versão compatível com os modelos de EventBridge mapeamento. -
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. Isso deve seguir o formato do RFC3339carimbo de data/hora.
-
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" : []
}