前編はこちら
まだ前編を読めていない人はこちらからご覧ください!
[https://qiita.com/hagiohagi/items/cef993105f653eab9603](https://qiita.com/hagiohagi/items/cef993105f653eab9603)
後編ではLambdaの設定・Slack Appの設定・Amazon Connectの問い合わせフローの設定をしていきます!
LambdaとSlack Appの設定
・Lambda関数の作成
1. AWSコンソールにログインし、サービスから「Lambda」を選択
2. ポリシーのフィルターの設定で「AWSLambda_FullAccess」を選択
3. 任意の名前と説明を記入
4. 関数の作成は「一から作成」を選択し、任意の名前を記入
5. ランタイムはPython3.8を選択し、ロールは先ほど作成したロールを選択
6. 公開コードを利用するため以下のリンクを開く
https://github.com/hackjapan/amazonconnect_slack
7. 緑の「Code」ボタンをクリックし、Download ZIPをクリック
8. Lambdaの画面に戻り、「アップロード元」をクリックし.zipファイルを選択
9. 先ほどダウンロードしたzipファイルをアップロードする
10. ドラッグ&ドロップで以下のファイルの位置を関数名の直下に移動させる
・certifi
・chardet
・inda
・requests
・urllib3
・lambda_function.py
・Slackに表示される文言を変更する
1. AWSコンソールのLambdaのページで関数を選択し、コードの表示画面を開く
2. Lambda_function.pyを開き、34行目の”通話の着信中”の文面を"営業時間外の時間帯に着信がありました"に変更する
![6758b67720a56d232359b8706b134dc9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/19607a17-e7fc-3e90-072e-26cc168b9d7d.png)
・Slack Appの作成
1. 以下のリンクからSlack apiを開く
https://api.slack.com/?_fsi=yHiAp51t
![10e702b5c08a02b7c6870e8302227799.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/bd16527c-60ca-e751-fffd-0be3e423f8c3.png)
2. 中央の「start building」をクリックし、アプリの名前とWorkspace(slackのチャンネルの場所)を入力しcreate appをクリック
・環境変数の設定
1. Amazon Connectのホーム画面を開き、右上の電話のアイコンをクリック
2. 表示されたウインドウのリンクをコピー
3. AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択
4. キーの名前を「AMAZON_URL」、値にコピーしたリンクの名前を貼り付けて登録
5. Slack apiで「Incoming Webhook」をクリックし 、「Webhook URL」の文字列をコピー
6. (Webhook URLがない場合は「Add New Webhook to Workspace」を押してWorkspaceを登録)
7. AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択
8. キーの名前を「SLACK_WEBHOOK」、値にWebhook URLの文字列を貼り付けて登録
9. Slack(アプリ本体)を開き、botを通知させたいチャンネルを選び、右クリック
10. リンクのコピーを選択して、コピーしたアドレスの後ろ11文字の文字列をコピー
11. AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択
12. キーの名前を「SLACK_CHANNEL」、値にリンク名からコピーした文字列を貼り付けて登録
![307520909a6b83731afb15d8a430c0d6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/47ecb32e-9442-8397-ef7a-7d48280885c8.png)
・Amazon ConnectにLambda関数を登録
1. AWSコンソールでAmazon Connectを開く
2. インスタンスエイリアス名をクリックして、概要の欄から「問い合わせフロー」をクリック
3. AWS Lambdaの項目で作成したLambda関数を選択して「Add Lambda Function」をクリック
![080c89b4eb67e42374adcd852d579f7d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/58657047-b7bf-20f9-541b-355fd9b2e026.png)
問い合わせフローの設定
・問い合わせフローの作成
1. 左側アイコンの3つ矢印から問い合わせフローを選択、「コンタクトフローの作成」をクリック
![6bcd5409f5891a8e8e6fe7648ee9f501.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/ed8bb566-c092-8e44-6742-349c6800a844.png)
2. 「操作」から「プロンプトの再生」をフローにドラッグ&ドロップ
3. 「設定」から「音声の設定」をフローにドラッグ&ドロップし、音声を「mizuki」に設定し、「save」をクリック
4. 「ブランチ」から「オペレーション時間を確認する」をフローにドラッグ&ドロップし、パラメータに先ほど作成したオペレーション時間を設定し、「save」をクリック
5. フロー上の「プロンプトの再生」をクリックテキスト読み上げ機能をチェックし、テキストの入力をチェックの上任意の文言(例:ただいま電話を繋いでおります/ただいまお電話に出ることができません)を設定し、「save」をクリック
6. 「終了・転送」から「電話番号のへの転送」をフローにドラッグ&ドロップし、転送先の電話番号の記入、タイムアウトの秒数の記入、切断後に問い合わせフローを再開の所で「はい」を選択肢、「save」をクリック
7. 「統合」から「AWS Lambda関数を呼び出す」をフローにドラッグ&ドロップし、関数を選択するにチェックを入れ、作成したLambda関数を選択し、「save」をクリック
8. 以下の図の通りになるように矢印を結ぶ
(※プロンプトは営業時間内の場合と営業時間外の場合の2つを用意する)
![7182f9f83631756e236c0fe48409d8e2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/b8f839aa-4d0b-ac12-f87f-8abd6c09917a.png)
9. 「保存」の隣の▼をクリックし「保存して発行」をクリック
・フローと電話番号を結びつける
1. 左の矢印3つのアイコンから電話番号をクリックし、表示された画面から該当の電話番号をクリック
2. 問い合わせフローに先程作成したフローの名前を選択する
完成したので試してみる
設定した営業時間の外のタイミングで、Amazon Connectで登録した電話番号に電話してみる。
設定の通りの音声プロンプトが流れた後、このような通知がSlackのチャンネルに届けば成功です!
![ce1756601f78ac323918fa4dc90c799a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/fb9e1c5e-ed01-26cd-1f71-70008615b8d9.png)
最後に
本当に最後までオープンソースの情報だけでなんとかやりくり抜いた感じなので、
これからLambda関数についてより学習し、もっと柔軟に要件に応えられるようにしていきたいです!