

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AWS AppSync riferimento al modello di mappatura del resolver per EventBridge
<a name="resolver-mapping-template-reference-eventbridge"></a>

**Nota**  
Ora supportiamo principalmente il runtime APPSYNC\$1JS e la relativa documentazione. [Prendi in considerazione l'utilizzo del runtime APPSYNC\$1JS e delle relative guide qui.](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html)

Il modello di mappatura del AWS AppSync resolver utilizzato con l'origine EventBridge dati consente di inviare eventi personalizzati al bus Amazon. EventBridge 

## Richiedi un modello di mappatura
<a name="request-mapping-template"></a>

Il modello di mappatura delle `PutEvents` richieste consente di inviare più eventi personalizzati a un EventBridge bus di eventi. Il documento di mappatura ha la seguente struttura:

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

Di seguito è riportato un esempio di modello di mappatura delle richieste per: 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"
    }
    
    ]
}
```

## Modello di mappatura delle risposte
<a name="response-mapping-template"></a>

Se l'`PutEvents`operazione ha esito positivo, la risposta di EventBridge è inclusa in: `$ctx.result`

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

Errori che si verificano durante l'esecuzione di `PutEvents` operazioni come `InternalExceptions` o `Timeouts` che verranno visualizzati in`$ctx.error`. Per un elenco degli EventBridge errori più comuni, consulta il [riferimento agli errori EventBridge comuni](https://docs.aws.amazon.com/eventbridge/latest/APIReference/CommonErrors.html).

`result`Sarà nel seguente formato:

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

  I risultati dell'evento ingerito, sia riusciti che infruttuosi. Se l'ingestione è andata a buon fine, la voce contiene il `EventID` In caso contrario, è possibile utilizzare il comando `ErrorCode` and `ErrorMessage` per identificare il problema relativo alla voce.

  Per ogni record, l'indice dell'elemento di risposta è lo stesso dell'indice nell'array di richiesta.
+ **FailedEntryCount**

  Il numero di inserimenti non riusciti. Questo valore è rappresentato come un numero intero.

Per ulteriori informazioni sulla risposta di`PutEvents`, vedere [PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html#API_PutEvents_ResponseElements).

**Esempio di risposta 1**

L'esempio seguente è un'`PutEvents`operazione con due eventi riusciti:

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

**Esempio di risposta di esempio 2**

L'esempio seguente è un'`PutEvents`operazione con tre eventi, due riusciti e uno fallito:

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

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

`PutEvents`contiene i seguenti campi del modello di mappatura:
+ **Versione**

  Comune a tutti i modelli di mappatura delle richieste, il `version` campo definisce la versione utilizzata dal modello. Questo campo è obbligatorio. Il valore `2018-05-29` è l'unica versione supportata per i modelli di EventBridge mappatura.
+ **Operazioni**

  L'unica operazione supportata è`PutEvents`. Questa operazione consente di aggiungere eventi personalizzati al bus degli eventi.
+ **Eventi**

  Una serie di eventi che verranno aggiunti all'event bus. Questo array dovrebbe avere un'allocazione di 1-10 elementi.

  L'`Event`oggetto è un oggetto JSON valido con i seguenti campi:
  + `"source"`: Una stringa che definisce l'origine dell'evento.
  + `"detail"`: un oggetto JSON che è possibile utilizzare per allegare informazioni sull'evento. Questo campo può essere una mappa vuota (`{ }`).
  + `"detailType`: Una stringa che identifica il tipo di evento.
  + `"resources"`: Un array di stringhe JSON che identifica le risorse coinvolte nell'evento. Questo campo può essere una matrice vuota.
  + `"time"`: Il timestamp dell'evento fornito come stringa. Questo dovrebbe seguire il formato del [RFC3339](https://www.rfc-editor.org/rfc/rfc3339.txt)timestamp.

I frammenti seguenti sono alcuni esempi di oggetti validi: `Event`

**Esempio 1**

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

**Esempio 2**

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

**Esempio 3**

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