1단계: Lambda 함수 생성 - Amazon Lex V1

Amazon Lex V2를 사용하는 경우 Amazon Lex V2 가이드를 대신 참조하십시오.

 

Amazon Lex V1을 사용하는 경우 봇을 Amazon Lex V2로 업그레이드하는하는 것이 좋습니다. 더 이상 V1에 새로운 기능을 추가하지 않으므로 모든 새 봇에 V2를 사용할 것을 강력히 권장합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

1단계: Lambda 함수 생성

먼저 피자 주문을 이행하는 Lambda 함수를 생성합니다. 다음 섹션에서 생성할 함수를 Amazon Lex 봇에서 지정합니다.

Lambda 함수 생성하려면

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/lambda/에서 AWS Lambda 콘솔을 엽니다.

  2. 함수 생성을 선택합니다.

  3. 함수 생성 페이지에서 처음부터 새로 작성을 선택합니다.

    이 연습에서 제공된 사용자 지정 코드를 사용해 Lambda 함수를 생성할 것이므로 처음부터 함수 작성자를 선택합니다.

    다음 내용을 따르세요.

    1. 이름(PizzaOrderProcessor)을 입력합니다.

    2. 런타임에서 최신 버전의 Node.js를 선택합니다.

    3. 역할의 경우, 템플릿에서 새 역할 생성을 선택합니다.

    4. 새 역할 이름(PizzaOrderProcessorRole)을 입력합니다.

    5. 함수 생성을 선택합니다.

  4. 함수 페이지에서 다음을 수행합니다.

    함수 코드 섹션에서 코드 인라인 편집을 선택한 후 다음의 Node.js 함수 코드를 복사하여 창에 붙여넣습니다.

    'use strict'; // Close dialog with the customer, reporting fulfillmentState of Failed or Fulfilled ("Thanks, your pizza will arrive in 20 minutes") function close(sessionAttributes, fulfillmentState, message) { return { sessionAttributes, dialogAction: { type: 'Close', fulfillmentState, message, }, }; } // --------------- Events ----------------------- function dispatch(intentRequest, callback) { console.log(`request received for userId=${intentRequest.userId}, intentName=${intentRequest.currentIntent.name}`); const sessionAttributes = intentRequest.sessionAttributes; const slots = intentRequest.currentIntent.slots; const crust = slots.crust; const size = slots.size; const pizzaKind = slots.pizzaKind; callback(close(sessionAttributes, 'Fulfilled', {'contentType': 'PlainText', 'content': `Okay, I have ordered your ${size} ${pizzaKind} pizza on ${crust} crust`})); } // --------------- Main handler ----------------------- // Route the incoming request based on intent. // The JSON body of the request is provided in the event slot. export const handler = (event, context, callback) => { try { dispatch(event, (response) => { callback(null, response); }); } catch (err) { callback(err); } };
  5. 저장을 선택합니다.

샘플 이벤트 데이터를 사용하여 Lambda 함수 테스트

콘솔에서 샘플 이벤트 데이터를 사용하여 Lambda 함수를 수동으로 호출해 해당 함수를 테스트합니다.

Lambda 함수를 테스트하려면
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/lambda/에서 AWS Lambda 콘솔을 엽니다.

  2. Lambda 함수 페이지에서 Lambda 함수(PizzaOrderProcessor).)를 선택합니다.

  3. 함수 페이지의 테스트 이벤트 목록에서 테스트 이벤트 구성을 선택합니다.

  4. 테스트 이벤트 구성 페이지에서 다음 작업을 수행하십시오.

    1. 새로운 테스트 이벤트 생성을 선택하세요.

    2. 이벤트 이름 필드에 이벤트 이름(PizzaOrderProcessorTest)을 입력합니다.

    3. 다음 Amazon Lex 이벤트를 창에 복사합니다.

      { "messageVersion": "1.0", "invocationSource": "FulfillmentCodeHook", "userId": "user-1", "sessionAttributes": {}, "bot": { "name": "PizzaOrderingApp", "alias": "$LATEST", "version": "$LATEST" }, "outputDialogMode": "Text", "currentIntent": { "name": "OrderPizza", "slots": { "size": "large", "pizzaKind": "meat", "crust": "thin" }, "confirmationStatus": "None" } }
  5. 생성을 선택합니다.

AWS Lambda는 테스트를 생성하고 함수 페이지로 돌아갑니다. 테스트를 선택하면 Lambda가 Lambda 함수를 실행합니다.

결과 상자에서 세부 정보를 선택합니다. 콘솔이 실행 결과 창에 다음 출력을 표시합니다.

{ "sessionAttributes": {}, "dialogAction": { "type": "Close", "fulfillmentState": "Fulfilled", "message": { "contentType": "PlainText", "content": "Okay, I have ordered your large meat pizza on thin crust." } }

다음 단계

2단계: 봇 생성