Amazon Lex
開発者ガイド

ステップ 4: Lambda 関数をコードフックとして追加する (コンソール)

このセクションでは、次のように Lambda 関数を使用するように OrderFlowers インテントの設定を更新します。

  • 最初に OrderFlowers インテントを達成するためのコードフックとして Lambda 関数を使用します。ボットをテストして Lambda 関数からフルフィルメントメッセージを受信したことを確認します (Lambda 関数を Amazon Lex が呼び出すのは、花の注文に必要なすべてのスロットにデータが提供された後のみです)。

  • 初期化と検証を行うために同じ Lambda 関数をコードフックとして設定します。Lambda 関数が、(スロットデータが提供されたときに) 検証を行っていることをテストして確認します。

Lambda 関数をコードフックとして追加するには (コンソール)

  1. Amazon Lex コンソールで、[OrderFlowers] ボットを選択します。コンソールに [OrderFlowers] インテントが表示されます。インテントのバージョンが $LATEST に設定されていることを確認します。変更できるのはこのバージョンだけです。

  2. Lambda 関数をフルフィルメントのコードフックとして追加してテストします。

    1. エディタで、[AWS Lambda function (関数)] を [Fulfillment] として選択し、前のステップで作成した Lambda 関数を選択します (OrderFlowersCodeHook)。[OK] を選択して、Lambda 関数を呼び出すアクセス権限を Amazon Lex に付与します。

      この Lambda 関数をコードフックとして設定して、インテントを達成します。Amazon Lex は、インテントを達成するために必要なすべてのスロットデータをユーザーから取得した後のみ、この関数を呼び出します。

    2. [Goodbye message] を指定します。

    3. [Build] を選択します。

    4. 前の会話を使用してボットをテストします。

    最後の文章である「ありがとうございました。お客様のバラは ...」は、コードフックとして設定した Lambda 関数からのレスポンスです。前のセクションでは、Lambda 関数はありませんでした。ここでは、Lambda 関数を使用して実際に OrderFlowers インテントを達成します。

  3. Lambda 関数を初期化および検証のコードフックとして追加してテストします。

    Lambda 関数のサンプルコードを使用して、ユーザー入力の検証とフルフィルメントの両方を行うことができます。Lambda 関数が受け取る入力イベントには、どのコード部分を実行するかをコードで判断するためのフィールド (invocationSource) があります。詳細については、「Lambda 関数の入力イベントとレスポンスの形式」を参照してください。

    1. OrderFlowers の $LATEST バージョンを選択します。これは更新できる唯一のバージョンです。

    2. エディタで、[Options] の [Initialization and validation] を選択します。

    3. ここでも、同じ Lambda 関数を選択します。

    4. [Build] を選択します。

    5. ボットをテストします。

      次のように Amazon Lex と対話する準備が整いました。検証部分をテストするには、時間として 6 PM を選択します。Lambda 関数からレスポンス (「当社の営業時間は午前 10 時から午後 5 時までとなっております」) が返され、選択し直すことを求められます。すべての有効なスロットデータを提供すると、Lambda 関数によって注文が確定されます。

      
                                Lambda 関数でのデータの検証方法を示す OrderFlowers ボットとの会話。

次のステップ

ステップ 5 (オプション): 情報フローの詳細を確認する (コンソール)