Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Exercício 3: Adicione uma função do Lambda - Amazon Lex V1

Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.

 

Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.

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

Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.

 

Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.

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

Exercício 3: Adicione uma função do Lambda

Adicione uma função do que valide a entrada do usuário e atenda à intenção do usuário ao bot.

A adição de uma expressão função do Lambda é um processo de cinco etapas.

  1. Use a função AddPermission do função do Lambda para permitir que a intenção OrderFlowers chame a operação Invoke do função do Lambda.

  2. Use a operação GetIntent para obter a intenção do &LEX;.

  3. Atualize a intenção para adicionar a função do Lambda.

  4. Use a operação PutIntent para enviar a intenção atualizada de volta ao Amazon Lex.

  5. Use as operações GetBot e PutBot para recriar qualquer bot que use a intenção.

Para executar os comandos neste exercício, você precisa saber em que região os comandos serão executados. Para obter uma lista de regiões, consulte Cotas de criação de modelos .

Se você adicionar uma função do a uma intenção antes de adicionar a permissão , verá a seguinte mensagem de erro:

            An error occurred (BadRequestException) when calling the 
            PutIntent operation: Lex is unable to access the Lambda 
            function Lambda function ARN in the context of intent 
            intent ARN.  Please check the resource-based policy on 
            the function.
        

A resposta da operação GetIntent contém um campo chamado checksum que identifica uma revisão específica da intenção. Quando usa a operação PutIntent para atualizar uma intenção, você deve fornecer o valor de soma de verificação. Se não fizer isso, você receberá a seguinte mensagem de erro:

            An error occurred (PreconditionFailedException) when calling 
            the PutIntent operation: Intent intent name already exists. 
            If you are trying to update intent name you must specify the 
            checksum.
        

Este exercício usa a função do Lambda do Exercício 1: Criar um bot do Amazon Lex usando um esquema (Console).. Para obter instruções para criar a função do Lambda, consulte Etapa 3: Crie uma função do Lambda (console).

nota

O exemplo da AWS CLI a seguir está formatado para Unix, Linux e macOS. Para Windows, altere "\$LATEST" para $LATEST.

Para adicionar uma função do Lambda a uma intenção
  1. Na AWS CLI, adicione a permissão InvokeFunction para a intenção OrderFlowers:

    aws lambda add-permission \ --region region \ --function-name OrderFlowersCodeHook \ --statement-id LexGettingStarted-OrderFlowersBot \ --action lambda:InvokeFunction \ --principal lex.amazonaws.com \ --source-arn "arn:aws:lex:region:account ID:intent:OrderFlowers:*" --source-account account ID

    O envia a seguinte resposta:

    {
        "Statement": "{\"Sid\":\"LexGettingStarted-OrderFlowersBot\",
          \"Resource\":\"arn:aws:lambda:region:account ID:function:OrderFlowersCodeHook\",
          \"Effect\":\"Allow\",
          \"Principal\":{\"Service\":\"lex.amazonaws.com\"},
          \"Action\":[\"lambda:InvokeFunction\"],
          \"Condition\":{\"StringEquals\":
            {\"AWS:SourceAccount\": \"account ID\"},
            {\"AWS:SourceArn\":
              \"arn:aws:lex:region:account ID:intent:OrderFlowers:*\"}}}"
    }
  2. Obtenha a intenção do Amazon Lex. O Amazon Lex envia a saída para um arquivo chamado OrderFlowers-V3.json.

    aws lex-models get-intent \ --region region \ --name OrderFlowers \ --intent-version "\$LATEST" > OrderFlowers-V3.json
  3. Em um editor de texto, abra o OrderFlowers-V3.json.

    1. Encontre e exclua os campos createdDate, lastUpdatedDatee version.

    2. Atualize o campo fulfillmentActivity:

      "fulfillmentActivity": { "type": "CodeHook", "codeHook": { "uri": "arn:aws:lambda:region:account ID:function:OrderFlowersCodeHook", "messageVersion": "1.0" } }
    3. Salve o arquivo.

  4. Na , envie a intenção atualizada para o :

    aws lex-models put-intent \ --region region \ --name OrderFlowers \ --cli-input-json file://OrderFlowers-V3.json

Agora que você atualizou a intenção, recrie o bot.

Para recriar o bot OrderFlowersBot
  1. Na AWS CLI, obtenha a definição do bot OrderFlowersBot e salve-a em um arquivo:

    aws lex-models get-bot \ --region region \ --name OrderFlowersBot \ --version-or-alias "\$LATEST" > OrderFlowersBot-V3.json
  2. Em um editor de texto, abra OrderFlowersBot-V3.json. Remova os campos createdDate, lastUpdatedDate, status e version.

  3. No editor de texto, adicione a seguinte linha à definição do bot:

    "processBehavior": "BUILD",
  4. Na AWS CLI, crie uma nova revisão do bot:

    aws lex-models put-bot \ --region region \ --name OrderFlowersBot \ --cli-input-json file://OrderFlowersBot-V3.json

    A resposta do servidor é:

    {
        "status": "READY", 
        "intents": [
            {
                "intentVersion": "$LATEST", 
                "intentName": "OrderFlowers"
            }
        ], 
        "name": "OrderFlowersBot", 
        "locale": "en-US", 
        "checksum": "checksum", 
        "abortStatement": {
            "messages": [
                {
                    "content": "Sorry, I'm not able to assist at this time", 
                    "contentType": "PlainText"
                }
            ]
        }, 
        "version": "$LATEST", 
        "lastUpdatedDate": timestamp, 
        "createdDate": timestamp, 
        "clarificationPrompt": {
            "maxAttempts": 2, 
            "messages": [
                {
                    "content": "I didn't understand you, what would you like to do?", 
                    "contentType": "PlainText"
                }
            ]
        }, 
        "voiceId": "Salli", 
        "childDirected": false, 
        "idleSessionTTLInSeconds": 600, 
        "description": "Bot to order flowers on the behalf of a user"
    }
    

Próxima etapa

Exercício 4: Publicar uma versão (AWS CLI)

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.