

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 name="resolver-reference-eventbridge-js"></a>

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
<a name="request-js"></a>

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
<a name="response-js"></a>

Se a `PutEvents` operação for bem-sucedida, a resposta de EventBridge será incluída em`ctx.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](https://docs.aws.amazon.com/eventbridge/latest/APIReference/CommonErrors.html).

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 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 do`PutEvents`, consulte [PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html#API_PutEvents_ResponseElements).

**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`
<a name="putevents-field"></a>

`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 valor `2018-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 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 [RFC3339](https://www.rfc-editor.org/rfc/rfc3339.txt)timestamp.

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