

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à.

# Creazione di una AWS Lambda funzione per il tuo bot Amazon Lex V2
<a name="lambda-attach"></a>

Per creare una funzione Lambda per il tuo bot Amazon Lex V2, accedi AWS Lambda dalla console di gestione AWS e crea una nuova funzione. Puoi fare riferimento alla [guida per AWS Lambda sviluppatori](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) per maggiori dettagli in merito. AWS Lambda

1. Accedi alla Console di gestione AWS e apri la AWS Lambda console all'indirizzo [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Scegli **Funzioni** nella barra laterale sinistra.

1. Seleziona **Crea funzione**.

1. Puoi selezionare **Author partendo da zero** per iniziare con un codice minimo, **Usa un blueprint** per selezionare da un elenco il codice di esempio per i casi d'uso più comuni o **Container image** per selezionare un'immagine del contenitore da distribuire per la tua funzione. Se selezioni **Autore da zero**, continua con i seguenti passaggi:

   1. Assegna alla funzione un **nome di funzione** significativo per descrivere cosa fa.

   1. Scegli una lingua dal menu a discesa sotto **Runtime** in cui scrivere la tua funzione.

   1. Seleziona un set di istruzioni **Architecture** per la tua funzione.

   1. Per impostazione predefinita, Lambda crea un ruolo con autorizzazioni di base. Per utilizzare un ruolo esistente o creare un ruolo utilizzando i modelli di policy AWS, espandi il menu **Change default execution role** e seleziona un'opzione.

   1. Espandi il menu **delle impostazioni avanzate** per configurare altre opzioni.

1. Seleziona **Crea funzione**.

L'immagine seguente mostra ciò che vedi quando crei una nuova funzione da zero:

![\[Una nuova funzione Lambda.\]](http://docs.aws.amazon.com/it_it/lexv2/latest/dg/images/lambda/lambda-new-function.png)


La funzione di gestione Lambda varia a seconda della lingua utilizzata. Accetta almeno un oggetto `event` JSON come argomento. Puoi visualizzare i campi forniti da Amazon Lex V2 all'indirizzo[AWS Lambdaformato degli eventi di input per Lex V2](lambda-input-format.md). `event` Modifica la funzione di gestione per restituire infine un oggetto `response` JSON che corrisponda al formato descritto in. [AWS Lambdaformato di risposta per Lex V2](lambda-response-format.md)
+ Una volta terminata la scrittura della funzione, selezionate **Deploy** per consentire l'utilizzo della funzione.

Ricorda che puoi associare ogni alias del bot al massimo a una funzione Lambda. Tuttavia, puoi definire tutte le funzioni necessarie per il tuo bot all'interno del codice Lambda e richiamare queste funzioni nella funzione di gestione Lambda. Ad esempio, mentre tutti gli intenti nello stesso alias bot devono chiamare la stessa funzione Lambda, puoi creare una funzione router che attivi una funzione separata per ogni intento. Di seguito è riportato un esempio di funzione router che potete utilizzare o modificare per la vostra applicazione:

```
import os
import json
import boto3

# reuse client connection as global
client = boto3.client('lambda')

def router(event):
    intent_name = event['sessionState']['intent']['name']
    fn_name = os.environ.get(intent_name)
    print(f"Intent: {intent_name} -> Lambda: {fn_name}")
    if (fn_name):
        # invoke lambda and return result
        invoke_response = client.invoke(FunctionName=fn_name, Payload = json.dumps(event))
        print(invoke_response)
        payload = json.load(invoke_response['Payload'])
        return payload
    raise Exception('No environment variable for intent: ' + intent_name)

def lambda_handler(event, context):
    print(event)
    response = router(event)
    return response
```

**Quando usare AWS Lambda le funzioni nelle conversazioni con i bot di Amazon Lex V2**

È possibile utilizzare le funzioni Lambda nei seguenti punti di una conversazione con un utente:
+ Nella risposta iniziale dopo il riconoscimento dell'intento. Ad esempio, dopo che l'utente ha dichiarato di voler ordinare una pizza.
+ Dopo aver ottenuto il valore di uno slot dall'utente. Ad esempio, dopo che l'utente ha detto al bot la dimensione della pizza che desidera ordinare.
+ Tra un tentativo e l'altro per ottenere uno slot. Ad esempio, se il cliente non utilizza una dimensione di pizza riconosciuta.
+ Quando si conferma un intento. Ad esempio, quando si conferma un ordine di pizza.
+ Per soddisfare un intento. Ad esempio, per ordinare una pizza.
+ Dopo il raggiungimento dell'intento e prima che il bot chiuda la conversazione. Ad esempio, per passare all'intenzione di ordinare un drink.

**Topics**
+ [Collega una AWS Lambda funzione a un bot Amazon Lex V2 utilizzando la console](lambda-attach-console.md)
+ [Collega una AWS Lambda funzione a un bot Amazon Lex V2 utilizzando le operazioni API](lambda-attach-api.md)

# Collega una AWS Lambda funzione a un bot Amazon Lex V2 utilizzando la console
<a name="lambda-attach-console"></a>

Devi prima collegare una funzione Lambda al tuo alias bot di Amazon Lex V2 prima di poterla richiamare. È possibile allegare una sola funzione Lambda a ciascun alias bot. Esegui questi passaggi per collegare la funzione Lambda utilizzando la console AWS. 

1. Accedi alla Console di gestione AWS e apri la console Amazon Lex all'indirizzo [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Scegli **Bot** dal pannello laterale sinistro e dall'elenco dei bot, scegli il nome del bot a cui vuoi collegare una funzione Lambda.

1. **Dal pannello laterale sinistro, seleziona **Alias** nel menu Deployment.**

1. Dall'elenco degli alias, scegli il nome dell'alias a cui desideri associare una funzione Lambda.

1. Nel pannello **Lingue**, seleziona la lingua in cui desideri utilizzare una funzione Lambda. Seleziona **Gestisci le lingue nell'alias** per aggiungere una lingua se non è presente nel pannello.

1. Nel menu a discesa **Source**, scegli il nome della funzione Lambda che desideri allegare.

1. Nel menu a discesa **versione o alias della funzione Lambda**, scegli la versione o l'alias della funzione Lambda che desideri utilizzare. Quindi, seleziona **Salva**. La stessa funzione Lambda viene utilizzata a tutti gli effetti in un linguaggio supportato dal bot.

**Impostazione dell'intento di Amazon Lex V2 per richiamare una funzione Lambda utilizzando la console**

1. Dopo aver selezionato un bot, seleziona **Intents** nel menu a sinistra sotto la lingua del bot per cui desideri richiamare la funzione Lambda.

1. Scegliete l'intento in cui desiderate richiamare la funzione Lambda per aprire l'editor degli intenti.

1. Esistono due opzioni per impostare il code hook Lambda:

   1. Per richiamare la funzione Lambda dopo ogni fase della conversazione, scorri fino alla sezione **Code** hook nella parte inferiore dell'editor degli intenti e seleziona la casella di controllo **Usa una funzione Lambda per l'inizializzazione e** la convalida, come nell'immagine seguente:  
![\[La sezione code hook dell'editor di intenti di Amazon Lex V2.\]](http://docs.aws.amazon.com/it_it/lexv2/latest/dg/images/lambda/lambda-code-hooks-all.png)

   1. In alternativa, utilizzate la sezione **Dialog code hook** nelle fasi di conversazione in cui richiamare la funzione Lambda. La sezione **Dialog code hook** viene visualizzata come segue:  
![\[La sezione code hook dell'editor di intenti di Amazon Lex V2.\]](http://docs.aws.amazon.com/it_it/lexv2/latest/dg/images/lambda/lambda-code-hook-step.png)

      Esistono due modi per controllare il modo in cui Amazon Lex V2 chiama il code hook per una risposta:
      + *Attiva il pulsante **Attivo** per contrassegnarlo come *attivo o inattivo*.* Quando un code hook è *attivo*, Amazon Lex V2 lo richiamerà. Quando il code hook è *inattivo*, Amazon Lex V2 non lo esegue.
      + **Espandi la sezione **Lambda dialog code hook** e seleziona la casella di controllo **Invoke Lambda** function per contrassegnarla come abilitata o disabilitata.** Puoi abilitare o disabilitare un code hook solo quando è contrassegnato come attivo. Quando è contrassegnato come *abilitato*, il code hook viene eseguito normalmente. Quando è *disabilitato*, l'hook di codice non viene chiamato e Amazon Lex V2 agisce come se fosse stato restituito correttamente. **Per configurare le risposte dopo l'esito positivo, negativo o il timeout dell'hook di dialogo, seleziona Opzioni avanzate**

      L'hook di codice Lambda può essere richiamato nelle seguenti fasi di conversazione:
      + **Per richiamare la funzione come **risposta iniziale**, scorri fino alla sezione **Risposta iniziale**, espandi la freccia accanto a **Risposta per confermare la richiesta dell'utente** e seleziona Opzioni avanzate.** Trova la sezione **Dialog code hook** nella parte inferiore del menu che si apre.
      + **Per richiamare la funzione dopo l'attivazione **dello slot,** scorri fino alla sezione **Slot**, espandi la freccia accanto al relativo **prompt for slot** e seleziona Opzioni avanzate.** **Trova la sezione **Dialog code hook** nella parte inferiore del menu che appare, appena sopra i valori predefiniti.**

        Puoi anche richiamare la funzione dopo ogni elicitazione. A tale scopo, espandi **Bot elicits information** nella sezione **Slot prompt, seleziona **Altre opzioni di prompt** e seleziona la casella di controllo accanto a Invoke **Lambda** code hook dopo ogni** elicitazione.
      + **Per richiamare la funzione di conferma dell'**intento, scorri fino alla sezione **Conferma****, espandi la freccia accanto a Richieste per confermare l'intento e seleziona **Opzioni avanzate.**** Trova la sezione **Dialog code hook** nella parte inferiore del menu che si apre.
      + **Per richiamare la funzione per l'**adempimento degli intenti, scorri fino alla sezione Adempimento**.** *Attiva il pulsante **Attivo per attivare il code hook**.* **Espandi la freccia accanto a **In caso di evasione avvenuta con successo** e seleziona Opzioni avanzate.** *Seleziona la casella di controllo accanto a **Usa una funzione Lambda per l'adempimento nella sezione Fulfillment** **Lambda code hook per impostare l'hook di codice** su abilitato.*

1. Dopo aver impostato le fasi della conversazione in cui richiamare la funzione Lambda**,** crea nuovamente il bot per testare la funzione.

# Collega una AWS Lambda funzione a un bot Amazon Lex V2 utilizzando le operazioni API
<a name="lambda-attach-api"></a>

Devi prima collegare una funzione Lambda al tuo alias bot di Amazon Lex V2 prima di poterla richiamare. È possibile associare solo una funzione Lambda a ciascun alias bot. Esegui questi passaggi per collegare la funzione Lambda utilizzando le operazioni API. 

Se stai creando un nuovo alias bot, usa l'[CreateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBotAlias.html)operazione per allegare una funzione Lambda. Per collegare una funzione Lambda a un alias bot esistente, usa l'operazione. [UpdateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateBotAlias.html) Modifica il `botAliasLocaleSettings` campo in modo che contenga le impostazioni corrette:

```
{
    "botAliasLocaleSettings" : {
        locale: {
            "codeHookSpecification": {
                "lambdaCodeHook": {
                    "codeHookInterfaceVersion": "1.0",
                    "lambdaARN": "arn:aws:lambda:region:account-id:function:function-name"
                }
            },
            "enabled": true
        },
        ...
    }
}
```

1. Il `botAliasLocaleSettings` campo è mappato su un oggetto le cui chiavi sono le impostazioni locali in cui si desidera collegare la funzione Lambda. Consultate [Lingue e impostazioni locali supportate](how-languages.md#supported-languages) per un elenco delle impostazioni locali supportate e dei codici che costituiscono chiavi valide.

1. Per trovare la funzione `lambdaARN` for a Lambda, apri la AWS Lambda console nella [https://console.aws.amazon.com/lambda/home page](https://console.aws.amazon.com/lambda/home), seleziona **Funzioni** nella barra laterale sinistra e seleziona la funzione da associare all'alias bot. Sul lato destro della **panoramica delle funzioni**, trova la `lambdaARN` sezione **Funzione ARN**. Dovrebbe contenere una regione, un ID account e il nome della funzione.

1. Per consentire ad Amazon Lex V2 di richiamare la funzione Lambda per l'alias, imposta il campo su. `enabled` `true`

**Impostazione di un intento di Amazon Lex V2 per richiamare una funzione Lambda utilizzando operazioni API**

Per impostare la chiamata della funzione Lambda durante un intento, usa l'[CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operazione se stai creando un nuovo intento o l'[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)operazione se stai invocando la funzione in un intento esistente. I campi che controllano l'invocazione della funzione Lambda nelle operazioni intent sono`dialogCodeHook`,, e. `initialResponseSetting` `intentConfirmationSetting` `fulfillmentCodeHook`

Se richiamate la funzione durante l'elicitazione di uno slot, utilizzate l'[CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html)operazione se state creando un nuovo slot o l'[UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)operazione per richiamare la funzione in uno slot esistente. Il campo che controlla l'invocazione della funzione Lambda nelle operazioni dello slot è l'`slotCaptureSetting`oggetto. `valueElicitationSetting`

1. Per impostare l'hook del codice di dialogo Lambda in modo che venga eseguito dopo ogni turno della conversazione, imposta il `enabled` campo del seguente [DialogCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookSettings.html)oggetto nel `dialogCodeHook` campo su: `true`

   ```
   "dialogCodeHook": {
       "enabled": boolean
   }
   ```

1. In alternativa, puoi impostare l'hook di dialogo Lambda in modo che venga eseguito solo in punti specifici delle conversazioni modificando il `codeHook` and/or `elicitationCodeHook` campo all'interno delle strutture che corrispondono alle fasi della conversazione in cui desideri richiamare la funzione. Per utilizzare l'hook di codici di dialogo Lambda per l'adempimento degli intenti, usa il `fulfillmentCodeHook` campo nell'operazione or. [CreateIntent[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) Le strutture e gli usi di questi tre tipi di code hook sono i seguenti:

## CodeHook
<a name="lambda-code-hook"></a>

Il `codeHook` campo definisce le impostazioni per l'esecuzione del code hook in una determinata fase della conversazione. È un [DialogCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookInvocationSetting.html)oggetto con la seguente struttura:

```
"codeHook": {
    "active": boolean,
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string,
    "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
}
```
+ Cambia il `active` campo in modo `true` che Amazon Lex V2 richiami il code hook in quel momento della conversazione.
+ Cambia il `enableCodeHookInvocation` campo in `true` Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegni`false`, Amazon Lex V2 si comporta come se il code hook fosse stato restituito correttamente.
+ `invocationLabel`Indica la fase di dialogo da cui viene richiamato l'hook di codice.
+ Utilizzate il `postCodeHookSpecification` campo per specificare le azioni e i messaggi che si verificano dopo il successo, l'errore o il timeout del code hook.

## elicitationCodeHook
<a name="lambda-elicitation-code-hook"></a>

Il `elicitationCodeHook` campo definisce le impostazioni per l'esecuzione del code hook nel caso in cui sia necessario richiamare nuovamente uno slot o più slot. Questo scenario può verificarsi se l'elicitazione degli slot fallisce o la conferma dell'intento viene negata. Il `elicitationCodeHook` campo è un [ElicitationCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ElicitationCodeHookInvocationSetting.html)oggetto con la seguente struttura:

```
"elicitationCodeHook": {
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string
}
```
+ Cambia il `enableCodeHookInvocation` campo in `true` Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegni`false`, Amazon Lex V2 si comporta come se il code hook fosse stato restituito correttamente.
+ `invocationLabel`Indica la fase di dialogo da cui viene richiamato l'hook di codice.

## fulfillmentCodeHook
<a name="lambda-fulfillment-code-hook"></a>

Il `fulfillmentCodeHook` campo definisce le impostazioni per l'esecuzione del code hook per soddisfare l'intento. È mappato al seguente [FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)oggetto:

```
"fulfillmentCodeHook": {
    "active": boolean,
    "enabled": boolean,
    "fulfillmentUpdatesSpecification": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "postFulfillmentStatusSpecification": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html)
}
```
+ Cambia il `active` campo in modo `true` che Amazon Lex V2 richiami il code hook in quel momento della conversazione.
+ Cambia il `enabled` campo in `true` Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegni`false`, Amazon Lex V2 si comporta come se il code hook fosse stato restituito correttamente.
+ Utilizza il `fulfillmentUpdatesSpecification` campo per specificare i messaggi che appaiono per aggiornare l'utente durante l'adempimento dell'intento e la tempistica ad essi associata.
+ Utilizzate il `postFulfillmentStatusSpecification` campo per specificare i messaggi e le azioni che si verificano dopo il successo, l'errore o il timeout del codehook.

Puoi richiamare il code hook Lambda nei seguenti punti di una conversazione impostando `active` i campi `enableCodeHookInvocation` e`enabled`/su: `true`

## Durante la risposta iniziale
<a name="lambda-hook-initial-response"></a>

Per richiamare la funzione Lambda nella risposta iniziale dopo il riconoscimento dell'intento, utilizzate `codeHook` la struttura nel campo `initialResponse` dell'[CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operazione or. [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html) Il `initialResponse` campo è mappato al seguente oggetto: [InitialResponseSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_InitialResponseSetting.html)

```
"initialResponse": {
    "codeHook": {
        "active": boolean,
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "initialResponse": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "nextStep": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html),
    "conditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html)
}
```

## Dopo l'elicitazione dello slot o durante la rielicitazione dello slot
<a name="lambda-hook-elicit-slot"></a>

Per richiamare la funzione Lambda dopo aver ottenuto un valore di slot, utilizzate `slotCaptureSetting` il campo all'interno del campo `valueElicitation` dell'[CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html)operazione or. [UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html) Il `slotCaptureSetting` campo è mappato al seguente oggetto: [SlotCaptureSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_SlotCaptureSetting.html)

```
"slotCaptureSetting": {
    "captureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "captureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "captureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html),
    "codeHook": {
        "active": true,
        "enableCodeHookInvocation": true,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "elicitationCodeHook": {
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string
    },
    "failureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "failureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "failureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html)
}
```
+ Per richiamare la funzione Lambda dopo che l'elicitazione dello slot ha avuto esito positivo, utilizzate il campo. `codeHook`
+ Per richiamare la funzione Lambda dopo che l'elicitazione dello slot fallisce e Amazon Lex V2 tenta di riprovare l'elicitazione dello slot, usa il campo. `elicitationCodeHook`

## Dopo la conferma o il rifiuto dell'intenzione
<a name="lambda-hook-confirm-intent"></a>

Per richiamare la funzione Lambda quando si conferma un intento, utilizzare `intentConfirmationSetting` il campo dell'operazione or. [CreateIntent[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) Il `intentConfirmation` campo è mappato al seguente oggetto: [IntentConfirmationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_IntentConfirmationSetting.html)

```
"intentConfirmationSetting": {
    "active": boolean,
    "codeHook": {
        "active": boolean,
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "confirmationConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "confirmationNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "confirmationResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialResponseSpecificationogState.html),
    "declinationConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "declinationNextStep": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "declinationResponse": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html),
    "elicitationCodeHook": {
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
    },
    "failureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "failureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "failureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html),
    "promptSpecification": [PromptSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PromptSpecification.html)
}
```
+ Per richiamare la funzione Lambda dopo che l'utente ha confermato l'intento e i relativi slot, usa il campo. `codeHook`
+ Per richiamare la funzione Lambda dopo che l'utente ha negato la conferma dell'intento e Amazon Lex V2 ha tentato di ripetere l'elicitazione dello slot, usa il campo. `elicitationCodeHook`

## Durante l'adempimento dell'intento
<a name="lambda-hook-fulfill-intent"></a>

Per richiamare la funzione Lambda per soddisfare un intento, usa `fulfillmentCodeHook` il campo nell'[CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operazione or. [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html) Il `fulfillmentCodeHook` campo è mappato al seguente oggetto: [FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)

```
{
    "active": boolean,
    "enabled": boolean,
    "fulfillmentUpdatesSpecification": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "postFulfillmentStatusSpecification": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html)
}
```

3. Una volta impostate le fasi della conversazione in cui richiamare la funzione Lambda, utilizzate `BuildBotLocale` l'operazione per ricostruire il bot per testare la funzione.