【前回】AmazonConnectによる自動電話通知(5.EC2/ZABBIXとの連携)
【次回】AmazonConnectによる自動電話通知(7.複数連絡先への電話通知〈概要〉)
【簡易版】AmazonConnectによる自動電話通知(まとめ)
監視サーバーで障害を検知した際に、自動で電話通知できるようにしていきます。ネットワークエンジニアも利用することの多い監視サーバー(Zabbix)で障害検知し、AWS上のAmazonConnectを利用し自動電話を発信します。
今回は自動電話通知に対してユーザーが応答したかどうかを確認する仕組みを導入します。
EC2上でのZabbixの構築はこちらを参照してください。
CloudWatchによるLambdaの実行結果確認
前回までに作成したLambda(AmazonConnectTest-001)の実行結果はCloudWatchで確認できます。
AWSマネジメントコンソール上で、「cloudwatch」を検索します。
「ロググループ」から対象のLambda(AmazonConnectTest-001)をクリックします。
ログストリームから確認したい時間帯のログをクリックします。
Lambdaの実行結果が表示されます。AmazonConnectTest-001については、開始/終了のログしか残っていないため、実際の電話通知結果がどうだったかはわかりません。
自動電話の結果を確認するLambdaの作成
Lambdaの画面から「関数の作成」をクリックします。
下記の通り入力し、「関数の作成」をクリックします。
オプション:一から作成を選択
関数名:任意の名前を入力 ※ここでは、”AmazonConnectTest-002″としています。
ランタイム:Pythonを選択 ※ここでは、最新版の”Python 3.9″を選択しています。
Lambdaのコードを記述し、「Deploy」をクリックします。
def lambda_handler(event, context):
destphone = event['Details']['ContactData']['CustomerEndpoint']['Address']
pressnum = event['Details']['ContactData']['Attributes']['pressnum']
if pressnum == "1":
print(destphone + "への通知に成功しました。")
else:
print(destphone + "への通知に失敗しました。")
AmazonConnectへLambdaを登録
AmazonConnectのインスタンスをクリックします。
「問い合わせフロー」の「AWS Lambda」で、作成したLambda関数を選択し、「+ Add Lambda Function」をクリックします。
Lambda関数が追加されたことを確認します。
AmazonConnectの問い合わせフロー作成
下記で作成した問い合わせフローを修正します。
AmazonConnectによる自動電話通知(3.問い合わせフローの作成)
フローの設置
「操作」から「顧客の入力を取得する」をドラッグ&ドロップします。
「設定」から「コンタクト属性の設定」を2つドラッグ&ドロップします。
「操作」から「プロンプトの再生」を2つドラッグ&ドロップします。
「統合」から「AWS Lambda 関数を呼び出す」をドラッグ&ドロップします。
フローの設定
「顧客の入力を取得する」をクリックします。
「テキスト読み上げまたはチャットテキスト」と「テキストの入力」にチェックを入れ、下記を入力します。
確認しましたら、1を押してください。
「別の条件を追加」をクリックします。
オプションに「1」を入力し、「Save」をクリックします。
上側の「コンタクト属性の設定」をクリックします。
下記の通り入力し、「Save」をクリックします。
宛先タイプ:ユーザー定義を選択
宛先属性:”pressnum”と入力 ※任意の名前を入力します。
テキストの使用:チェックを入れる
値:”1″を入力
下側の「コンタクト属性の設定」をクリックします。
下記の通り入力し、「Save」をクリックします。
宛先タイプ:ユーザー定義を選択
宛先属性:”pressnum”と入力 ※任意の名前を入力します。
テキストの使用:チェックを入れる
値:”none”を入力
上側の「プロンプトの再生」をクリックします。
「テキスト読み上げまたはチャットテキスト」と「テキストの入力」にチェックを入れ、下記を入力します。※正常に”1″が押された場合のメッセージ内容です。
応答が確認できました。
下側の「プロンプトの再生」をクリックします。
「テキスト読み上げまたはチャットテキスト」と「テキストの入力」にチェックを入れ、下記を入力します。※正常に”1″が押されなかった場合のメッセージ内容です。
応答が確認できませんでした。
「AWS Lambda関数を呼び出す」をクリックします。
「関数を選択する」にチェックを入れ、作成したLambda関数を選択します。
「パラメーターを追加する」をクリックします。
下記の通り入力し、「Save」をクリックします。
属性を使用する:チェックを入れる
宛先キー:”pressnum”と入力 ※任意の名前を入力します。
タイプ:ユーザー定義
属性:“pressnum”と入力 ※コンタクト属性の設定と合わせます。
設定を再確認します。
フローの接続
「プロンプトの再生」と「切断」の接続を解除します。
下記の通りの接続に変更します。
「公開」をクリックし、正常に保存されることを確認します。
AmazonConnectのテスト
下記を参照してAmazonConnectを起動し、想定通りの動作となるか確認します。
AmazonConnectによる自動電話通知(3.問い合わせフローの作成)
AmazonConnectによる自動電話通知(4.Lambdaによる起動)
キーパッドで”1″を押した時と、その他の動作(1以外を押す、何も押さない)の場合で、アナウンスされるメッセージが変わることを確認します。
CloudWatchによるLambdaの実行結果確認(通知成功/失敗)
「ロググループ」から対象のLambda(AmazonConnectTest-002)をクリックします。
“1”を押した場合は、「通知に成功しました。」というログが表示されています。
その他動作の場合は、「通知に失敗しました。」というログが表示されています。
以上で、AmazonConnectによる自動電話通知(6.ユーザー入力による応答確認)の説明は完了です。
【前回】AmazonConnectによる自動電話通知(5.EC2/ZABBIXとの連携)
【次回】AmazonConnectによる自動電話通知(7.複数連絡先への電話通知〈概要〉)
【簡易版】AmazonConnectによる自動電話通知(まとめ)