本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置事件流式传输
您可以将 Amazon Pinpoint 设置为将事件数据发送到亚马逊 Kinesis 直播或亚马逊 Data Firehose 传输流。Amazon Pinpoint 可以发送活动、旅程以及事务性电子邮件和短信的事件数据。
此部分包含有关以编程方式设置事件流式传输的信息。您也可以使用 Amazon Pinpoint 控制台来设置事件流式传输。有关使用 Amazon Pinpoint 控制台设置事件流的信息,请参阅《Amazon Pinpoint 用户指南》中的事件流设置。
先决条件
本节中的示例需要以下输入:
-
与 Amazon Pinpoint 集成并报告事件的应用程序的应用程序 ID。有关如何集成的信息,请参阅将 Amazon Pinpoint 与您的应用程序集成。
-
您账户中 Kinesis 直播或 Firehose 直播流的亚马逊资源名称 (ARN)。 AWS 有关创建这些资源的信息,请参阅 Amazon Kinesis Data Streams 开发者指南中的创建和管理流或亚马逊数据 Firehose 开发者指南中的创建亚马逊数据 Firehose 传输流。
-
授权 Amazon Pinpoint 向直播发送数据的 AWS Identity and Access Management (IAM) 角色的 ARN。有关创建角色的信息,请参阅IAM将事件直播到 Kinesis 的角色。
AWS CLI
以下 AWS CLI 示例使用该put-event-stream命令。此命令配置 Amazon Pinpoint 将事件发送到 Kinesis 流:
aws pinpoint put-event-stream \ --application-id
projectId
\ --write-event-stream DestinationStreamArn=streamArn
,RoleArn=roleArn
AWS SDK for Java
以下 Java 示例配置 Amazon Pinpoint 向 Kinesis 流发送事件:
public PutEventStreamResult createEventStream(AmazonPinpoint pinClient, String appId, String streamArn, String roleArn) { WriteEventStream stream = new WriteEventStream() .withDestinationStreamArn(streamArn) .withRoleArn(roleArn); PutEventStreamRequest request = new PutEventStreamRequest() .withApplicationId(appId) .withWriteEventStream(stream); return pinClient.putEventStream(request); }
此示例构建了一个 WriteEventStream
对象,它存储 Kinesis 流和 IAM 角色的 ARN。WriteEventStream
对象会传递给 PutEventStreamRequest
对象,用于将 Amazon Pinpoint 配置为流式传输特定应用程序的事件。PutEventStreamRequest
对象会传递给 Amazon Pinpoint 客户端的 putEventStream
方法。
您可以将 Kinesis 流分配给多个应用程序。如果您执行此操作,Amazon Pinpoint 从每个应用程序将使用 base64 编码的事件数据发送到流中,这使您能够将数据作为集合进行分析。以下示例方法接受应用程序 ID 的列表,它使用上一个示例方法 createEventStream
将流分配给每个应用程序:
public List<PutEventStreamResult> createEventStreamFromAppList( AmazonPinpoint pinClient, List<String> appIDs, String streamArn, String roleArn) { return appIDs.stream() .map(appId -> createEventStream(pinClient, appId, streamArn, roleArn)) .collect(Collectors.toList()); }
虽然您可以将一个流分配给多个应用程序,但不能将多个流分配给一个应用程序。
禁用事件流式传输
如果将 Kinesis 流分配给了一个应用程序,则可以对该应用程序禁用事件流式传输。Amazon Pinpoint 停止将事件流式传输到 Kinesis,但您可以使用 Amazon Pinpoint 控制台查看事件分析。
AWS CLI
使用 delete-event-stream 命令:
aws pinpoint delete-event-stream --application-id
application-id
AWS SDK for Java
使用 Amazon Pinpoint 客户端 deleteEventStream 的方法:
pinClient.deleteEventStream(new DeleteEventStreamRequest().withApplicationId(appId));