ヤマムギ

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

  関連記事

RedmineをELB(ALB)でAutoScalingグループへ負荷分散

高可用なRedmineを作るためのELBの設定です。 目次 高可用なRedmin …

「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってきました

「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってき …

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

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

Amazon LinuxにRedmine 環境構築(エラーと対応をそのまま記載版)

Amazon Linuxにgit + Redmineの環境を構築してみます。 自 …

AWS Summit 2016 Tokyoに参加してきました (前日 ~ Day1)

AWS Summit 2016 Tokyoにて、セッション聴講、ブース展示拝見、 …

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

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

試したい事があるのでAWS でとりあえずAmazon Linuxのサーバを作る

目次 1年間の無料キャンペーン期間中に検証するとりあえずサーバを作ってみる 1年 …

S3に置いたMP3ファイルをTwilioから電話再生する(AWS Lambda Python)

Google Calendar Twilio ReminderのTwilioを使 …

再会の日 ~re:Union 2018 Osaka by JAWS-UG~

8/5は大阪でre:Unionでした。 「再会」と名うったこのイベントは、6月に …

Amazon EC2(Amazon Linux 2)にRedmine3.4をインストール

久しぶりに新しい環境でRedmineを構築したくなり、せっかくなのでAmazon …