如何为 Amazon Pinpoint SMS 和 Voice v2 API 设置 Amazon Pinpoint 语音消息的日志记录?

上次更新日期:2022 年 8 月 31 日

我想监测我通过 Amazon Pinpoint 发送的语音消息的状态。该如何设置?

解决方法

若要记录 Amazon Pinpoint 语音消息的状态,必须配置配置集事件目标。设置事件目标后,必须将其映射到您的配置集。这样,您就可以接收有关通过 Amazon Pinpoint 发送的语音消息的回复信息。

您可以将以下任意 AWS 资源配置为 Amazon Pinpoint 语音事件目标:

要配置事件目标,请使用 Amazon Pinpoint SMS 和语音消息收发 v2 API 或某一个 AWS SDK

注意:以下解决方案仅适用于 Amazon Pinpoint SMS 和 Voice v2 API。有关 Amazon Pinpoint 短信和语音 v1 API 的信息,请参阅如何为 Amazon Pinpoint 短信和语音 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 短信语音服务传送日志:

重要提示:将 替换为您的 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"
    }
  ]
}

这篇文章对您有帮助吗?


您是否需要账单或技术支持?