Amazon Lex V2 を使用している場合は、代わりに Amazon Lex V2 ガイドを参照してください。
Amazon Lex V1 を使用している場合は、ボットを Amazon Lex V2 にアップグレードすることをお勧めします。V1 には新機能を追加されませんので、すべての新しいボットには V2 を使用することを強くお勧めします。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 4: Lambda 関数をコードフックとして追加する (コンソール)
このセクションでは、次のように Lambda 関数を使用するように OrderFlowers インテントの設定を更新します。
-
最初に
OrderFlowers
インテントを達成するためのコードフックとして Lambda 関数を使用します。ボットをテストして、Lambda 関数からフルフィルメントメッセージを受信していることを確認します。Amazon Lex は、花の注文に必要なすべてのスロットのデータが提供された後にのみ、Lambda 関数を呼び出します。 -
初期化と検証を行うために同じ Lambda 関数をコードフックとして設定します。Lambda 関数が、(スロットデータが提供されたときに) 検証を行っていることをテストして確認します。
Lambda 関数をコードフックとして追加するには (コンソール)
-
Amazon Lex コンソールで、[OrderFlowers] ボットを選択します。コンソールに [OrderFlowers] インテントが表示されます。インテントのバージョンが
$LATEST
に設定されていることを確認します。変更できるのはこのバージョンだけです。 -
Lambda 関数をフルフィルメントのコードフックとして追加してテストします。
-
エディタで、[AWS Lambda function] (関数) を [Fulfillment] (フルフィルメント) として選択し、前のステップで作成した Lambda 関数を選択します (
OrderFlowersCodeHook
)。[OK] を選択して、Lambda 関数を呼び出すアクセス権限を Amazon Lex に付与します。この Lambda 関数は、インテントを達成するためのコードフックとして設定しています。この関数を Amazon Lex が呼び出すのは、インテントを達成するために必要なすべてのスロットデータをユーザーから取得した後のみです。
-
[Goodbye message] を指定します。
-
[Build] を選択します。
-
前の会話を使用してボットをテストします。
最後の文章である「ありがとうございました。お客様のバラは ...」は、コードフックとして設定した Lambda 関数からのレスポンスです。前のセクションでは、Lambda 関数はありませんでした。ここでは、Lambda 関数を使用して実際に
OrderFlowers
インテントを達成します。 -
-
Lambda 関数を初期化および検証のコードフックとして追加してテストします。
Lambda 関数のサンプルコードを使用して、ユーザー入力の検証とフルフィルメントの両方を行うことができます。Lambda 関数が受け取る入力イベントには、どのコード部分を実行するかをコードで判断するためのフィールド (
invocationSource
) があります。詳細については、「Lambda 関数の入力イベントとレスポンスの形式」を参照してください。-
OrderFlowers
の $LATEST バージョンを選択します。これは更新できる唯一のバージョンです。 -
エディタで、[オプション] の [Initialization and validation] (初期化と検証) を選択します。
-
ここでも、同じ Lambda 関数を選択します。
-
[Build] を選択します。
-
ボットをテストします。
次の画像ように Amazon Lex と対話する準備が整いました。検証部分をテストするには、時間として 6 PM を選択します。Lambda 関数からレスポンス (「当社の営業時間は午前 10 時から午後 5 時までとなっております」) が返され、選択し直すことを求められます。すべての有効なスロットデータを提供すると、Lambda 関数によって注文が確定されます。
-
次のステップ
ステップ 5 (オプション): 情報フローの詳細を確認する (コンソール)