Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Usar operaciones de API
Adjuntar una función de Lambda a un alias de bot
Si va a crear un nuevo alias de bot, utilice la operación CreateBotAlias para adjuntar una función de Lambda. Para adjuntar una función de Lambda a un alias de bot existente, utilice la operación updateBotAlias. Modifique el campo botAliasLocaleSettings
para que contenga la configuración correcta:
{ "botAliasLocaleSettings" : {
locale
: { "codeHookSpecification": { "lambdaCodeHook": { "codeHookInterfaceVersion": "1.0", "lambdaARN": "arn:aws:lambda:region
:account-id
:function:function-name
" } }, "enabled": true }, ... } }
-
El campo
botAliasLocaleSettings
se asigna a un objeto cuyas claves son las configuraciones regionales en las que desea adjuntar la función de Lambda. Consulte Idiomas y configuraciones regionales compatibles para obtener una lista de las configuraciones regionales compatibles y los códigos que son claves válidas. -
Para buscar el
lambdaARN
de una función de Lambda, abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/home, seleccione Funciones en la barra lateral izquierda y seleccione la función que desee asociar al alias del bot. En el lado derecho de la Descripción de la función, busque el lambdaARN
de la Función de ARN. Debe contener una región, un ID de cuenta y el nombre de la función. -
Para permitir que Amazon Lex V2 invoque la función de Lambda para el alias, defina el campo
enabled
entrue
.
Establecer una intención para invocar la función de Lambda
Para configurar la invocación de la función de Lambda durante una intención, utilice la operación CreateIntent si va a crear una intención nueva o la operación UpdateIntent si invoca la función en una intención existente. Los campos que controlan la invocación de la función de Lambda en las operaciones de intención son dialogCodeHook
, initialResponseSetting
, intentConfirmationSetting
y fulfillmentCodeHook
.
Si invoca la función durante la generación de un slot, utilice la operación CreateSlot si va a crear un nuevo slot, o la operación UpdateSlot para invocar la función en un slot existente. El campo que controla la invocación de la función de Lambda en las operaciones de slot es la slotCaptureSetting
del objeto valueElicitationSetting
.
-
Para configurar el enlace de código del cuadro de diálogo de Lambda para que se ejecute después de cada turno de la conversación, defina el campo
enabled
del siguiente objeto DialogCodeHookSettings en el campodialogCodeHook
entrue
:"dialogCodeHook": { "enabled":
boolean
} -
Como alternativa, puede configurar el enlace de código de diálogo Lambda para que se ejecute solo en puntos específicos de las conversaciones modificando el campo
codeHook
y/oelicitationCodeHook
dentro de las estructuras que corresponden a las etapas de la conversación en las que desea invocar la función. Para utilizar el enlace de código de diálogo Lambda para cumplir la intención, utilice el campofulfillmentCodeHook
de la operación CreateIntent o UpdateInten. Las estructuras y los usos de estos tres tipos de enlaces de código son los siguientes:
El campo codeHook
define los ajustes para que el enlace de código se ejecute en una etapa determinada de la conversación. Se trata de un objeto DialogCodeHookInvocationSetting con la siguiente estructura:
"codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
-
Cambie el campo
active
atrue
para que Amazon Lex V2 llame al enlace de código en ese momento de la conversación. -
Cambie el campo
enableCodeHookInvocation
atrue
para que Amazon Lex V2 permita que el enlace de código se ejecute con normalidad. Si lo marca comofalse
, Amazon Lex V2 actúa como si el enlace de código se hubiera devuelto correctamente. -
La
invocationLabel
indica el paso de diálogo desde el que se invoca el enlace de código. -
Utilice el campo
postCodeHookSpecification
para especificar las acciones y los mensajes que se producen después de que el enlace de código se ejecute correctamente, falle o se agote el tiempo de espera.
El campo elicitationCodeHook
define la configuración del enlace de código que se ejecutará en caso de que sea necesario volver a activar una o varios slots. Este escenario puede ocurrir si la no se logra la obtención de slots o si se deniega la confirmación de intención. El campo elicitationCodeHook
es un objeto ElicitationCodeHookInvocationSetting con la siguiente estructura:
"elicitationCodeHook": { "enableCodeHookInvocation":
boolean
, "invocationLabel":string
}
-
Cambie el campo
enableCodeHookInvocation
atrue
para que Amazon Lex V2 permita que el enlace de código se ejecute con normalidad. Si lo marca comofalse
, Amazon Lex V2 actúa como si el enlace de código se hubiera devuelto correctamente. -
La
invocationLabel
indica el paso de diálogo desde el que se invoca el enlace de código.
El campo fulfillmentCodeHook
define la configuración para que el enlace de código se ejecute para cumplir la intención. Se asigna al siguiente objeto FulfillmentCodeHookSettings:
"fulfillmentCodeHook": { "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
-
Cambie el campo
active
atrue
para que Amazon Lex V2 llame al enlace de código en ese momento de la conversación. -
Cambie el campo
enabled
atrue
para que Amazon Lex V2 permita que el enlace de código se ejecute con normalidad. Si lo marca comofalse
, Amazon Lex V2 actúa como si el enlace de código se hubiera devuelto correctamente. -
Utilice el campo
fulfillmentUpdatesSpecification
para especificar los mensajes que parecen para actualizar al usuario durante el cumplimiento de la intención y tiempo asociado a ellos. -
Utilice el campo
postFulfillmentStatusSpecification
para especificar los mensajes y las acciones que se producen después de que el enlace de código se ejecute correctamente, falle o se agote el tiempo de espera.
Puede invocar el enlace de código Lambda en los siguientes puntos de una conversación configurando los campos active
y enableCodeHookInvocation
/enabled
en true
:
Para invocar la función de Lambda en la respuesta inicial después de reconocer la intención, utilice la estructura codeHook
del campo initialResponse
de la operación CreateIntent o UpdateIntent. El campo initialResponse
se asigna al siguiente objeto InitialResponseSetting:
"initialResponse": { "codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }
Para invocar la función de Lambda después de obtener un valor de slot, utilice el campo slotCaptureSetting
dentro del campo valueElicitation
de la operación CreateSlot o UpdateSlot. El campo slotCaptureSetting
se asigna al siguiente objeto 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 }
-
Para invocar la función de Lambda después de que la obtención de slots se haya realizado correctamente, utilice el campo
codeHook
. -
Para invocar la función de Lambda después de que se produzca un error en la obtención de slots y Amazon Lex V2 intente volver a intentar la obtención de slots, utilice el campo
elicitationCodeHook
.
Para invocar la función de Lambda al confirmar una intención, utilice el campo intentConfirmationSetting
de la operación CreateIntent o UpdateIntent. El campo intentConfirmation
se asigna al siguiente objeto 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 }
-
Para invocar la función de Lambda después de que el usuario confirme la intención y sus slots, utilice el campo
codeHook
. -
Para invocar la función de Lambda después de que el usuario rechace la confirmación de la intención y Amazon Lex V2 intente volver a intentar la obtención de slots, utilice el campo
elicitationCodeHook
.
Para invocar la función de Lambda para cumplir una intención, utilice el campo fulfillmentCodeHook
de la operación CreateIntent o UpdateIntent. El campo fulfillmentCodeHook
se asigna al siguiente objeto FulfillmentCodeHookSettings:
{ "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
3. Una vez que haya establecido las etapas de conversación en las que se invocará la función de Lambda, utilice la operación BuildBotLocale
para volver a compilar el bot para probar la función.