O uso doAWS LambdaCom o Amazon Lex - AWS Lambda

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

O uso doAWS LambdaCom o Amazon Lex

É possível usar o Amazon Lex para integrar um bot de conversação à sua aplicação. O bot do Amazon Lex fornece uma interface de conversação com seus usuários. O Amazon Lex fornece integração pré-criada com o Lambda, que permite usar uma função do Lambda com o bot do Amazon Lex.

Ao configurar um bot do Amazon Lex, é possível especificar uma função do Lambda para executar validação, atendimento ou ambos. Para validação, o Amazon Lex invoca a função do Lambda após cada resposta do usuário. A função do Lambda pode validar a resposta e fornecer feedback corretivo para o usuário, se necessário. Para atendimento, o Amazon Lex invoca a função do Lambda para atender à solicitação do usuário depois que o bot coleta com êxito todas as informações necessárias e recebe a confirmação do usuário.

É possível gerenciar a simultaneidade da função do Lambda para controlar o número máximo de conversas simultâneas do bot atendidas. A API do Amazon Lex retornará um código de status HTTP 429 — Too Many Requests (Excesso de solicitações) se a função estiver na simultaneidade máxima.

A API retornará um código de status HTTP 424 — Dependency Failed Exception (Exceção com falha de dependência) se a função do Lambda lançar uma exceção.

O bot do Amazon Lex invoca a função do Lambda de forma síncrona. O parâmetro de evento contém informações sobre o bot e o valor de cada slot na caixa de diálogo. Para obter as definições dos campos de evento e de resposta, consulte Lambda event and response format (Formato de evento e resposta do Lambda) no Guia do desenvolvedor do Amazon Lex. O invocationSource parâmetro no evento de mensagem do Amazon Lex indica se a função Lambda deve validar as entradas (DialogCodeHook) ou cumprir a intenção (). FulfillmentCodeHook

Para obter um exemplo de tutorial que mostra como usar o Lambda com o Amazon Lex, consulte Exercício 1: criar um bot do Amazon Lex usando um esquema no Guia do desenvolvedor do Amazon Lex.

Funções e permissões

É necessário configurar uma função vinculada ao serviço comoFunção de execução do. O Amazon Lex define a função vinculada ao serviço com permissões predefinidas. Ao criar um bot do Amazon Lex usando o console, a função vinculada ao serviço é criada automaticamente. Para criar um perfil vinculado ao serviço com a AWS CLI, use o comando create-service-linked-role.

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

Esse comando cria a função a seguir.

{ "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 a função do Lambda usar outros serviços da AWS, será necessário adicionar as permissões correspondentes à função vinculada ao serviço.

Você usa uma política de permissões baseada em recursos para permitir que o bot do Amazon Lex invoque a função do Lambda. Se você usar o console do Amazon Lex, a política de permissões será criada automaticamente. Na AWS CLI, use o comando add-permission do Lambda para definir a permissão.

Para o Amazon Lex V2, execute o comando a seguir. No ARN de origem, substitua us-east-1 pela Região da AWS em que seu bot do Amazon Lex está, e use o número e alias do bit da sua própria Conta da AWS.

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"

Você também pode usar o Amazon Lex V1 para invocar uma função do Lambda. Para o Amazon Lex V1, execute o comando a seguir. No ARN de origem, substitua us-east-1 pela Região da AWS em que a intenção do Amazon Lex está e use o número e intenção da sua própria Conta da AWS.

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:*"

Observe que o Amazon Lex V1 não recebe mais manutenção. Recomendamos que você use o Amazon Lex V2.