はじめに
Amazon Connectのフローには、Invoke Lambda Functionブロック
があります。
このブロックからLambdaを呼び出し、そのレスポンスをConnectのフロー内の属性に保存する事で、フロー内でLambdaのレスポンス値を使用することができます。
本記事では、Lambda関数からのレスポンスを Play Promptブロック
に設定してテストチャットからフロー内で表示されるところまで実装していきます。
対象の方
- ConnectのフローからLambdaを呼び出す方法を知りたい方
- Connectのフローから呼び出したLambdaのレスポンスをフロー内で使用したい方
ゴール
Invoke Lambda Functionブロック
で呼び出したLambdaから下記のレスポンスを返します。Connectのフローを使用してテストチャットした際に、おはよう
、こんにちは
、こんばんは
が順番に表示されることを確認します。
{
'test1': 'おはよう',
'test2': 'こんにちは',
'test3': 'こんばんは'
}
作るもの
- Connectのフロー:1つ
- Lambda:1つ
Amazon Connectのインスタンスは作成済みであることを想定しています。
1. Lambda関数の作成
Connectの Invoke Lambda Functionブロック
から呼び出す用の簡単なLambdaを作成します。
3つの値をもつJSON形式のレスポンスをLambdaのレスポンスとして返します。
def lambda_handler(event, context):
return {
'test1': 'おはよう',
'test2': 'こんにちは',
'test3': 'こんばんは'
}
2. Amazon Connectフローの作成
次の図のような簡単なフローを作成します。
正常に進めば 開始①⇒②⇒③・・・⇒⑥⇒切断 のように進んでいきます。
流れとしては、下記のようになる想定です。
①:チャットスタートの文言表示
②:Lambdaをコール
③:おはようの文言表示
④:こんにちはの文言表示
⑤:こんばんはの文言表示
⑥:チャットを終了しますの文言表示
各ブロックの設定値
フローの各ブロックにはそれぞれ下記の値を設定します。
① Play Promptブロック:チャットスタート
② Invoke Lambda functionブロック:sample_connect_lambda
③ Play Promptブロック:$.External.test1
④ Play Promptブロック:$.External.test2
⑤ Play Promptブロック:$.External.test3
⑥ Play Promptブロック:チャットを終了します
2.1 Play Promptブロックの設定
・ 開始時と終了時の文言の
開始時と終了時の文言をそれぞれ① Play Promptブロック
、⑥ Play Promptブロック
にセットします。
・ Lambdaのレスポンスに含まれる文言
Lambdaのレスポンスに含まれる値を Play Promptブロック
にセットします。レスポンス形式として「JSON」を選択します。
1つ目:$.External.test1
2つ目:$.External.test2
3つ目:$.External.test3
$.External.レスポンスキー名
の形式で、Lambdaレスポンスの値にアクセスできます。
$.External.attributeName
次の図は ③ Play Promptブロック
の例になります。④、⑤も同様です。
2.2 Invoke Lambda Functionブロックの設定
下記のように値を設定しておきます。
テストチャットしてみる
ここまでできたらフローを保存、公開しConnectのホーム > チャットをテスト からフローを動かしてみます。
テスト設定 > フローを選択し適用を押下します。
LambdaのレスポンスとしてConnectのフローに返ってくる想定のおはよう
、こんにちは
、こんばんは
の文字が表示されることを確認できました。
参考