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à.
Collega una AWS Lambda funzione a un bot utilizzando le operazioni API
Devi prima collegare una funzione Lambda al tuo alias bot 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'CreateBotAliasoperazione per allegare una funzione Lambda. Per collegare una funzione Lambda a un alias bot esistente, usa l'operazione. UpdateBotAlias 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 }, ... } }
-
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 per un elenco delle impostazioni locali supportate e dei codici che costituiscono chiavi valide. -
Per trovare la funzione
lambdaARN
for a Lambda, apri la AWS Lambda console nella https://console.aws.amazon.com/lambda/home page, 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. -
Per consentire ad Amazon Lex V2 di richiamare la funzione Lambda per l'alias, imposta il campo su.
enabled
true
Impostazione dell'intento di richiamare una funzione Lambda utilizzando le operazioni API
Per impostare la chiamata della funzione Lambda durante un intento, usa l'CreateIntentoperazione se stai creando un nuovo intento o l'UpdateIntentoperazione se stai invocando la funzione in un intento esistente. I campi che controllano l'invocazione della funzione Lambda nelle operazioni intent sonodialogCodeHook
,, e. initialResponseSetting
intentConfirmationSetting
fulfillmentCodeHook
Se richiamate la funzione durante l'elicitazione di uno slot, utilizzate l'CreateSlotoperazione se state creando un nuovo slot o l'UpdateSlotoperazione 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
-
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 DialogCodeHookSettingsoggetto neldialogCodeHook
campo su:true
"dialogCodeHook": { "enabled":
boolean
} -
In alternativa, puoi impostare l'hook di dialogo Lambda in modo che venga eseguito solo in punti specifici delle conversazioni modificando il
elicitationCodeHook
campocodeHook
e/o 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 ilfulfillmentCodeHook
campo nell'operazione or. CreateIntentUpdateIntent Le strutture e gli usi di questi tre tipi di code hook sono i seguenti:
Il codeHook
campo definisce le impostazioni per l'esecuzione del code hook in una determinata fase della conversazione. È un DialogCodeHookInvocationSettingoggetto con la seguente struttura:
"codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
-
Cambia il
active
campo in modotrue
che Amazon Lex V2 richiami il code hook in quel momento della conversazione. -
Cambia il
enableCodeHookInvocation
campo intrue
Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegnifalse
, 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.
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 ElicitationCodeHookInvocationSettingoggetto con la seguente struttura:
"elicitationCodeHook": { "enableCodeHookInvocation":
boolean
, "invocationLabel":string
}
-
Cambia il
enableCodeHookInvocation
campo intrue
Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegnifalse
, 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.
Il fulfillmentCodeHook
campo definisce le impostazioni per l'esecuzione del code hook per soddisfare l'intento. È mappato al seguente FulfillmentCodeHookSettingsoggetto:
"fulfillmentCodeHook": { "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
-
Cambia il
active
campo in modotrue
che Amazon Lex V2 richiami il code hook in quel momento della conversazione. -
Cambia il
enabled
campo intrue
Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegnifalse
, 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
eenabled
/su: true
Per richiamare la funzione Lambda nella risposta iniziale dopo il riconoscimento dell'intento, utilizzate codeHook
la struttura nel campo initialResponse
dell'CreateIntentoperazione or. UpdateIntent Il initialResponse
campo è mappato al seguente oggetto: InitialResponseSetting
"initialResponse": { "codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }
Per richiamare la funzione Lambda dopo aver ottenuto un valore di slot, utilizzate slotCaptureSetting
il campo all'interno del campo valueElicitation
dell'CreateSlotoperazione or. UpdateSlot Il slotCaptureSetting
campo è mappato al seguente oggetto: SlotCaptureSetting
"slotCaptureSetting": { "captureConditional": ConditionalSpecification object, "captureNextStep": DialogState object, "captureResponse": ResponseSpecification object, "codeHook": { "active":
true
, "enableCodeHookInvocation":true
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "elicitationCodeHook": { "enableCodeHookInvocation":boolean
, "invocationLabel":string
}, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object }
-
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
Per richiamare la funzione Lambda quando si conferma un intento, utilizzare intentConfirmationSetting
il campo dell'operazione or. CreateIntentUpdateIntent Il intentConfirmation
campo è mappato al seguente oggetto: IntentConfirmationSetting
"intentConfirmationSetting": { "active":
boolean
, "codeHook": { "active":boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "confirmationConditional": ConditionalSpecification object, "confirmationNextStep": DialogState object, "confirmationResponse": ResponseSpecification object, "declinationConditional": ConditionalSpecification object, "declinationNextStep": FulfillmentUpdatesSpecification object, "declinationResponse": PostFulfillmentStatusSpecification object, "elicitationCodeHook": { "enableCodeHookInvocation":boolean
, "invocationLabel":string
, }, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object, "promptSpecification": PromptSpecification object }
-
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
Per richiamare la funzione Lambda per soddisfare un intento, usa fulfillmentCodeHook
il campo nell'CreateIntentoperazione or. UpdateIntent Il fulfillmentCodeHook
campo è mappato al seguente oggetto: FulfillmentCodeHookSettings
{ "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
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.