

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 referência do modelo de mapeamento do resolvedor para EventBridge
<a name="resolver-mapping-template-reference-eventbridge"></a>

**nota**  
Agora, oferecemos suporte principalmente ao runtime do APPSYNC\$1JS e sua documentação. Considere usar o runtime do APPSYNC\$1JS e seus guias disponíveis [aqui](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html).

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

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

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](https://docs.aws.amazon.com/eventbridge/latest/APIReference/CommonErrors.html).

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 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` é 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 [RFC3339](https://www.rfc-editor.org/rfc/rfc3339.txt)carimbo 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" : []
}
```