Amazon Pinpoint SMS と Voice v2 API の Amazon Pinpoint 音声メッセージのロギングを設定する方法を教えてください。

所要時間3分
0

Amazon Pinpoint を介して送信する音声メッセージのステータスを監視したいです。

解決方法

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

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

イベントの送信先を設定するには、Amazon Pinpoint SMS と Voice messaging 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 コマンドを実行します。

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

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

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

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

aws sns create-topic --name pinpointsmsvoice
  1. SNS トピックアクセスポリシーには、次の権限が必要です。これにより、Amazon Pinpoint の SMS 音声サービスがログを配信できるようになります。
`{   "Sid": "pinpointsmsvoice",   "Effect": "Allow",   "Principal": {     "Service": "sms-voice.amazonaws.com"   },   "Action": "SNS:Publish",   "Resource": "arn:aws:sns:us-east-1:ACCOUNT_ID:`pinpointsmsvoice`" }`

**注:**us-east-1 をお使いの AWS リージョンに置き換えてください。ACCOUNT_ID を AWS アカウント ID に置き換えてください。pinpointsmsvoice を自分の SNS トピックの名前に置き換えてください。

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

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

`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:`us-east-1:ACCOUNT\_ID:pinpointsmsvoice

**注:**us-east-1 を自分のリージョンに置き換えてください。ACCOUNT_ID を AWS アカウント ID に置き換えてください。pinpointsmsvoice を自分の SNS トピックの名前に置き換えてください。

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

CloudWatch ログを Amazon Pinpoint の音声イベントの送信先として設定

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

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

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

  1. 音声メッセージログを受信する新しい CloudWatch ロググループを作成します。次のcreate-log-groupを実行します。
aws logs create-log-group --log-group-name /aws/pinpoint/voice

-または-

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

  1. CloudWatch ロググループの Amazon リソースネーム (ARN) を取得: CloudWatch コンソールを開きます。左側のナビゲーションペインで [Logs] を選択します。次に、[ロググループ] を選択します。**[ロググループ]列で、お使いのロググループの名前を選択します。[ロググループ詳細]**ペインで、ARN 値をコピーします。これはお使いのロググループの ARN です。

4.Amazon Pinpoint サービスが引き継ぐ新しい AWS アイデンティティおよびアクセス管理 (IAM) ロールを作成します。手順については、「AWS サービスのロールの作成 (コンソール)」 または「サービスのロールの作成 (AWS CLI)」を参照してください。ロールを設定するときは、ポリシーのプリンシパルセクションに次の権限ステートメントが含まれるように、ロールの信頼ポリシーを変更します。

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

: この権限ステートメントにより、sms-voice サービスが IAM ロールを引き継ぐことができます。

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 のアクセス権限リファレンス」を参照してください。

  1. テキストエディターで、** CloudWatchDestination.json** という名前の入力リクエストファイルを作成します。次に、次の宛先パラメータをファイルに入力します。
`{   "IamRoleArn": "arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE",   "LogGroupArn": "arn:aws:logs:us-east-1:ACCOUNT_ID:LOG_GROUP:`pinpointsmsvoice`:" }`

**注:**IamRoleArn の値を IAM ロールの ARN に置き換えてください。LogGroupArn の値を、ロググループ ARN と SNS トピック名に置き換えてください。

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

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

  1. イベントの宛先を configuration-set-name にマッピングします。これを行うには、次の create-event-destination コマンドを実行します。
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 コマンドを実行します。

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

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

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

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

  1. ポリシーのプリンシパルセクションに次のアクセス権限ステートメントが含まれるように、IAM ロールのアクセス権限ポリシーを変更します。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "firehose.amazonaws.com",
          "sms-voice.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

この権限ステートメントは、sms-voice サービスに IAM ロールを引き継ぐことを許可します。

  1. IAM サービスロールの権限ポリシーを変更して、次の権限ステートメントが含まれるようにします。

**重要:**IAM サービスロールのデフォルトの権限ステートメントは削除しないでください。

{
     "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": "firehose:*",
      "Resource": "*"
}
  1. テキストエディターで、KinesisFirehoseDestination.jsonという名前の入力リクエストファイルを作成します。次に、次の宛先パラメータをコピーしてファイルに貼り付けます。
{

  "IamRoleArn": "arn:aws:iam::191418023309:role/IAM_ROLE",
  "DeliveryStreamArn": "arn:aws:firehose:us-east-1:ACCOUNT_ID:deliverystream/KINESIS_FIREHOSE_NAME"
}

**注:**us-east-1 を自分のリージョンに置き換えてください。ACCOUNT_ID を AWS アカウント ID に置き換えてください。KINESIS\ _FIREHOSE\ _NAME を Kinesis Data Firehose ストリームの名前に置き換えてください。IAM\ _ROLE をお使いの IAM ロールの名前に置き換えてください。

  1. イベントの宛先を configuration-set-name にマッピングするには、入力リクエストファイルを使用して create-event-destination コマンドを実行します。

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

[
"ALL"
]

次に、create-event-destinationコマンドを実行します。

aws pinpoint-sms-voice-v2 create-event-destination --configuration-set-name VoiceKinesis --event-destination-name KinesisFirehose_Destination --matching-event-types file://matching.json --kinesis-firehose-destination file://KinesisFirehoseDestination.json

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

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

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