Amazon Pinpoint SMS および Voice v1 API 用に Amazon Pinpoint ボイスメッセージのログ記録を設定する方法を教えてください。

所要時間4分
0

Amazon Pinpoint で送信する音声メッセージのステータスをモニタリングしたいと考えています。設定するにはどうすればよいですか?

簡単な説明

Amazon Pinpoint 音声メッセージのステータスをログに記録するには、イベントの送信先を設定する必要があります。イベントの送信先が設定されると、Amazon Pinpoint を介して送信する音声メッセージに関する応答情報を受け取ります。

Amazon Pinpoint の音声イベントの送信先として、次の AWS リソースのいずれかを設定できます。

イベントの送信先を設定するには、Amazon Pinpoint SMS および音声メッセージング API または AWS SDK のいずれかを使用できます。

注: 次の解決方法は、Amazon Pinpoint SMS および Voice v1 API にのみ適用されます。Amazon Pinpoint SMS および Voice v2 API については、「How do I set up logging for Amazon Pinpoint voice messages for Amazon Pinpoint SMS and Voice v2 API?」(Amazon Pinpoint SMS および Voice v2 API 用に Amazon Pinpoint ボイスメッセージのログ記録を設定する方法を教えてください) を参照してください。

解決方法

次の手順の例は、Amazon Pinpoint SMS および音声メッセージング API を使用してイベントの送信先を作成する方法を示しています。各設定例を機能させるには、SendVoiceMessage API オペレーションを使用して音声メッセージを送信する必要があります。API リクエストでは、ConfigurationSetName パラメータ中の設定セットの名前も渡す必要があります。コード例については、「Amazon Pinpoint デベロッパーガイド」の「Send voice messages」(音声メッセージを送信する) を参照してください。

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。これらの手順のいずれかを完了しても音声ログが入力されない場合は、「Amazon Pinpoint の音声メッセージログが入力されないのはなぜですか?」の記事を参照してください。

Amazon SNS トピックを Amazon Pinpoint 音声イベントの送信先として設定するには

1.    SNS トピックのアクセスポリシーに次の許可が含まれていることを確認します。これにより、Amazon Pinpoint サーバーはログを配信できます。

{
"Sid": "pinpointsmsvoice",
"Effect": "Allow",
"Principal": {
"Service": "sms-voice.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:us-west-2:XXXXXX:pinpointsmsvoice"
}

2.    次の create-configuration-set AWS CLI コマンドを実行して、設定セットを作成します。

注: VoiceSNS は、設定セットの任意の名前に置き換えることができます。

aws pinpoint-sms-voice create-configuration-set --configuration-set-name VoiceSNS

3.    音声メッセージログを受信するエンドポイントを、既存の Amazon SNS トピックまたは新しいトピックのいずれかにサブスクライブします。手順については、Amazon SNS デベロッパーガイドの「Amazon SNS トピックにエンドポイントを登録するには」を参照してください。

注: AWS CLI を使用して新しい Amazon SNS トピックを作成するには、次の create-topic コマンドを実行します。

aws sns create-topic --name pinpointsmsvoice

4.    テキストエディタで、SNSDestination.json という名前の入力リクエストファイルを作成します。その後、次の送信先パラメータをコピーしてファイルに貼り付けます。

重要: を自分の AWS リージョンに置き換えます。 を自分の AWS アカウント ID に置き換えます。pinpointsmsvoice を Amazon SNS トピックの名前に置き換えます。ログに記録するイベントタイプのみを含めるようにするには、MatchingEventTypes の値を編集できます。

{
    "Enabled": true,
    "MatchingEventTypes": ["INITIATED_CALL", "RINGING", "ANSWERED", "COMPLETED_CALL", "BUSY", "FAILED", "NO_ANSWER"],
    "SnsDestination": {
        "TopicArn": "arn:aws:sns:<region>:<AccountID>:pinpointsmsvoice"
    }
}

5.    次の create-configuration-set-event-destination コマンドを実行して、設定セットを送信先パラメータにマップします。

重要: VoiceSNS は必ず設定セットの名前に置き換えてください。

aws pinpoint-sms-voice create-configuration-set-event-destination --configuration-set-name VoiceSNS --event-destination-name SNS_Destination --event-destination file://SNSDestination.json

6.    SendVoiceMessage API オペレーションを使用して Amazon Pinpoint 音声メッセージを送信して、設定をテストします。数分後、Amazon SNS トピックにサブスクライブしているエンドポイントにイベントが表示されます。

重要: API リクエストの ConfigurationSetName パラメータが設定セットの名前と一致していることを確認してください。

CloudWatch Logs を Amazon Pinpoint 音声イベントの送信先として設定するには

1.    次のcreate-configuration-set AWS CLI コマンドを実行して、設定セットを作成します。

注: VoiceCW は、設定セットの任意の名前に置き換えることができます。

aws pinpoint-sms-voice create-configuration-set --configuration-set-name VoiceCW

2.    次の create-log-group コマンドを実行して、音声メッセージログを受信する新しい CloudWatch ロググループを作成します。

aws logs create-log-group --log-group-name /aws/pinpoint/voice
  • または -

既存の CloudWatch ロググループを使用して、以下のステップを完了します。

3.    以下を実行して CloudWatch ロググループの ARN を取得します。
CloudWatch コンソールを開きます。
左ナビゲーションペインで、[Logs] (ログ) を選択します。次に、[Log groups] (ロググループ) を選択します。
[Log group] (ロググループ) 列で、ロググループの名前を選択します。
[Log group details] (ロググループ詳細) ペインで、ARN 値をコピーします。これはロググループの ARN です。

4.    Amazon Pinpoint サービスが引き受ける新しい AWS Identity and Access Management (IAM) ロールを作成します。手順については、「AWS のサービス用のロールの作成 (コンソール)」または「サービス用のロールの作成 (AWS CLI)」を参照してください。ロールを設定するときは、ロールの信頼ポリシーを変更して、ポリシーのプリンシパルセクションに次のアクセス許可ステートメントが含まれるようにします。

注: このアクセス許可ステートメントでは、sms-voice サービスが IAM ロールを引き受けることを許可します。

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Principal": {
            "Service": "sms-voice.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
    }]
}

5.    IAM ロールのアクセス許可ポリシーを変更して、次のアクセス許可ステートメントを含めます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        }
    ]
}

注: このアクセス許可ステートメントは、特定の CloudWatch Logs API オペレーションを呼び出すアクセス許可を付与します。詳細については、「CloudWatch Logs の許可リファレンス」を参照してください。

6.    テキストエディタで、CloudWatchDestination.json という名前の入力リクエストファイルを作成します。その後、次の送信先パラメータをコピーしてファイルに貼り付けます。

重要: を自分の AWS リージョンに置き換えます。 を自分の AWS アカウント ID に置き換えます。 を IAM ロールの名前に置き換えます。ログに記録するイベントタイプのみを含めるようにするには、MatchingEventTypes の値を編集できます。

{
    "Enabled": true,
    "MatchingEventTypes": ["INITIATED_CALL", "RINGING", "ANSWERED", "COMPLETED_CALL", "BUSY", "FAILED", "NO_ANSWER"],
    "CloudWatchLogsDestination": {
        "LogGroupArn": "arn:aws:logs:<region>:<AccountID>:log-group/aws/pinpoint/voice:*",
        "IamRoleArn": "arn:aws:iam::<AccountID>:role/<IAM role name>"
    }
}

7.    次の create-configuration-set-event-destination コマンドを実行して、設定セットを送信先パラメータにマップします。

重要: VoiceCW は必ず設定セットの名前に置き換えてください。

aws pinpoint-sms-voice create-configuration-set-event-destination --configuration-set-name VoiceCW --event-destination-name CloudWatch_Destination --event-destination file://CloudWatchDestination.json

8.    SendVoiceMessage API オペレーションを使用して Amazon Pinpoint 音声メッセージを送信して、設定をテストします。数分後、イベントは CloudWatch ロググループに表示されます。

Kinesis Data Firehose ストリームを Amazon Pinpoint 音声イベントの送信先として設定するには

1.    次のcreate-configuration-set AWS CLI コマンドを実行して、設定セットを作成します。

注: VoiceKinesis は、設定セットの任意の名前に置き換えることができます。

aws pinpoint-sms-voice create-configuration-set --configuration-set-name VoiceKinesis

2.    Kinesis Data Firehose 配信ストリームを作成します[Destination] (送信先) 設定で、Amazon Simple Storage Service (Amazon S3) を選択します。

重要: デフォルトの IAM サービスロールを受け入れます。次に、IAM サービスロールの名前をクリップボードにコピーします。次の手順ではロール名が必要です。

3.    デフォルトの IAM サービスロールの信頼ポリシーを変更して、ポリシーのプリンシパルセクションに次のアクセス許可ステートメントが含まれるようにします。

注: このアクセス許可ステートメントは、sms-voice サービスに IAM ロールを引き受けることを許可します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "firehose.amazonaws.com",
          "sms-voice.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

4.    IAM サービスロールのアクセス許可ポリシーを変更して、次のアクセス許可ステートメントを含めます。

重要: IAM サービスロールのデフォルトのアクセス許可ステートメントは何も削除しないでください。

{
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "firehose:*",
            "Resource": "*"
        },

5.    テキストエディタで、KinesisFirehoseDestination.json という名前の入力リクエストファイルを作成します。その後、次の送信先パラメータをコピーしてファイルに貼り付けます。

重要: を自分の AWS リージョンに置き換えます。 を自分の AWS アカウント ID に置き換えます。Name_of_Kinesis_Firehose をお客様の Amazon Kinesis Data Firehose ストリームの名前に置き換えます。 を IAM ロールの名前に置き換えます。ログに記録するイベントタイプのみを含めるようにするには、MatchingEventTypes の値を編集できます。

{
    "Enabled": true,
    "MatchingEventTypes": ["INITIATED_CALL","RINGING","ANSWERED","COMPLETED_CALL","BUSY","FAILED","NO_ANSWER"],
    "KinesisFirehoseDestination": {
        "DeliveryStreamArn": "arn:aws:firehose:<region>:<AccountID>:deliverystream/<Name_of_Kinesis_Firehose>",
        "IamRoleArn": "arn:aws:iam::<AccountID>:role/service-role/<IAM role name>"
    }
}

6.    次の create-configuration-set-event-destination コマンドを実行して、設定セットを送信先パラメータにマップします。

重要: VoiceKinesis を必ず設定セットの名前に置き換えてください。

aws pinpoint-sms-voice create-configuration-set-event-destination --configuration-set-name VoiceKinesis --event-destination-name KinesisFirehose_Destination --event-destination file://KinesisFirehoseDestination.json

7.    SendVoiceMessage API オペレーションを使用して Amazon Pinpoint 音声メッセージを送信して、設定をテストします。数分後、イベントは Kinesis Data Firehose ストリームの作成時に設定した Amazon S3 バケットに表示されます。


AWS公式
AWS公式更新しました 2年前
コメントはありません