

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# AWS AppSync referencia de plantilla de mapeo de resolución para EventBridge
<a name="resolver-mapping-template-reference-eventbridge"></a>

**nota**  
Ahora admitimos de forma básica el tiempo de ejecución APPSYNC\$1JS y su documentación. Considere la opción de utilizar el tiempo de ejecución APPSYNC\$1JS y sus guías [aquí](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html).

La AWS AppSync plantilla de mapeo de resolución utilizada con la fuente de EventBridge datos le permite enviar eventos personalizados al EventBridge bus de Amazon.

## Plantilla de mapeo de solicitudes
<a name="request-mapping-template"></a>

La plantilla de mapeo de `PutEvents` solicitudes le permite enviar varios eventos personalizados a un bus de EventBridge eventos. El documento de mapeo tiene la siguiente estructura:

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

El siguiente es un ejemplo de una plantilla de mapeo de solicitudes 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"
    }
    
    ]
}
```

## Plantilla de mapeo de respuestas
<a name="response-mapping-template"></a>

Si la `PutEvents` operación se realiza correctamente, la respuesta de EventBridge se incluye en`$ctx.result`:

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

Los errores que se produzcan al realizar operaciones `PutEvents` como `InternalExceptions` o `Timeouts` aparecerán en `$ctx.error`. Para obtener una lista EventBridge de los errores más comunes, consulta la [referencia de errores EventBridge comunes](https://docs.aws.amazon.com/eventbridge/latest/APIReference/CommonErrors.html).

El `result` tendrá el siguiente formato:

```
{
    "Entries" [
        {
            "ErrorCode" : String,
            "ErrorMessage" : String,
            "EventId" : String
        }
    ],
    "FailedEntryCount" : number
}
```
+ **Entradas**

  Resultados de los eventos ingeridos, tanto correctos como incorrectos. Si la ingesta se realizó correctamente, la entrada contiene el `EventID`. De lo contrario, puede usar `ErrorCode` y `ErrorMessage` para identificar el problema con la entrada.

  Para cada registro, el índice del elemento de respuesta es el mismo que el de la matriz de solicitudes.
+ **FailedEntryCount**

  Número de entradas con error. Este valor se representa como un entero.

Para obtener más información sobre la respuesta de`PutEvents`, consulte [PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html#API_PutEvents_ResponseElements).

**Ejemplo de respuesta de muestra 1**

El siguiente ejemplo es una operación `PutEvents` con dos eventos correctos:

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

**Ejemplo de respuesta de muestra 2**

El siguiente ejemplo es una operación `PutEvents` con tres eventos, dos correctos y uno incorrecto:

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

## Campos `PutEvents`
<a name="putevents-field"></a>

`PutEvents` contiene los siguientes campos de plantillas de mapeo:
+ **Versión**

  El campo `version` es común a todas las plantillas de mapeo de solicitudes y define la versión utilizada por la plantilla. Este campo es obligatorio. El valor `2018-05-29` es la única versión compatible con las plantillas de EventBridge mapeo.
+ **Operación**

  La única operación admitida es `PutEvents`. Esta operación permite añadir eventos personalizados a su bus de eventos.
+ **Events (Eventos)**

  Una matriz de eventos que se añadirán al bus de eventos. Esta matriz debe tener una asignación de entre 1 y 10 elementos.

  El objeto `Event` es un objeto JSON válido que tiene los siguientes campos:
  + `"source"`: cadena que define el origen del evento.
  + `"detail"`: objeto JSON que puede usar para asociar información sobre el evento. Este campo puede ser un mapa vacío ( `{ }` ).
  + `"detailType`: cadena que identifica el tipo de evento
  + `"resources"`: matriz JSON de cadenas que identifica los recursos involucrados en el evento. Este campo puede ser una matriz vacía.
  + `"time"`: marca temporal del evento proporcionada como cadena. Debe seguir el formato de [RFC3339](https://www.rfc-editor.org/rfc/rfc3339.txt)marca de tiempo.

Los siguientes fragmentos de código son algunos ejemplos de objetos `Event` válidos:

**Ejemplo 1**

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

**Ejemplo 2**

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

**Ejemplo 3**

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