Uso di AWS Lambda con Amazon Lex - AWS Lambda

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

Uso di AWS Lambda con Amazon Lex

Puoi utilizzare Amazon Lex per integrare un bot conversazionale nell'applicazione. Il bot Amazon Lex fornisce un'interfaccia di conversazione con i tuoi utenti. Amazon Lex fornisce l'integrazione precostruita con Lambda, che consente di utilizzare una funzione Lambda con il bot Amazon Lex.

Quando configuri un bot Amazon Lex, puoi specificare una funzione Lambda per eseguire la convalida, la gestione o entrambi. Per la convalida, Amazon Lex richiama la funzione Lambda dopo ogni risposta da parte dell'utente. La funzione Lambda può convalidare la risposta e fornire un feedback correttivo all'utente, se necessario. Per il soddisfacimento, Amazon Lex richiama la funzione Lambda per soddisfare la richiesta dell'utente dopo che il bot ha raccolto correttamente tutte le informazioni richieste e ha ricevuto la conferma da parte dell'utente.

Puoi gestire la concorrenza della tua funzione Lambda per controllare il numero massimo di bot conversazionali simultanei che servi. L'API Amazon Lex restituisce un codice di stato HTTP 429 (Too Many Requests) se la funzione ha raggiunto il livello di concorrenza massima.

L'API restituisce un codice di stato HTTP 424 (Dependency Failed Exception) se la funzione Lambda genera un'eccezione.

Il bot Amazon Lex invoca la funzione Lambda in modo sincrono. Il parametro evento contiene informazioni sul bot e sul valore di ogni slot nel dialogo. Per le definizioni dei campi evento e risposta, consulta Formato eventi e risposte di Lambda nella Guida per gli sviluppatori di Amazon Lex. Il invocationSource parametro nell'evento del messaggio Amazon Lex indica se la funzione Lambda deve convalidare gli input (DialogCodeHook) o soddisfare l'intento (). FulfillmentCodeHook

Per un'esercitazione di esempio che mostra come utilizzare Lambda con Amazon Lex, consulta Esercizio 1: creazione di un bot Amazon Lex utilizzando un piano nella Guida per gli sviluppatori di Amazon Lex.

Ruoli e autorizzazioni

È necessario configurare un ruolo collegato ai servizi come ruolo di esecuzione della funzione. Amazon Lex definisce il ruolo collegato ai servizi con autorizzazioni predefinite. Quando crei un bot Amazon Lex utilizzando la console, il ruolo collegato al servizio viene creato automaticamente. Per creare un ruolo collegato al servizio con l'interfaccia della riga di comando AWS CLI, utilizza il comando create-service-linked-role.

aws iam create-service-linked-role --aws-service-name lex.amazonaws.com

Questo comando crea il ruolo seguente.

{ "Role": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "lex.amazonaws.com" } } ] }, "RoleName": "AWSServiceRoleForLexBots", "Path": "/aws-service-role/lex.amazonaws.com/", "Arn": "arn:aws:iam::account-id:role/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots" }

Se la funzione Lambda utilizza altri servizi AWS, è necessario aggiungere le autorizzazioni corrispondenti al ruolo collegato al servizio.

Per consentire al bot Amazon Lex di richiamare la funzione Lambda, viene utilizzata una policy di autorizzazione basata sulle risorse. Se utilizzi la console Amazon Lex, la policy di autorizzazione viene creata automaticamente. In AWS CLI, utilizza il comando add-permission Lambda per impostare l'autorizzazione.

Per Amazon Lex V2, emetti il comando seguente. Nell'ARN di origine, sostituisci us-east-1 con la Regione AWS in cui si trova il bot Amazon Lex e usa il tuo numero di Account AWS e alias bot.

aws lambda add-permission \ --function-name LexCodeHook \ --statement-id LexInvoke-MyBot \ --action lambda:InvokeFunction \ --principal lex.amazonaws.com \ --source-arn "arn:aws:lex:us-east-1:123456789012:bot-alias/MYBOT/MYBOTALIAS"

Puoi utilizzare Amazon Lex V1 anche per richiamare una funzione Lambda. Per Amazon Lex V1, emetti il comando seguente. Nell'ARN di origine, sostituisci us-east-1 con la Regione AWS in cui desideri si trovi Amazon Lex e usa il tuo numero di Account AWS e alias bot.

aws lambda add-permission \ --function-name LexCodeHook \ --statement-id LexInvoke-MyIntent \ --action lambda:InvokeFunction \ --principal lex.amazonaws.com \ --source-arn "arn:aws:lex:us-east-1:123456789012 ID:intent:MYINTENT:*"

Tieni presente che Amazon Lex V1 non è più sottoposto a manutenzione. Ti consigliamo di utilizzare Amazon Lex V2.