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

Anexe uma AWS Lambda função a um bot usando operações de API

Modo de foco
Anexe uma AWS Lambda função a um bot usando operações de API - Guia do desenvolvedor

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

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

Primeiro, você deve anexar uma função do Lambda ao alias do seu bot para poder invocá-la. Você só pode associar uma função do Lambda a cada alias do bot. Execute estas etapas para anexar a função do Lambda usando operações de API.

Se você estiver criando um novo alias de bot, use a CreateBotAliasoperação para anexar uma função Lambda. Para anexar uma função Lambda a um alias de bot existente, use a operação. UpdateBotAlias Modifique o campo botAliasLocaleSettings para conter as configurações corretas:

{ "botAliasLocaleSettings" : { locale: { "codeHookSpecification": { "lambdaCodeHook": { "codeHookInterfaceVersion": "1.0", "lambdaARN": "arn:aws:lambda:region:account-id:function:function-name" } }, "enabled": true }, ... } }
  1. O campo botAliasLocaleSettings é mapeado para um objeto cujas chaves são as localidades nas quais você deseja anexar a função do Lambda. Consulte Idiomas e locais compatíveis para obter uma lista das localidades com suporte e os códigos que são chaves válidas.

  2. Para encontrar uma função Lambda, abra o AWS Lambda console em https://console.aws.amazon.com/lambda/casa, selecione Funções na barra lateral esquerda e selecione a função a ser associada ao alias do bot. lambdaARN No lado direito da Visão geral da função, encontre o lambdaARN em ARN da função. Ele deve conter uma região, o ID da conta e o nome da função.

  3. Para permitir que o Amazon Lex V2 invoque a função do Lambda para o alias, defina o campo enabled como true.

Como definir uma intenção para invocar uma função do Lambda usando operações de API

Para configurar a invocação da função Lambda durante uma intenção, use a CreateIntentoperação se estiver criando uma nova intenção ou a UpdateIntentoperação se estiver invocando a função em uma intenção existente. Os campos que controlam a invocação da função do Lambda nas operações de intenção são dialogCodeHook, initialResponseSetting, intentConfirmationSetting e fulfillmentCodeHook.

Se você invocar a função durante a elicitação de um slot, use a CreateSlotoperação se estiver criando um novo slot ou a UpdateSlotoperação para invocar a função em um slot existente. O campo que controla a invocação da função do Lambda nas operações do slot é o slotCaptureSetting do objeto valueElicitationSetting.

  1. Para configurar o gancho de código de diálogo do Lambda para ser executado após cada turno da conversa, defina o enabled campo do seguinte DialogCodeHookSettingsobjeto no dialogCodeHook campo como: true

    "dialogCodeHook": { "enabled": boolean }
  2. Como alternativa, você pode definir o hook de código de diálogo do Lambda para ser executado somente em pontos específicos das conversas, modificando o codeHook e/ou o campo elicitationCodeHook nas estruturas que correspondem aos estágios da conversa nos quais você deseja invocar a função. Para usar o gancho de código de diálogo Lambda para cumprimento da intenção, use o fulfillmentCodeHook campo na operação ou. CreateIntentUpdateIntent As estruturas e os usos desses três tipos de hooks de código são os seguintes:

O campo codeHook define as configurações para que o hook de código seja executado em um determinado estágio da conversa. É um DialogCodeHookInvocationSettingobjeto com a seguinte estrutura:

"codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
  • Altere o campo active para true para que o Amazon Lex V2 chame o hook de código nesse ponto da conversa.

  • Altere o campo enableCodeHookInvocation para true para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como false, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.

  • O invocationLabel indica a etapa da caixa de diálogo a partir da qual o hook de código é invocado.

  • Use o campo postCodeHookSpecification para especificar as ações e mensagens que ocorrem após o hook de código ser bem-sucedido, falhar ou atingir o tempo limite.

O campo codeHook define as configurações para que o hook de código seja executado em um determinado estágio da conversa. É um DialogCodeHookInvocationSettingobjeto com a seguinte estrutura:

"codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
  • Altere o campo active para true para que o Amazon Lex V2 chame o hook de código nesse ponto da conversa.

  • Altere o campo enableCodeHookInvocation para true para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como false, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.

  • O invocationLabel indica a etapa da caixa de diálogo a partir da qual o hook de código é invocado.

  • Use o campo postCodeHookSpecification para especificar as ações e mensagens que ocorrem após o hook de código ser bem-sucedido, falhar ou atingir o tempo limite.

O campo elicitationCodeHook define as configurações para que o hook de código seja executado no caso de um slot ou slots precisarem ser reutilizados. Esse cenário pode ocorrer se a elicitação do slot falhar ou a confirmação da intenção for negada. O elicitationCodeHook campo é um ElicitationCodeHookInvocationSettingobjeto com a seguinte estrutura:

"elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }
  • Altere o campo enableCodeHookInvocation para true para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como false, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.

  • O invocationLabel indica a etapa da caixa de diálogo a partir da qual o hook de código é invocado.

O campo elicitationCodeHook define as configurações para que o hook de código seja executado no caso de um slot ou slots precisarem ser reutilizados. Esse cenário pode ocorrer se a elicitação do slot falhar ou a confirmação da intenção for negada. O elicitationCodeHook campo é um ElicitationCodeHookInvocationSettingobjeto com a seguinte estrutura:

"elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }
  • Altere o campo enableCodeHookInvocation para true para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como false, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.

  • O invocationLabel indica a etapa da caixa de diálogo a partir da qual o hook de código é invocado.

O campo fulfillmentCodeHook define as configurações do hook de código a ser executado para cumprir a intenção. Ele mapeia para o seguinte FulfillmentCodeHookSettingsobjeto:

"fulfillmentCodeHook": { "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
  • Altere o campo active para true para que o Amazon Lex V2 chame o hook de código nesse ponto da conversa.

  • Altere o campo enabled para true para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como false, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.

  • Use o campo fulfillmentUpdatesSpecification para especificar as mensagens que aparecem para atualizar o usuário durante o cumprimento da intenção e o tempo associado a elas.

  • Use o campo postFulfillmentStatusSpecification para especificar as mensagens e ações que ocorrem após o hook de código ser bem-sucedido, falhar ou atingir o tempo limite.

O campo fulfillmentCodeHook define as configurações do hook de código a ser executado para cumprir a intenção. Ele mapeia para o seguinte FulfillmentCodeHookSettingsobjeto:

"fulfillmentCodeHook": { "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
  • Altere o campo active para true para que o Amazon Lex V2 chame o hook de código nesse ponto da conversa.

  • Altere o campo enabled para true para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como false, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.

  • Use o campo fulfillmentUpdatesSpecification para especificar as mensagens que aparecem para atualizar o usuário durante o cumprimento da intenção e o tempo associado a elas.

  • Use o campo postFulfillmentStatusSpecification para especificar as mensagens e ações que ocorrem após o hook de código ser bem-sucedido, falhar ou atingir o tempo limite.

Você pode invocar o hook de código do Lambda nos seguintes pontos de uma conversa definindo os campos active e enableCodeHookInvocation/enabled como true:

Para invocar a função Lambda na resposta inicial após o reconhecimento da intenção, use codeHook a estrutura no campo initialResponse da CreateIntentoperação or. UpdateIntent O initialResponse campo mapeia para o seguinte InitialResponseSettingobjeto:

"initialResponse": { "codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }

Para invocar a função Lambda na resposta inicial após o reconhecimento da intenção, use codeHook a estrutura no campo initialResponse da CreateIntentoperação or. UpdateIntent O initialResponse campo mapeia para o seguinte InitialResponseSettingobjeto:

"initialResponse": { "codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }

Para invocar a função Lambda depois de obter um valor de slot, use slotCaptureSetting o campo dentro do campo valueElicitation da operação ou. CreateSlotUpdateSlot O slotCaptureSetting campo mapeia para o seguinte SlotCaptureSettingobjeto:

"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 }
  • Para invocar a função do Lambda depois que a elicitação do slot for bem-sucedida, use o campo codeHook.

  • Para invocar a função do Lambda depois que a elicitação de slots falhar e o Amazon Lex V2 tentar novamente a elicitação de slots, use o campo elicitationCodeHook.

Para invocar a função Lambda depois de obter um valor de slot, use slotCaptureSetting o campo dentro do campo valueElicitation da operação ou. CreateSlotUpdateSlot O slotCaptureSetting campo mapeia para o seguinte SlotCaptureSettingobjeto:

"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 }
  • Para invocar a função do Lambda depois que a elicitação do slot for bem-sucedida, use o campo codeHook.

  • Para invocar a função do Lambda depois que a elicitação de slots falhar e o Amazon Lex V2 tentar novamente a elicitação de slots, use o campo elicitationCodeHook.

Para invocar a função Lambda ao confirmar uma intenção, use intentConfirmationSetting o campo da operação ou. CreateIntentUpdateIntent O intentConfirmation campo mapeia para o seguinte IntentConfirmationSettingobjeto:

"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 }
  • Para invocar a função do Lambda após o usuário confirmar a intenção e seus slots, use o campo codeHook.

  • Para invocar a função do Lambda depois que o usuário negar a confirmação da intenção e o Amazon Lex V2 tentar novamente a elicitação de slots, use o campo elicitationCodeHook.

Para invocar a função Lambda ao confirmar uma intenção, use intentConfirmationSetting o campo da operação ou. CreateIntentUpdateIntent O intentConfirmation campo mapeia para o seguinte IntentConfirmationSettingobjeto:

"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 }
  • Para invocar a função do Lambda após o usuário confirmar a intenção e seus slots, use o campo codeHook.

  • Para invocar a função do Lambda depois que o usuário negar a confirmação da intenção e o Amazon Lex V2 tentar novamente a elicitação de slots, use o campo elicitationCodeHook.

Para invocar a função Lambda para cumprir uma intenção, use fulfillmentCodeHook o campo na CreateIntentoperação ou. UpdateIntent O fulfillmentCodeHook campo mapeia para o seguinte FulfillmentCodeHookSettingsobjeto:

{ "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }

Para invocar a função Lambda para cumprir uma intenção, use fulfillmentCodeHook o campo na CreateIntentoperação ou. UpdateIntent O fulfillmentCodeHook campo mapeia para o seguinte FulfillmentCodeHookSettingsobjeto:

{ "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }

3. Depois de definir os estágios da conversa nos quais invocar a função do Lambda, use a operação BuildBotLocale para reconstruir o bot a fim de testar a função.

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