如何为 Amazon Pinpoint SMS 和 Voice v2 API 设置 Amazon Pinpoint 语音消息的日志记录?
上次更新日期:2022 年 8 月 31 日
我想监测我通过 Amazon Pinpoint 发送的语音消息的状态。该如何设置?
解决方法
若要记录 Amazon Pinpoint 语音消息的状态,必须配置配置集和事件目标。设置事件目标后,必须将其映射到您的配置集。这样,您就可以接收有关通过 Amazon Pinpoint 发送的语音消息的回复信息。
您可以将以下任意 AWS 资源配置为 Amazon Pinpoint 语音事件目标:
- Amazon Simple Notification Service (Amazon SNS) 主题
- Amazon CloudWatch Logs
- Amazon Kinesis Data Firehose 流式传输
要配置事件目标,请使用 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 短信语音服务传送日志:
重要提示:将
{
"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 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 的输入请求文件。然后,复制以下目标参数并粘贴到文件中:
重要提示:将
{
"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"
}
]
}