選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

Sync

焦點模式
Sync - AWS AppSync GraphQL

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Sync 請求物件可讓您從 DynamoDB 資料表擷取所有結果,然後只接收自上次查詢 (差異更新) 後變更的資料。 Sync 請求只能對版本控制的 DynamoDB 資料來源提出。您可以指定下列選項:

  • 排除結果的篩選結果

  • 要傳回多少項目

  • 分頁字符

  • 上次起始 Sync 操作時

Sync 請求物件具有下列結構:

type DynamoDBSyncRequest = { operation: 'Sync'; basePartitionKey?: string; deltaIndexName?: string; limit?: number; nextToken?: string; lastSync?: number; filter?: { expression: string; expressionNames?: { [key: string]: string }; expressionValues?: { [key: string]: any }; }; };

欄位定義如下:

同步欄位

operation

要執行的 DynamoDB 操作。若要執行 Sync 操作,這必須設定為 Sync。此值為必填。

filter

篩選條件,可用於在傳回 DynamoDB 之前篩選結果。如需篩選條件的詳細資訊,請參閱篩選條件。此欄位為選用欄位。

limit

單次可評估的項目數量上限。此欄位為選用欄位。如果省略此值,預設限制將設為 100 個項目。此欄位的最大值為 1000 個項目。

nextToken

分頁字符將繼續先前的查詢。這會是從先前查詢所取得的。此欄位為選用欄位。

lastSync

上次成功啟動 Sync 操作的時間 (以毫秒為單位)。如果指定此值,只會傳回 lastSync 之後變更的項目。這個欄位是選用的,而且只有在初始 Sync 操作擷取所有頁面之後才能填入。如果省略此值,將傳回 Base 資料表的結果,否則會傳回 Delta 資料表的結果。

basePartitionKey

執行 Sync操作時使用的基礎資料表的分割區索引鍵。此欄位允許在資料表使用自訂分割區金鑰時執行Sync操作。此為選用欄位。

deltaIndexName

用於 Sync操作的索引。當資料表使用自訂分割區索引鍵時,需要此索引才能在整個差異存放區資料表上啟用Sync操作。Sync 操作將在 GSI 上執行 (在 gsi_ds_pk和 上建立gsi_ds_sk)。此欄位為選用欄位。

同步欄位清單

operation

要執行的 DynamoDB 操作。若要執行 Sync 操作,這必須設定為 Sync。此值為必填。

filter

篩選條件,可用於在傳回 DynamoDB 之前篩選結果。如需篩選條件的詳細資訊,請參閱篩選條件。此欄位為選用欄位。

limit

單次可評估的項目數量上限。此欄位為選用欄位。如果省略此值,預設限制將設為 100 個項目。此欄位的最大值為 1000 個項目。

nextToken

分頁字符將繼續先前的查詢。這會是從先前查詢所取得的。此欄位為選用欄位。

lastSync

上次成功啟動 Sync 操作的時間 (以毫秒為單位)。如果指定此值,只會傳回 lastSync 之後變更的項目。這個欄位是選用的,而且只有在初始 Sync 操作擷取所有頁面之後才能填入。如果省略此值,將傳回 Base 資料表的結果,否則會傳回 Delta 資料表的結果。

basePartitionKey

執行 Sync操作時使用的基礎資料表的分割區索引鍵。此欄位允許在資料表使用自訂分割區金鑰時執行Sync操作。此為選用欄位。

deltaIndexName

用於 Sync操作的索引。當資料表使用自訂分割區索引鍵時,需要此索引才能在整個差異存放區資料表上啟用Sync操作。Sync 操作將在 GSI 上執行 (在 gsi_ds_pk和 上建立gsi_ds_sk)。此欄位為選用欄位。

DynamoDB 同步傳回的結果會自動轉換為 GraphQL 和 JSON 基本類型,並可在內容結果 () 中使用context.result

如需 DynamoDB 類型轉換的詳細資訊,請參閱類型系統 (回應映射)

如需 JavaScript 解析程式的詳細資訊,請參閱 JavaScript 解析程式概觀

結果的結構如下:

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

欄位定義如下:

items

包含同步傳回項目的清單。

nextToken

如果結果可能更多, 會nextToken包含分頁字符,您可以在另一個請求中使用。 AWS AppSync 會加密和混淆從 DynamoDB 傳回的分頁字符。這樣可確保資料表的資料不會不慎洩漏給發起人。此外,這些分頁字符不能用於不同的函數或解析程式。

scannedCount

在套用篩選條件表達式 (如果有) 之前,DynamoDB 擷取的項目數量。

startedAt

開始同步操作時,可以在本機存放並在另一個請求中做為 lastSync 引數的時間 (以 epoch 毫秒為單位)。如果請求中包含分頁字符,則該值將與請求針對第一頁結果傳回的值相同。

範例

下列範例是 GraphQL 查詢的函數請求處理常式:syncPosts(nextToken: String, lastSync: AWSTimestamp)

在此範例中,如果省略 lastSync,則會傳回 Base 資料表中的所有項目。如果提供 lastSync,只會傳回自 lastSync 變更之 Delta Sync 資料表中的項目。

export function request(ctx) { const { nextToken, lastSync } = ctx.args; return { operation: 'Sync', limit: 100, nextToken, lastSync }; }

在本頁面

下一個主題:

BatchGetItem

上一個主題:

Scan
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。