AmazonConnectによる自動電話通知(4.Lambdaによる起動)

AmazonConnectによる自動電話通知(4.Lambdaによる起動)

【前回】AmazonConnectによる自動電話通知(3.問い合わせフローの作成)
【次回】AmazonConnectによる自動電話通知(5.EC2との連携)
【簡易版】AmazonConnectによる自動電話通知(まとめ)

監視サーバーで障害を検知した際に、自動で電話通知できるようにしていきます。ネットワークエンジニアも利用することの多い監視サーバー(Zabbix)で障害検知し、AWS上のAmazonConnectを利用し自動電話を発信します。

AmzonConnectでの自動電話発信イメージ
自動電話通知イメージ
目次

Lambda関数の作成

関数の作成

AWSマネジメントコンソール上で、「lambda」を検索します。

Lambdaの検索

「関数の作成」をクリックします。

Lambda関数の作成開始

下記の通り入力し、「関数の作成」をクリックします。

オプション:一から作成を選択
関数名:任意の名前を入力 ※ここでは、”AmazonConnectTest-001″としています。
ランタイム:Pythonを選択 ※ここでは、最新版の”Python 3.9″を選択しています。

オプション:一から作成を選択
関数名:任意の名前を入力 ※ここでは、"AmazonConnectTest-001"としています。
ランタイム:Pythonを選択 ※ここでは、最新版の"Python 3.9"を選択しています。
Lambda関数の作成画面

関数が作成されたことを確認します。

Lambda関数の作成確認

アクセス権の追加(ロールの設定)

作成された関数の設定タブに移動し、実行ロールをクリックします。

Lambda関数のアクセス権設定開始

「ポリシーをアタッチします」をクリックします。

Lambda関数のポリシーアタッチ

“connect”で検索し、「AmazonConnect_FullAccess」にチェックを入れ、「ポリシーのアタッチ」をクリックします。

Lambda関数のポリシーアタッチ

ポリシーがアタッチされたことを確認します。

Lambda関数のポリシーアタッチ確認

AmazonConnectのインスタンスIDと問い合わせフローIDを確認

AmazonConnectの問い合わせフロー画面で、「通知のフロー情報の表示」を展開します。

AmazonConnectの問い合わせフロー画面

ARNが表示されます。instanceの後ろの文字列がインスタンスID、contact-flowの後ろの文字列が問い合わせフローIDとなりますので、メモしておきます。

AmazonConnectのインスタンスIDと問い合わせフローID確認

コードの記述

Lambdaのコードを記述します。

import boto3

def lambda_handler(event, context):
    
    connect = boto3.client('connect')

    connect.start_outbound_voice_contact(
        DestinationPhoneNumber='+81**********',
        ContactFlowId='************************************',
        InstanceId='************************************',
        SourcePhoneNumber='+81**********',
    )

DestinationPhoneNumber:発信先の電話番号
※国番号をつけて記述(日本の090の番号の場合、+8190********)
ContactFlowId:問い合わせフローID
InstanceId:インスタンスID
SourcePhoneNumber:発信元の電話番号
※国番号をつけて記述(日本の050の番号の場合、+8150********)

Lambda関数のコード記述

Lambda関数のテスト

テスト設定

「Test」をクリックします。

Lambda関数のテスト設定開始

テストイベントの設定画面が表示されます。今回は引数は不要となりますが、”hello-world”のテンプレートのままで任意のイベント名を入力し、「作成」をクリックします。

Lambda関数のテスト設定

テスト実施

再度、「Test」をクリックします。

Lambda関数のテスト実施

テスト成功

Statusが”Succeeded”となれば、テスト成功です。発信先の番号に着信があり、問い合わせフローで設定した音声が再生されることを確認します。

Lambda関数のテスト成功

テスト失敗ケース1

Statusが”Failed”となり以下のメッセージが表示される場合は、アクセス権の設定を確認してください。

“errorMessage”: “An error occurred (AccessDeniedException) when calling the StartOutboundVoiceContact operation”
“errorType”: “ClientError”

Lambda関数のテスト失敗1

テスト失敗ケース2

Statusが”Failed”となり以下のメッセージが表示される場合は、AmazonConnectのサービスクォータにより発信通話が制限されています。

“errorMessage”: “An error occurred (DestinationNotAllowedException) when calling the StartOutboundVoiceContact operation”
“errorType”: “DestinationNotAllowedException”

Lambda関数のテスト失敗2

Amazon Connect サービスクォータ

AmazonConnectのサービスクォータ
AmazonConnectのサービスクォータ

この場合、AWSサポートに問い合わせを行い、サービス制限を解除する必要があります。サービス制限解除の方法を下記を参照してください。

以上で、AmazonConnectによる自動電話通知(4.Lambdaによる起動)の説明は完了です!

【前回】AmazonConnectによる自動電話通知(3.問い合わせフローの作成)
【次回】AmazonConnectによる自動電話通知(5.EC2との連携)
【簡易版】AmazonConnectによる自動電話通知(まとめ)

  • URLをコピーしました!
  • URLをコピーしました!
目次