选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

同步

聚焦模式
同步 - AWS AppSync GraphQL

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

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

通过使用 Sync 请求映射文档,您可以从 DynamoDB 表中检索所有结果,然后仅接收自上次查询以来更改的数据(增量更新)。只能对版本控制的 DynamoDB 数据来源发出 Sync 请求。您可以指定:

  • 排除结果的筛选条件

  • 要返回多少个项目

  • 分页标记

  • 上次 Sync 操作开始时间

Sync 映射文档具有以下结构:

{ "version" : "2018-05-29", "operation" : "Sync", "basePartitionKey": "Base Tables PartitionKey", "deltaIndexName": "delta-index-name", "limit" : 10, "nextToken" : "aPaginationToken", "lastSync" : 1550000000000, "filter" : { ... } }

字段定义如下:

Sync 字段

version

模板定义版本。当前仅支持 2018-05-29。该值为必填项。

operation

要执行的 DynamoDB 操作。要执行 Sync 操作,该字段必须设置为 Sync。该值为必填项。

filter

一个筛选条件,可用于在返回来自 DynamoDB 的结果之前对其进行筛选。有关筛选条件的更多信息,请参阅筛选条件。该字段是可选的。

limit

单次评估的最大项目数。该字段是可选的。如果省略,则默认限制将设置为 100 个项目。该字段的最大值为 1000 个项目。

nextToken

继续之前查询的分页标记。这应已从之前查询中获得。该字段是可选的。

lastSync

最后一次成功 Sync 操作开始的时刻(以纪元毫秒为单位)。如果指定,则仅返回 lastSync 之后更改的项目。该字段是可选的,只有在从初始 Sync 操作中检索所有页面后才能填充。如果省略,将返回基本 表中的结果,否则将返回增量 表中的结果。

basePartitionKey

执行 Sync 操作时使用的 表的分区键。在表使用自定义分区键时,该字段允许执行 Sync 操作。此为可选字段。

deltaIndexName

用于 Sync 操作的索引。在表使用自定义分区键时,需要使用该索引才能对整个增量存储表启用 Sync 操作。Sync 操作是对 GSI(在 gsi_ds_pkgsi_ds_sk 上创建)执行的。该字段是可选的。

version

模板定义版本。当前仅支持 2018-05-29。该值为必填项。

operation

要执行的 DynamoDB 操作。要执行 Sync 操作,该字段必须设置为 Sync。该值为必填项。

filter

一个筛选条件,可用于在返回来自 DynamoDB 的结果之前对其进行筛选。有关筛选条件的更多信息,请参阅筛选条件。该字段是可选的。

limit

单次评估的最大项目数。该字段是可选的。如果省略,则默认限制将设置为 100 个项目。该字段的最大值为 1000 个项目。

nextToken

继续之前查询的分页标记。这应已从之前查询中获得。该字段是可选的。

lastSync

最后一次成功 Sync 操作开始的时刻(以纪元毫秒为单位)。如果指定,则仅返回 lastSync 之后更改的项目。该字段是可选的,只有在从初始 Sync 操作中检索所有页面后才能填充。如果省略,将返回基本 表中的结果,否则将返回增量 表中的结果。

basePartitionKey

执行 Sync 操作时使用的 表的分区键。在表使用自定义分区键时,该字段允许执行 Sync 操作。此为可选字段。

deltaIndexName

用于 Sync 操作的索引。在表使用自定义分区键时,需要使用该索引才能对整个增量存储表启用 Sync 操作。Sync 操作是对 GSI(在 gsi_ds_pkgsi_ds_sk 上创建)执行的。该字段是可选的。

DynamoDB 同步返回的结果将自动转换为 GraphQL 和 JSON 基元类型,并且可以在映射上下文 ($context.result) 中使用。

有关 DynamoDB 类型转换的更多信息,请参阅类型系统(响应映射)

有关响应映射模板的更多信息,请参阅解析器映射模板概述

结果的结构如下所示:

{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10, startedAt = 1550000000000 }

字段定义如下:

items

包含同步操作返回的项目的列表。

nextToken

如果可能有更多结果,则nextToken包含可在其他请求中使用的分页令牌。 AWS AppSync 加密并混淆从 DynamoDB 返回的分页令牌。这可防止您的表数据无意中泄露给调用方。另外,无法跨不同的解析器使用这些分页标记。

scannedCount

在应用筛选条件表达式(如果有)之前 DynamoDB 检索的项目数。

startedAt

同步操作开始的时刻,以纪元毫秒为单位,您可以在本地存储该值并在其他请求中将其用作 lastSync 参数。如果请求中包含分页令牌,则该值将与请求针对第一页结果返回的值相同。

示例

以下示例是 GraphQL 查询 syncPosts(nextToken: String, lastSync: AWSTimestamp) 的映射模板。

在此示例中,如果省略 lastSync,则返回基表中的所有条目。如果提供了 lastSync,则只返回增量同步表中自 lastSync 以来发生更改的条目。

{ "version" : "2018-05-29", "operation" : "Sync", "limit": 100, "nextToken": $util.toJson($util.defaultIfNull($ctx.args.nextToken, null)), "lastSync": $util.toJson($util.defaultIfNull($ctx.args.lastSync, null)) }

本页内容

下一主题:

BatchGetItem

上一主题:

Scan
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。