实现 Amazon Cognito 同步流 - Amazon Cognito

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

实现 Amazon Cognito 同步流

如果您是 Amazon Cognito Sync 的新用户,请使用 AWS AppSync。与 Amazon Cognito Sync 一样, AWS 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 直播以及IAM一个向亚马逊 Cognito 授予将事件放入所选流的权限的角色。

控制台主页

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

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

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

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

  5. 发布角色下拉菜单中,选择授予 Amazon Cognito 发布直播权限的IAM角色。单击 “创建角色”,在AWS IAM控制台中创建或修改与您的身份池关联的角色。

  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 会包含包含更新全部内容的预签名 A URL mazon S3。

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

批量发布

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

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

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