기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Lambda 함수를 호출하려면 먼저 봇 별칭에 연결해야 합니다. 각 봇 별칭에는 Lambda 함수 하나만 연결할 수 있습니다. API 작업을 사용하여 Lambda 함수를 연결하려면 다음 단계를 수행합니다.
새 봇 별칭을 생성하는 경우 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
의를 찾으려면 https://console.aws.amazon.com/lambda/homeAWS Lambda 콘솔을 열고 왼쪽 사이드바에서 함수를 선택한 다음 봇 별칭과 연결할 함수를 선택합니다. 함수 개요의 오른쪽에 있는 함수 ARN에서 lambdaARN
을 찾습니다. 여기에는 리전, 계정 ID, 함수 이름이 포함되어야 합니다. -
Amazon Lex V2에서 별칭에 대한 람다 함수를 호출할 수 있도록 하려면
enabled
필드를true
로 설정합니다.
API 작업을 사용하여 Lambda 함수를 호출하려는 의도 설정
의도 중에 Lambda 함수 호출을 설정하려면 새 의도를 생성하는 경우 CreateIntent 작업을 사용하고, 기존 의도에서 함수를 호출하는 경우에는 UpdateIntent 작업을 사용하세요. 의도 작업에서 Lambda 함수 호출을 제어하는 필드는 dialogCodeHook
, initialResponseSetting
, intentConfirmationSetting
및 fulfillmentCodeHook
입니다.
슬롯을 추출하는 동안 함수를 호출하는 경우 새 슬롯을 생성하는 경우 CreateSlot 작업을 사용하고 기존 슬롯에서 함수를 호출하려면 UpdateSlot 작업을 사용하세요. 슬롯 작업에서 Lambda 함수 간접 호출을 제어하는 필드는 valueElicitationSetting
객체의 slotCaptureSetting
입니다.
-
대화가 끝날 때마다 람다 대화 상자 코드 후크가 실행되도록 설정하려면
dialogCodeHook
필드에 있는 다음 DialogCodeHookSettings 객체의enabled
필드를true
로 설정합니다."dialogCodeHook": { "enabled":
boolean
} -
또는 함수를 호출하려는 대화 단계에 해당하는 구조 내에서
codeHook
및/또는elicitationCodeHook
필드를 수정하여 대화의 특정 지점에서만 실행되도록 Lambda 대화 코드 후크를 설정할 수도 있습니다. 의도 이행을 위해 Lambda 대화 코드 후크를 사용하려면 CreateIntent 또는 UpdateIntent 작업에서fulfillmentCodeHook
필드를 사용합니다. 이러한 세 가지 유형의 코드 후크의 구조와 용도는 다음과 같습니다.
이 codeHook
필드는 대화의 지정된 단계에서 실행할 코드 후크의 설정을 정의합니다. 이 객체는 다음과 같은 구조를 가진 DialogCodeHookInvocationSeting 객체입니다.
"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 함수를 호출하려면 CreateIntent 또는 UpdateIntent 작업의 initialResponse
필드에 codeHook
구조를 사용합니다. initialResponse
필드는 다음 InitialResponseSetting 객체에 매핑됩니다.
"initialResponse": {
"codeHook": {
"active": boolean
,
"enableCodeHookInvocation": boolean
,
"invocationLabel": string
,
"postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object,
},
"initialResponse": FulfillmentUpdatesSpecification object,
"nextStep": PostFulfillmentStatusSpecification object,
"conditional": ConditionalSpecification object
}
슬롯 값을 유도한 후 Lambda 함수를 호출하려면 CreateSlot 또는 UpdateSlot 작업의 valueElicitation
필드 내에 있는 slotCaptureSetting
필드를 사용합니다. 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
필드를 사용하세요.
의도를 확인할 때 람다 함수를 호출하려면 CreateIntent 또는 UpdateIntent 작업의 intentConfirmationSetting
필드를 사용합니다. 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 함수를 호출하려면 CreateIntent 또는 UpdateIntent 작업에서 fulfillmentCodeHook
필드를 사용합니다. fulfillmentCodeHook
필드는 다음 FulfillmentCodeHookSettings 객체에 매핑됩니다.
{
"active": boolean
,
"enabled": boolean
,
"fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object,
"postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object
}
3. Lambda 함수를 호출할 대화 단계를 설정한 후에는 BuildBotLocale
작업을 사용하여 봇을 다시 빌드하고 함수를 테스트합니다.