기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
첨부: AWS Lambda API오퍼레이션을 사용하여 봇에 함수
Lambda 함수를 호출하려면 먼저 Lambda 함수를 봇 별칭에 연결해야 합니다. 하나의 Lambda 함수만 각 봇 별칭과 연결할 수 있습니다. 작업을 사용하여 Lambda 함수를 연결하려면 다음 단계를 수행하십시오. API
새 봇 별칭을 생성하는 경우 CreateBotAlias작업을 사용하여 Lambda 함수를 연결하십시오. Lambda 함수를 기존 봇 별칭에 연결하려면 작업을 사용하십시오. UpdateBotAlias 올바른 설정을 포함하도록 botAliasLocaleSettings
필드를 수정하세요.
{ "botAliasLocaleSettings" : {
locale
: { "codeHookSpecification": { "lambdaCodeHook": { "codeHookInterfaceVersion": "1.0", "lambdaARN": "arn:aws:lambda:region
:account-id
:function:function-name
" } }, "enabled": true }, ... } }
-
botAliasLocaleSettings
필드는 Lambda 함수를 연결하려는 로캘이 키인 객체에 매핑됩니다. 지원되는 로캘 및 유효한 키인 코드 목록은 지원되는 언어 및 로캘 섹션을 참조하세요. -
Lambda 함수의 를
lambdaARN
찾으려면 다음을 여십시오. AWS Lambda https://console.aws.amazon.com/lambda/홈콘솔에서 왼쪽 사이드바에서 함수를 선택하고 봇 별칭과 연결할 함수를 선택합니다. 함수 개요의 오른쪽에서 함수 lambdaARN
아래를 찾을 수 있습니다. ARN 여기에는 리전, 계정 ID, 함수 이름이 포함되어야 합니다. -
Amazon Lex V2에서 별칭에 대한 람다 함수를 호출할 수 있도록 하려면
enabled
필드를true
로 설정합니다.
작업을 사용하여 Lambda 함수를 호출하도록 인텐트 설정 API
인텐트 중에 Lambda 함수 호출을 설정하려면 새 인텐트를 생성하는 경우 작업을 사용하고, 기존 인텐트에서 함수를 호출하는 경우에는 작업을 사용하십시오 CreateIntent. UpdateIntent 의도 작업에서 Lambda 함수 호출을 제어하는 필드는 dialogCodeHook
, initialResponseSetting
, intentConfirmationSetting
및 fulfillmentCodeHook
입니다.
슬롯을 추출하는 동안 함수를 호출하는 경우 새 슬롯을 생성하는 경우 CreateSlot작업을 사용하고 기존 슬롯에서 함수를 호출하는 UpdateSlot작업을 사용하십시오. 슬롯 작업에서 Lambda 함수 간접 호출을 제어하는 필드는 valueElicitationSetting
객체의 slotCaptureSetting
입니다.
-
대화가 끝날 때마다 Lambda 대화 코드 후크가 실행되도록 설정하려면 필드에
dialogCodeHook
있는 DialogCodeHookSettings다음 객체의 필드를 다음과 같이 설정하십시오enabled
.true
"dialogCodeHook": { "enabled":
boolean
} -
또는 함수를 호출하려는 대화 단계에 해당하는 구조 내에서
codeHook
및/또는elicitationCodeHook
필드를 수정하여 대화의 특정 지점에서만 실행되도록 Lambda 대화 코드 후크를 설정할 수도 있습니다. Lambda 다이얼로그 코드 후크를 인텐트 이행에 사용하려면 orfulfillmentCodeHook
작업에서 필드를 사용하십시오. CreateIntentUpdateIntent 이러한 세 가지 유형의 코드 후크의 구조와 용도는 다음과 같습니다.
이 codeHook
필드는 대화의 지정된 단계에서 실행할 코드 후크의 설정을 정의합니다. 이 객체는 다음과 같은 구조를 가진 DialogCodeHookInvocationSetting객체입니다.
"codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
-
Amazon Lex V2가 대화의 해당 지점에서 코드 후크를 호출하도록
active
필드를true
로 변경합니다. -
코드 후크가 정상적으로 실행되도록 Amazon Lex V2에 대해
enableCodeHookInvocation
필드를true
로 변경합니다.false
로 표시하면 Amazon Lex V2는 코드 후크가 성공적으로 반환된 것처럼 작동합니다. -
invocationLabel
은 코드 후크가 호출되는 대화 단계를 나타냅니다. -
postCodeHookSpecification
필드를 사용하여 코드 후크가 성공하거나 실패하거나 제한 시간이 초과된 후에 발생하는 동작과 메시지를 지정합니다.
이 elicitationCodeHook
필드는 슬롯을 다시 불러와야 하는 경우 실행할 코드 후크의 설정을 정의합니다. 이 시나리오는 슬롯 추출이 실패하거나 의도 확인이 거부된 경우 발생할 수 있습니다. elicitationCodeHook
필드는 다음과 같은 구조를 가진 ElicitationCodeHookInvocationSetting객체입니다.
"elicitationCodeHook": { "enableCodeHookInvocation":
boolean
, "invocationLabel":string
}
-
코드 후크가 정상적으로 실행되도록 Amazon Lex V2에 대해
enableCodeHookInvocation
필드를true
로 변경합니다.false
로 표시하면 Amazon Lex V2는 코드 후크가 성공적으로 반환된 것처럼 작동합니다. -
invocationLabel
은 코드 후크가 호출되는 대화 단계를 나타냅니다.
fulfillmentCodeHook
필드는 의도를 이행하기 위해 실행할 코드 후크의 설정을 정의합니다. 다음 FulfillmentCodeHookSettings객체에 매핑됩니다.
"fulfillmentCodeHook": { "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
-
Amazon Lex V2가 대화의 해당 지점에서 코드 후크를 호출하도록
active
필드를true
로 변경합니다. -
코드 후크가 정상적으로 실행되도록 Amazon Lex V2에 대해
enabled
필드를true
로 변경합니다.false
로 표시하면 Amazon Lex V2는 코드 후크가 성공적으로 반환된 것처럼 작동합니다. -
fulfillmentUpdatesSpecification
필드를 사용하여 의도를 이행하는 동안 사용자에게 업데이트하도록 표시되는 메시지와 이와 관련된 타이밍을 지정합니다. -
postFulfillmentStatusSpecification
필드를 사용하여 코드 후크가 성공, 실패 또는 시간 초과된 후에 발생하는 메시지 및 작업을 지정합니다.
대화의 다음 지점에서 active
및 enableCodeHookInvocation
/enabled
필드를 true
로 설정하여 Lambda 코드 후크를 호출할 수 있습니다
인텐트가 인식된 후 초기 응답에서 Lambda 함수를 호출하려면 or 작업 codeHook
initialResponse
필드의 구조체를 사용하십시오. CreateIntentUpdateIntent initialResponse
필드는 다음 객체에 매핑됩니다. InitialResponseSetting
"initialResponse": { "codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }
슬롯 값을 추출한 후 Lambda 함수를 호출하려면 또는 작업의 필드 내에 valueElicitation
있는 필드를 사용하십시오slotCaptureSetting
. CreateSlotUpdateSlot slotCaptureSetting
필드는 다음 객체에 매핑됩니다. 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 }
-
슬롯 추출이 성공한 후 Lambda 함수를 호출하려면
codeHook
필드를 사용하세요. -
슬롯 추출이 실패하고 Amazon Lex V2가 슬롯 제거를 재시도한 후 Lambda 함수를 호출하려면
elicitationCodeHook
필드를 사용하세요.
인텐트를 확인할 때 Lambda 함수를 호출하려면 or intentConfirmationSetting
작업의 필드를 사용하십시오. CreateIntentUpdateIntent intentConfirmation
필드는 다음 객체에 매핑됩니다. 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 }
-
사용자가 의도와 해당 슬롯을 확인한 후 Lambda 함수를 호출하려면
codeHook
필드를 사용하세요. -
사용자가 의도 확인을 거부하고 Amazon Lex V2가 슬롯 추출을 재시도한 후 Lambda 함수를 호출하려면
elicitationCodeHook
필드를 사용하세요.
Lambda 함수를 호출하여 인텐트를 수행하려면 or fulfillmentCodeHook
작업에서 필드를 사용하십시오. CreateIntentUpdateIntent fulfillmentCodeHook
필드는 다음 객체에 매핑됩니다. FulfillmentCodeHookSettings
{ "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
3. Lambda 함수를 호출할 대화 단계를 설정한 후에는 BuildBotLocale
작업을 사용하여 봇을 다시 빌드하고 함수를 테스트합니다.