Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
如何使用 Amazon Pinpoint 为 AWS 终端用户消息发送语音消息设置日志记录?
我想监控我通过 Amazon Pinpoint 发送的语音消息的状态。
我想监控我通过 Amazon Pinpoint 发送的语音消息的状态。
解决方法
要记录 Amazon Pinpoint 语音消息的状态,请配置配置集和事件目的地。然后,将事件目的地映射到配置集。此配置使您能够接收您通过 Amazon Pinpoint 发送的语音消息的响应信息。
您可以将以下任意 AWS 资源配置为 Amazon Pinpoint 语音事件目的地:
要配置事件目的地,请使用 AWS 终端用户消息发送 API 或 AWS SDK 之一。
**注意:**以下语音消息日志记录配置仅适用于 AWS 终端用户消息发送。有关短信和语音 v1,请参阅如何为 Amazon Pinpoint 短信和语音 v1 API 设置 Amazon Pinpoint 语音消息的日志记录?
将 Amazon SNS 主题配置为 Amazon Pinpoint 语音事件目的地
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,确保您使用的是最新版本的 AWS CLI。
要将 Amazon SNS 主题配置为 Amazon Pinpoint 语音事件目的地,请完成以下步骤:
-
要创建配置集,请运行 create-configuration-set 命令:
aws pinpoint-sms-voice-v2 create-configuration-set --configuration-set-name VoiceSNS
注意: 请将 VoiceSNS 替换为您的配置集名称。
-
为要记录语音消息的端点订阅 Amazon SNS 主题。SNS 主题可以是新主题,也可以是现有主题。要使用 AWS CLI 创建新的 Amazon SNS 主题,请运行 create-topic 命令:
aws sns create-topic --name pinpointsmsvoice
-
将以下权限添加到 SNS 主题访问策略中。此策略允许 AWS 终端用户消息发送语音服务传送日志:
{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:us-east-1:ACCOUNT_ID:pinpointsmsvoice", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceSNS" } } }
**注意:**请将 us-east-1 替换为您的 AWS 区域,将 pinpointsmsvoice 替换为您的 SNS 主题的名称,将 ACCOUNT_ID 替换为您的 AWS 账户 ID。
-
在文本编辑器中,为 MatchingEventTypes 创建名为 matching.json 的输入请求文件。指定要接收的事件,或者指定**“ALL”**以接收所有事件:
[ "ALL" ]
-
要将事件目的地映射到 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 替换为您的账户 ID,将 pinpointsmsvoice 替换为您的 SNS 主题的名称。
-
要测试设置,请使用 SendVoiceMessage v2 API 操作发送 Amazon Pinpoint 语音消息。几分钟后,该事件会出现在订阅了 SNS 主题的端点中。
将 CloudWatch Logs 配置为 Amazon Pinpoint 语音事件目的地
要将 CloudWatch Logs 配置为 Amazon Pinpoint 语音事件目的地,请完成以下步骤:
-
要创建配置集,请运行 create-configuration-set 命令:
aws pinpoint-sms-voice-v2 create-configuration-set --configuration-set-name VoiceCW
注意: 请将 VoiceCW 替换为您的配置集的任何名称。
-
运行 create-log-group 命令以创建接收语音消息日志的新 CloudWatch 日志组:
aws logs create-log-group --log-group-name /aws/pinpoint/voice
-or-
使用现有的 CloudWatch 日志组并通过以下步骤获取 ARN:
打开 CloudWatch 控制台。
在导航窗格中,选择 Logs(日志)。然后,选择 Log groups(日志组)。
在 Log group(日志组)列中,选择您的日志组的名称。
在 Log group details(日志组详细信息)窗格中,复制 ARN 值。这是您的日志组的 ARN。 -
创建一个新的 IAM 角色以供 Amazon Pinpoint 服务代入。
-
使用以下权限语句更新 IAM 角色信任策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceKinesis" } } } ] }
**注意:**此策略允许 SMS 语音服务代入 IAM 角色。
-
使用以下语句更新 IAM 角色权限策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:ACCOUNT_ID:log-group:/aws/pinpoint/voice:*" ] } ] }
**注意:**此权限策略可授予调用特定 CloudWatch Logs API 操作的权限。有关详细信息,请参阅 CloudWatch Logs 权限参考。
-
在文本编辑器中,创建名为 CloudWatchDestination.json 的输入请求文件。然后,在文件中输入以下目的地参数:
`{ "IamRoleArn": "arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE", "LogGroupArn": "arn:aws:logs:us-east-1:ACCOUNT_ID:log-group:/aws/pinpoint/voice" }`
**注意:**请将 IamRoleArn 的值替换为您的 IAM 角色 ARN。将 LogGroupArn 的值替换为要向其发送事件的 CloudWatch 日志组的 ARN。
-
在文本编辑器中,为 MatchingEventTypes 创建名为 matching.json 的输入请求文件。指定要接收的事件,或者指定**“ALL”**以接收所有事件:
[ "ALL" ]
**注意:**请将 VoiceCW 替换为您的配置集的名称。
-
运行 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
-
要测试设置,请使用 SendVoiceMessage v2 API 操作发送 Amazon Pinpoint 语音消息。几分钟后,该事件将出现在 CloudWatch 日志组中。
将 Firehose 传输流配置为 Amazon Pinpoint 语音事件目的地
要将 Firehose 传输流配置为 Amazon Pinpoint 语音事件目的地,请完成以下步骤:
-
要创建配置集,请运行 create-configuration-set 命令:
aws pinpoint-sms-voice-v2 create-configuration-set --configuration-set-name VoiceKinesis
注意: 请将 VoiceKinesis 替换为您的配置集的名称。
-
创建 Firehose 传输流。对于 Destination setting(目的地设置),选择 Amazon Simple Storage Service (Amazon S3)。
-
创建一个新的 IAM 角色以供 Amazon Pinpoint 服务代入。
-
使用策略的主体部分中的以下权限语句更新 IAM 角色信任策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:sms-voice:us-east-1:ACCOUNT_ID:configuration-set/VoiceKinesis" } } } ] }
注意: 此策略允许 SMS 语音服务代入 IAM 角色。
-
更新 IAM 角色权限策略以包含 Firehose 传输流 ARN:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:PutRecord", "Resource": "arn:aws:firehose:us-east-1:ACCOUNT_ID:deliverystream/KINESIS_FIREHOSE_NAME" } ] }
注意: 请将 ACCOUNT_ID 替换为您的账户 ID,将 KINESIS_FIREHOSE_NAME 替换为您的 Firehose 传输流 ARN 的名称。
-
在文本编辑器中,创建名为 KinesisFirehoseDestination.json 的输入请求文件。然后,复制以下目的地参数并粘贴到文件中:
{ "IamRoleArn": "arn:aws:iam::ACCOUNT_ID:role/IAM_ROLE", "DeliveryStreamArn": "arn:aws:firehose:us-east-1:ACCOUNT_ID:deliverystream/KINESIS_FIREHOSE_NAME" }
**注意:**请将 us-east-1 替换为您的 AWS 区域,将 ACCOUNT_ID 替换为您的账户 ID,将 KINESIS_FIREHOSE_NAME 替换为您的 Firehose 传输流的名称,将 IAM_ROLE 替换为您的 IAM 角色名称。
-
要将事件目的地映射到 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 替换为您的配置集名称。
-
要测试设置,请使用 SendVoiceMessage v2 API 操作发送 Amazon Pinpoint 语音消息。几分钟后,该事件会出现在您创建 Firehose 传输流时配置的 Amazon S3 存储桶中。
