AWS re:Postを使用することにより、以下に同意したことになります 利用規約

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

所要時間3分
0

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

解決方法

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

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

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

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

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

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

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

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

2.    ボイスメッセージログを受信するエンドポイントを Amazon SNS トピックに登録します。SNS トピックは、新しいトピックでも既存のトピックでもかまいません。手順については、「Amazon SNS トピックにエンドポイントを登録するには」を参照してください。

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

aws sns create-topic --name pinpointsmsvoice

3.    SNS トピックアクセスポリシーで以下の許可が必要です。これにより、Amazon Pinpoint SMS 音声サービスがログを配信できるようになります。

重要: を使用している AWS リージョンに置き換えます。 を自分の AWS アカウント ID に置き換えます。pinpointsmsvoice を SNS トピックの名前に置き換えます。

{
  "Sid": "pinpointsmsvoice",
  "Effect": "Allow",
  "Principal": {
    "Service": "sms-voice.amazonaws.com"
  },
  "Action": "SNS:Publish",
  "Resource": "arn:aws:<region>:<AccountID>:pinpointsmsvoice"
}

4.    テキストエディタで、MatchingEventTypes 用に matching.json という名前の入力リクエストファイルを作成します。受信するイベントを指定するか、以下のようにすべてのイベントを受信するには「ALL」を指定します。

[
"ALL"
]

5.    次の create-event-destination コマンドを実行して、イベントの宛先を configuration-set-name にマッピングします。

重要: を使用している AWS リージョンに置き換えます。 を自分の AWS アカウント ID に置き換えます。pinpointsmsvoice を Amazon SNS トピックの名前に置き換えます。

aws pinpoint-sms-voice-v2 create-event-destination —configuration-set-name VoiceSNS —event-destination-name VoiceSNS —matching-event-types file://matching.json —sns-destination TopicArn=arn:aws:sns:<region>:<AccountId>:pinpointsmsvoice

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

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

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

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

aws pinpoint-sms-voice-v2 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 ロールの名前に置き換えます。

{
  "IamRoleArn": "arn:aws:iam::<AccountID>:role/<IAM role name>",
  "LogGroupArn": "arn:aws:logs:<region>:<AccountID>:log-group:pinpointsmsvoice:"
}

7.    テキストエディタで、MatchingEventTypes 用に matching.json という名前の入力リクエストファイルを作成します。受信するイベントを指定するか、以下のようにすべてのイベントを受信するには「ALL」を指定します。

[
"ALL"
]

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

8.    次の create-event-destination コマンドを実行して、イベントの宛先を configuration-set-name にマッピングします。

aws pinpoint-sms-voice-v2 create-event-destination —configuration-set-name VoiceCW —event-destination-name CloudWatch_Destination —matching-event-types file://matching.json --cloud-watch-logs-destination file://CloudWatchDestination.json

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

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

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

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

aws pinpoint-sms-voice-v2 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"
    }
  ]
}

AWS公式
AWS公式更新しました 9ヶ月前