

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 JavaScript referencia de la función de resolución para la fuente EventBridge de datos
<a name="resolver-reference-eventbridge-js"></a>

La solicitud y la respuesta de la función de AWS AppSync resolución que se utilizan con la fuente de EventBridge datos te permiten enviar eventos personalizados al EventBridge bus de Amazon.

## Solicitud
<a name="request-js"></a>

El controlador de solicitudes le permite enviar varios eventos personalizados a un bus de EventBridge eventos:

```
export function request(ctx) {
  return {
    "operation" : "PutEvents",
    "events" : [{}]
  }
}
```

Una EventBridge `PutEvents` solicitud tiene la siguiente definición de tipo:

```
type PutEventsRequest = {
  operation: 'PutEvents'
  events: {
    source: string
    detail: { [key: string]: any }
    detailType: string
    resources?: string[]
    time?: string // RFC3339 Timestamp format
  }[]
}
```

## Respuesta
<a name="response-js"></a>

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

```
export function response(ctx) {
  if(ctx.error)
    util.error(ctx.error.message, ctx.error.type, ctx.result)
  else
    return 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á la siguiente definición de tipos:

```
type PutEventsResult = {
  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` 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" : []
}
```