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á.
AWS AppSync JavaScript referência da função de resolução para fonte EventBridge de dados
A solicitação e a resposta da função AWS AppSync resolvedor usadas com a fonte de EventBridge dados permitem que você envie eventos personalizados para o EventBridge barramento da Amazon.
Solicitação
O manipulador de solicitações permite que você envie vários eventos personalizados para um barramento de EventBridge eventos:
export function request(ctx) { return { "operation" : "PutEvents", "events" : [{}] } }
Uma EventBridge PutEvents
solicitação tem a seguinte definição de tipo:
type PutEventsRequest = { operation: 'PutEvents' events: { source: string detail: { [key: string]: any } detailType: string resources?: string[] time?: string // RFC3339 Timestamp format }[] }
Resposta
Se a PutEvents
operação for bem-sucedida, a resposta de EventBridge será incluída emctx.result
:
export function response(ctx) { if(ctx.error) util.error(ctx.error.message, ctx.error.type, ctx.result) else return 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
terá a seguinte definição de tipo:
type PutEventsResult = { 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:
-
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 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
tem os seguintes campos:-
"source"
: uma string que define a origem do evento. -
"detail"
: um JSON objeto que você pode usar 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 JSON matriz de sequências de caracteres 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 RFC3339timestamp.
-
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" : [] }