

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# AWS AppSync JavaScript référence de fonction de résolution pour la source de EventBridge données
<a name="resolver-reference-eventbridge-js"></a>

La demande et AWS AppSync la réponse de la fonction de résolution utilisées avec la source de EventBridge données vous permettent d'envoyer des événements personnalisés au EventBridge bus Amazon.

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

Le gestionnaire de demandes vous permet d'envoyer plusieurs événements personnalisés à un bus d' EventBridge événements :

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

La définition de type d'une EventBridge `PutEvents` demande est la suivante :

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

## Réponse
<a name="response-js"></a>

Si l'`PutEvents`opération est réussie, la réponse du formulaire EventBridge est incluse dans le `ctx.result` :

```
export function response(ctx) {
  if(ctx.error)
    util.error(ctx.error.message, ctx.error.type, ctx.result)
  else
    return ctx.result
}
```

Les erreurs qui se produisent lors de l'exécution d'`PutEvents`opérations telles que `InternalExceptions` ou `Timeouts` apparaîtront dans`ctx.error`. Pour obtenir la liste EventBridge des erreurs courantes, consultez la [référence des erreurs EventBridge courantes](https://docs.aws.amazon.com/eventbridge/latest/APIReference/CommonErrors.html).

Ils `result` auront la définition de type suivante :

```
type PutEventsResult = {
  Entries: {
    ErrorCode: string
    ErrorMessage: string
    EventId: string
  }[]
  FailedEntryCount: number
}
```
+ **Entrées**

  L'événement ingéré entraîne à la fois un succès et un échec. Si l'ingestion a réussi, l'entrée `EventID` en contient. Sinon, vous pouvez utiliser le `ErrorCode` et `ErrorMessage` pour identifier le problème lié à l'entrée.

  Pour chaque enregistrement, l'index de l'élément de réponse est le même que celui du tableau de requêtes.
+ **FailedEntryCount**

  Le nombre d'entrées ayant échoué. Cette valeur est représentée par un entier.

Pour plus d'informations sur la réponse de`PutEvents`, voir [PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html#API_PutEvents_ResponseElements).

**Exemple de réponse 1**

L'exemple suivant est une `PutEvents` opération avec deux événements réussis :

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

**Exemple de réponse 2**

L'exemple suivant est une `PutEvents` opération comportant trois événements, deux réussites et un échec :

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

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

`PutEvents`contient les champs du modèle de mappage suivants :
+ **Version**

  Commun à tous les modèles de mappage de demandes, le `version` champ définit la version utilisée par le modèle. Ce champ est obligatoire. La valeur `2018-05-29` est la seule version prise en charge pour les modèles de EventBridge mappage.
+ **Opération**

  La seule opération prise en charge est`PutEvents`. Cette opération vous permet d'ajouter des événements personnalisés à votre bus d'événements.
+ **Événements**

  Un ensemble d'événements qui seront ajoutés au bus d'événements. Ce tableau doit avoir une allocation de 1 à 10 éléments.

  L'objet `Event` comporte les champs suivants :
  + `"source"`: chaîne qui définit la source de l'événement.
  + `"detail"`: objet JSON que vous pouvez utiliser pour joindre des informations sur l'événement. Ce champ peut être une carte vide (`{ }`).
  + `"detailType`: chaîne identifiant le type d'événement.
  + `"resources"`: tableau JSON de chaînes identifiant les ressources impliquées dans l'événement. Ce champ peut être un tableau vide.
  + `"time"`: l'horodatage de l'événement fourni sous forme de chaîne. Cela doit suivre le format d'[RFC3339](https://www.rfc-editor.org/rfc/rfc3339.txt)horodatage.

Les extraits ci-dessous sont des exemples d'objets valides `Event` :

**Exemple 1**

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

**Exemple 2**

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

**Exemple 3**

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