ヤマムギ

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の基本動作は確認できたので、業務自動化を進めていきたいと思います!!


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

ad

ad

  関連記事

「X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く未来~」に行ってきました

「X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く …

S3 過去のオブジェクトバージョンをコピーしてロールバックしました

バージョニングを有効にしているS3バケットで、オブジェクトを以前のバージョンに戻 …

EC2インスタンスを必要最小限のパラメータでCLIとSDKから起動する

EC2インスタンスをCLIとSDKから起動するデモで、パラメータを必要最小限にし …

AWS認定SAPの執筆開始にあたって環境を構築しました

AWS認定ソリューションアーキテクトプロフェッショナル対策本の執筆開始にあたりま …

Amazon LinuxにRedmine をインストールする(手順整理版)

Amazon LinuxにRedmineをインストールしました手順を記載します。 …

AWS Transit GatewayのVPN接続

上記のような構成で、オンプレミス側は東京リージョンのVPCでVyOSを起動して接 …

VPCピア接続した先のVPCインターフェイスエンドポイントを使用する

VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …

「関西AWSスタートアップ勉強会」に行ってきました

第2回 関西スタートアップAWS勉強会に行ってきました。 akippa 拠点数コ …

AWS VPC ネットワークACLでHTTP(80)のみ許可する

ユーザーガイドのカスタムネットワーク ACLのうち、HTTP(80)を許可する設 …

AWS Lambda Layersのアーカイブファイルをダウンロードする

Cloud9にLambda Layersをダウンロードしたかったので検索してみた …