

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

# 将 Amazon Cognito Sync 与身份池一起使用
<a name="identity-pools-sync"></a>

 Amazon Cognito Sync 是一个 Amazon Web Services 服务 和客户端库，它使跨设备同步与应用程序相关的用户数据成为可能。Amazon Cognito Sync 无需使用您自己的后端即可在移动设备和网络上同步用户个人资料数据。客户端库在本地缓存数据，因此，您的应用程序可以读取和写入数据，无论设备是否处于连接状态，都是如此。设备处于在线状态时，您可以同步数据。如果您设置推送同步，您可在更新可用时立即通知其他设备。

## 管理数据集
<a name="managing-datasets-in-the-amazon-cognito-console"></a>

如果您在应用程序中实施了 Amazon Cognito Sync 功能，则 Amazon Cognito 身份池控制台允许您手动创建和删除各个身份的数据集和记录。对于您在 Amazon Cognito 身份池控制台中对身份的数据集或记录做出的任何更改，只有当您在控制台中选择 **Synchronize**（同步）后才会保存。直到身份调用 **Synchronize**（同步）后，终端用户才能看到更改。一旦刷新特定身份的列表数据集页面，从其它设备同步的有关各个身份的数据即会显示。

### 为身份创建数据集
<a name="create-a-dataset-for-an-identity"></a>

Amazon Cognito Sync 将数据集与一个身份关联起来。您可以在数据集中填充该身份所代表的用户的身份信息，然后将该信息同步到用户的所有设备。

**将数据集和数据集记录添加到身份**

1. 从 [Amazon Cognito 控制台](https://console.amazonaws.cn/cognito/home)中选择**身份池**。选择身份池。

1. 选择**身份浏览器**选项卡。

1. 选择要编辑的身份。

1. 在**数据集**中，选择**创建数据集**。

1. 输入**数据集名称**并选择**创建数据集**。

1. 如果您想向数据集添加记录，请从身份详细信息中选择您的数据集。在**记录**中，选择**创建记录**。

1. 输入记录的**键**和**值**。选择**确认**。重复此操作以添加更多记录。

### 删除与身份关联的数据集
<a name="delete-a-dataset-associated-with-an-identity"></a>

**从身份中删除数据集及其记录**

1. 从 [Amazon Cognito 控制台](https://console.amazonaws.cn/cognito/home)中选择**身份池**。选择身份池。

1. 选择**身份浏览器**选项卡。

1. 选择包含要删除的数据集的身份。

1. 在**数据集**中，选择要删除的数据集旁边的单选按钮。

1. 选择**删除**。查看您的选择，然后再次选择**删除**。

## 批量发布数据
<a name="bulk-publish-data"></a>

 批量发布可用于将存储在 Amazon Cognito Sync 存储中的数据导出到 Amazon Kinesis Stream。有关如何批量发布所有流的说明，请参阅 [实施 Amazon Cognito Sync 流](cognito-streams.md)。

## 激活推送同步
<a name="enable-push-synchronization"></a>

 Amazon Cognito 会自动跟踪身份和设备之间的关联。通过使用推送同步功能，可以确保在身份数据发生更改时通知给定身份的每个实例。推送同步可以确保，只要身份的数据集发生更改，与该身份关联的所有设备就会收到一个静音推送通知，通知它们所发生的更改。

 您可以在 Amazon Cognito 控制台中激活推送同步。

**激活推送同步**

1. 从 [Amazon Cognito 控制台](https://console.amazonaws.cn/cognito/home)中选择**身份池**。选择身份池。

1. 选择**身份池属性**选项卡。

1. 在**推送同步**中，选择**编辑**

1. 选择**激活与身份池的推送同步**。

1. 选择您在当前 Amazon Web Services 区域中创建的 Amazon Simple Notiﬁcation Service（Amazon SNS）**平台应用程序**之一。Amazon Cognito 向您的平台应用程序发布推送通知。选择**创建平台应用程序**以导航到 Amazon SNS 控制台并创建一个新的应用程序。

1. 要发布到平台应用程序，Amazon Cognito 将代入您的 Amazon Web Services 账户中的 IAM 角色。如果您希望 Amazon Cognito 为您创建一个具有基本权限并与您的身份池建立信任关系的新角色，请选择**创建新的 IAM 角色**。例如，输入 **IAM 角色名称**以标识您的新角色，例如 `myidentitypool_authenticatedrole`。选择**查看策略文档**以查看 Amazon Cognito 分配给您的新 IAM 角色的权限。

1. 如果您的 Amazon Web Services 账户 角色中已有要**使用的角色，则可以选择使用现有 IAM** 角色。您必须将您的 IAM 角色信任策略配置为包括 `cognito-identity.amazonaws.com`。配置您的角色信任策略，以仅允许 Amazon Cognito 在提供证据证明请求来自您的特定身份池中经过身份验证的用户时，才代入该角色。有关更多信息，请参阅 [角色信任和权限](iam-roles.md#role-trust-and-permissions)。

1. 选择**保存更改**。

## 设置 Amazon Cognito Streams
<a name="set-up-cognito-streams"></a>

 Amazon Cognito Streams 让开发人员能够控制和了解他们存储在 Amazon Cognito Sync 中的数据。开发人员现在可以配置 Kinesis 流以接收数据形式的事件。Amazon Cognito 可以实时向您拥有的 Kinesis 流推送每个数据集更改。有关如何在 Amazon Cognito 控制台中设置 Amazon Cognito Streams 的说明，请参阅[实施 Amazon Cognito Sync 流](cognito-streams.md)。

## 设置 Amazon Cognito Events
<a name="set-up-cognito-events"></a>

 Amazon Cognito Events 允许您运行 Amazon Lambda 函数以响应 Amazon Cognito Sync 中的重要事件。当数据集得到同步时，Amazon Cognito Sync 会引发同步触发事件。当用户更新数据时，您可以使用同步触发事件采取行动。有关从控制台设置 Amazon Cognito Events 的说明，请参阅[使用 Amazon Cognito Events 自定义工作流](cognito-events.md)。

 要了解更多信息 Amazon Lambda，请参阅[Amazon Lambda](https://www.amazonaws.cn/lambda/)。