ダイアログコードフックを呼び出す - Amazon Lex

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ダイアログコードフックを呼び出す

Amazon Lex がユーザーにメッセージを送信する会話の各ステップで、会話の次のステップとして Lambda 関数を使用できます。この関数を使用して、会話の現在の状態に基づいてビジネスロジックを実装できます。

実行される Lambda 関数は、使用しているボットエイリアスに関連付けられています。インテント内のすべてのダイアログコードフックで Lambda 関数を呼び出すには、インテントの初期化と検証に [Lambda 関数を使用する] を選択する必要があります。Lambda 関数の選択の詳細については、「の作成 AWS Lambda ボットの 関数」を参照してください。

Lambda 関数を使用するには 2 つのステップがあります。まず、会話のどの時点でもダイアログコードフックを有効にする必要があります。次に、会話の次のステップでダイアログコードフックを使用するように設定する必要があります。

次の図は、ダイアログコードフックがアクティブになっていることを示しています。

条件付き応答コードフックがアクティブであることを示しています。

次に、コードフックを会話ステップの次のアクションとして設定します。そのためには、会話の次のステップを「ダイアログコードフックを呼び出す」に設定してください。以下の画像は、会話のデフォルトパスの次のステップとしてダイアログコードフックを呼び出す条件分岐を示しています。

会話の次のステップとなるコードフックを示す条件分岐です。

コードフックがアクティブになると、ユーザーに返すレスポンスを 3 つ設定できます。

  • 成功 — Lambda 関数が正常に完了したときに送信されます。

  • 失敗 — Lambda 関数の実行で問題が発生した場合、または Lambda 関数が Failedintent.state 値を返した場合に送信されます。

  • タイムアウト — Lambda 関数が設定されたタイムアウト期間内に完了しなかった場合に送信されます。

Lambda 関数の実行後にメッセージに使用できるオプションを示すフローチャート。

[Lambda ダイアログコードフック] を選択し、[詳細オプション] を選択すると、Lambda 関数の呼び出しに対応するレスポンスの 3 つのオプションが表示されます。値を設定し、次のステップを設定し、各レスポンスに対応する条件を適用して会話フローを設計できます。条件がない場合や次のステップが明記されていない場合、Amazon Lex V2 は会話の現在の状態に基づいて次のステップを決定します。

[詳細オプション] ページでは、Lambda 関数の呼び出しを有効または無効にすることもできます。関数が有効になると、Lambda 呼び出しでダイアログコードフックが呼び出され、続いて Lambda 呼び出しの結果に基づいて成功、失敗、またはタイムアウトのメッセージが続きます。この関数を無効にすると、Amazon Lex V2 は Lambda 関数を実行せず、ダイアログコードフックが成功したかのように処理を進めます。

Lambda 関数をこのメッセージで呼び出したときにその関数に渡す呼び出しラベルを設定することもできます。これを使用すると、実行する Lambda 関数のセクションを特定しやすくなります。

注記

2022 年 8 月 17 日、Amazon Lex V2 はユーザーとの会話の管理方法の変更をリリースしました。この変更により、ユーザーが会話の中でたどるパスをより細かく制御できるようになりました。詳細については、「Amazon Lex V2 での会話フローの変更 V2」を参照してください。2022 年 8 月 17 日より前に作成されたボットは、ダイアログコードフックメッセージ、値の設定、次のステップの設定、条件の追加をサポートしていません。