ヤマムギ

growing hard days.

*

Amazon Connectの新規作成からプッシュボタン入力と発信元電話番号をLambdaで処理するまで

   


とりあえずやりたいことはタイトルに書いたとおり、「電話をかけて、プッシュボタンに入力した内容と発信元の電話番号をLambdaで処理する」です。

Amazon Connect初体験から、Lambdaでの該当処理完了まで、調べながら1時間でできました。
やったことを書いておきます。

参考情報

先人の皆さま、ありがとうございます!

Amazon Connect インスタンス新規作成

まずはAmazon Connect インスタンスを新規に作成します。

「今すぐはじめる」をクリックしました。

Amazon Connectインスタンスを使用するリージョンを選択します。
東京リージョンを選択しました。

ID管理はAmazon Connectで管理することにしました。
管理画面のURLを決めます。
QuickSightと同じような感じですかね。

管理ユーザーの情報を入力しました。

着信、発信をするかどうかの設定です。
両方ありにしました。

データの保存先バケットと、ログの書き込み先のCloudWatch Logsの設定です。

設定内容が表示されるので確認して、インスタンスの作成をします。

セットアップが始まりました。
わくわくしますね。

作成できました!!

電話番号の取得

作成後、[今すぐ始める]をクリックすると、Amazon Connectの管理画面になりました。
デフォルトは英語ですが、日本語も選択できました。

電話番号の取得をしました。
Direct Dialを選択すると、050から始まる電話番号が選択できました。

Toll Freeを選択すると、0800から始まるフリーダイヤルの電話番号が選択できました。
今回はDirect Dialを選択しました。

お試しでかけてみました。
ちゃんと通話中になりました。

Lambdaの準備

とりあえずLambda関数が実行されたときのeventに、プッシュした数字と発信元の電話番号が渡されているところが見えればいいので、次のようなコードにしました。
処理の結果に基づいて、動的なメッセージを電話に返すこともあると思うので、サンプルとして固定の「ありがとうございます」をリターンしてます。

IAMロールは、AWS管理ポリシーの AWSLambdaBasicExecutionRoleだけが有効なロール(CloudWatchにログを書き込む権限のみ)を使用しました。
Lambdaの設定は以上です。

Amazon Connectマネジメントコンソールでの設定

マネジメントコンソールでAmazon Connectにアクセスすると、作成したインスタンスが表示されています。

アクセスURLをクリックすると、Amazon Connectのダッシュボードの画面でした。
インスタンスエイリアスをクリックすると、インスタンスの設定画面でした。

まずは、インスタンスの設定画面で作成したLambdaを有効にします。

左のナビゲーションペインで[問い合わせフロー]を選択しました。

下にスクロールすると、Lambda関数が選択できたので作成したLambd関数を追加しました。

Amazon Connectダッシュボードで問い合わせフローを作成

アクセスURLをクリックして、Amazon Connectダッシュボードのアクセスします。
ログイン画面になったので、インスタンス作成時に設定した管理ユーザーでログインしました。

[ルーティング]メニューの[問い合わせフロー]を選択して、[問い合わせフローの作成]をクリックして、問い合わせフローを新規に作成しました。

作成したフローはこちらです。

左のペインの[操作]や[設定]にブロックという機能パーツがあります。
今回使ったのは、[操作]と[設定]と[統合]です。

ログ記録動作の設定

インスタンス作成時のデータストレージで設定した、CloudWatch Logsにログを書き込むことを有効化している設定です。

音声の設定

音声を話すPollyの音声IDを指定します。
今回は日本語でMizukiさんを指定しました。

顧客の入力を保存する

プッシュで入力された値を保存します。

テキスト読み上げで入力したテキストは、電話をかけるとMizukiさんが発話してくれます。
桁数を6文字にしました。
(この先やりたいことの仕様で試してます)

AWS Lambda関数を呼び出す

Amazon Connectインスタンスに追加しているLambdaから対象のLambdaを選択しました。
プッシュされた数字(顧客の入力)は、「タイプ: システム」、「属性: 保存済のお客様の入力」でした。
宛先キーは input にしました。

もう一つパラメータを追加して、「タイプ: システム」、「属性: お客様の電話番号」を追加しました。
タイムアウトは最大の8秒にしました。
Lambdaは8秒でレスポンスを返さないといけないのですね。

プロンプトの再生

Lambdaの処理結果を電話でMizukiさんに発声してもらいます。

「タイプ: 外部」「属性: response_message」としています。
response_messageは、Lambdaでリターンしているキーです。

あと、一応エラー用のプロンプトも用意して、最後は切断としました。

最後に右上のメニューから[保存して発行]を実行しました。

電話番号への問い合わせフローの設定

[ルーティング]-[電話番号]を選択しました。

[電話番号の管理]で対象の電話番号をクリックします。

編集画面で作成した問い合わせフローを選択して保存します。

電話をかけてみる

想定どおりに動きました!!!

Lambdaの結果をCloiudWatch Logsで見てみます。

パラメータで設定した内容が、Parametersにあります。
発信元の電話番号はCustomerEndpointにもあるのですね。
ふむ。

これで着信とLambdaの基本動作は確認できたので、業務自動化を進めていきたいと思います!!


最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

 - AWS ,

ad

ad

  関連記事

Backlogの実績工数をAmazon QuickSightでの可視化 – 仕組み編

Backlogの実績工数をAmazon QuickSightで可視化してわかった …

AtomエディタでEC2のファイルを直接編集する

Webページを編集していてEC2のファイルをvimエディタでさわったりしています …

Backlogの実績工数をAmazon QuickSightで可視化してわかったこと

今年に入ってから、Backlogで個人タスクを登録しだして、予定工数、実績工数を …

AWSアカウントルートユーザーのMFAでYubicoセキュリティキーを設定した

先日Yubico セキュリティキーを購入して、USBにささなければならないのがな …

AWS Well-Architected フレームワークによるクラウド ベスト プラクティスのセッションを聞いたので自アカウントの環境を確認してみる

AWS Summit Tokyo 2017で「AWS Well-Architec …

kintone webhookからAWS API Gateway – Lambdaを実行しレコードの値を渡す

2017年2月のアップデートでkintoneにWebhook機能がリリースされま …

Amazon Elasticsearch ServiceにMySQLのデータを投入してkibanaで可視化してみる

MySQLのデータの可視化にAmazon Elasticsearch Servi …

AWS 認定クラウドプラクティショナーのサンプル問題

AWS認定クラウドプラクティショナのサンプル問題2018年9月25日現在で、英語 …

AWS EC2 インスタンスステータスのチェックで失敗して起動しなくなり復旧

EC2のインスタンスに接続出来なくなったので、AMIから作成してElastic …

AWS Lambda(Python)でDynamoDB テーブルを日次で削除/作成(オートスケーリング付き)

この記事はAWS #2 Advent Calendar 2018に参加した記事で …