ヤマムギ

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 クラウドプラクティショナー」という本を書きました。

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

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS ,

ad

ad

  関連記事

RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもできるようになってました

RDSスナップショットをS3にエクスポートする新機能を試そうかと思ったのときは、 …

S3イベントのAWS Lambdaのテスト設定

S3イベントのLambda関数でよく使うのはこんなテスト設定です。 なので覚書で …

Amazon SESでメール受信

Amazon SES(Simple Email Service)にメールドメイン …

RDSスナップショットのS3エクスポート結果確認

RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもで …

Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で

Elastic Beanstalk への flask アプリケーションのデプロイ …

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

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

Amazon EC2のAMIイメージを自動取得して保持日数が過ぎたら削除

画像の保存をEC2に戻した事もあってEC2のバックアップの自動取得を勉強がてらや …

AWS Lambda(Python3)でSelenium + Chrome Headless + でwebスクレイピングする

インターネット上に公開されている情報をDynamoDBにつっこみたいだけなので、 …

AWS Summit Tokyo 2017 聴講したセッションのメモ

2017年6月に参加しましたAWS Summitで聴講したセッションのメモを記し …

AWS RDS でMySQLインスタンスを構築する

Amazon Web ServiceにはAmazon Relational Da …