Amazon Cognito Streams - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Cognito Streams

如果您是 Amazon Cognito Sync 的新用户,请使用 Amazon AppSync。像 Amazon Cognito Sync 一样,Amazon AppSync 是一种在设备之间同步应用程序数据的服务。

它允许同步用户数据,如应用程序首选项或游戏状态。它还通过允许多个用户实时同步和协作处理共享的数据,来扩展这些功能。

Amazon Cognito Streams 让开发人员能够控制和了解他们存储在 Amazon Cognito 中的数据。现在,开发人员可以配置 Kinesis 流,以便在数据更新和同步时接收事件。Amazon Cognito 可以实时向您拥有的 Kinesis 流推送每个数据集更改。

使用 Amazon Cognito Streams,您可以将所有的同步数据移动到 Kinesis,然后将其流式传输到数据仓库工具(如 Amazon Redshift),供进一步分析。要了解有关 Kinesis 的更多信息,请参阅 Amazon Kinesis 入门

配置流

您可以在 Amazon Cognito 控制台中设置 Amazon Cognito Streams。要在 Amazon Cognito 控制台中启用 Amazon Cognito Streams,您需要选择要将它发布到哪个 Kinesis 流,以及授权 Amazon Cognito 将事件放入选定流中的 IAM 角色。

控制台主页

  1. 单击要为其设置 Amazon Cognito 流的身份池的名称。此时将显示身份池的 Dashboard(控制面板)页。

  2. Dashboard(控制面板)页的右上角,单击 Manage Identity Pools(管理身份池)。出现“Manage Federated Identities”(管理联合身份)页。

  3. 向下滚动,并单击 Cognito Streams(Cognito 流),以将其展开。

  4. Stream name(流名称)下拉菜单中,选择一个现有 Kinesis 流的名称。或者,单击 Create stream(创建流)以创建一个流,输入流的名称和分片数量。要了解分片,以及获取有关如何估算流需要的分片数的帮助,请参阅 Kinesis 开发人员指南

  5. Publish role (发布角色) 下拉菜单中,选择授予 Amazon Cognito 发布流的权限的 IAM 角色。在 Amazon IAM 控制台中,单击 Create role (创建角色) 以创建或修改与您身份池关联的角色。

  6. Stream status(流状态)下拉菜单中,选择 Enabled(启用)以启用流更新。单击 Save Changes(保存更改)。

成功配置 Amazon Cognito Streams 之后,此身份池中数据集的所有后续更新都会发送到此流中。

流内容

发送到流的每个记录都代表一次同步。以下是一个发送到流的记录示例:

{ "identityPoolId": "Pool Id", "identityId": "Identity Id", "dataSetName": "Dataset Name", "operation": "(replace|remove)", "kinesisSyncRecords": [ { "key": "Key", "value": "Value", "syncCount": 1, "lastModifiedDate": 1424801824343, "deviceLastModifiedDate": 1424801824343, "op": "(replace|remove)" }, ... ], "lastModifiedDate": 1424801824343, "kinesisSyncRecordsURL": "S3Url", "payloadType": "(S3Url|Inline)", "syncCount": 1 }

对大于 Kinesis 最大有效负载大小 (1 MB) 的更新,Amazon Cognito 将包括预签名 Amazon S3 URL,其中包含更新的完整内容。

配置 Amazon Cognito Streams 之后,如果您删除 Kinesis 流或更改角色信任权限,使得 Amazon Cognito Sync 不再代入该角色,则您将禁用 Amazon Cognito 流。您必须重新创建 Kinesis 流或修复角色,然后必须重新启用此流。

批量发布

配置 Amazon Cognito Streams 之后,您能够对身份池中的现有数据执行批量发布操作。通过控制台或直接通过 API 启动批量发布操作之后,Amazon Cognito 会开始将此数据发布到接收更新的同一流中。

Amazon Cognito 不保证在使用批量发布操作时发送到流的数据具有唯一性。您可能会收到两个相同的更新,一个来自更新操作,一个属于批量发布。在处理来自流的记录时,请记住这一点。

要批量发布所有流,请执行“配置流”下的步骤 1-6,然后单击“Start bulk publish”(开始批量发布)。任何特定时间都只能有一个正在进行的批量发布操作,且每 24 小时只能有一次成功的批量发布请求。