Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Sincronizar
El documento de mapeo de solicitudes de Sync
permite recuperar todos los resultados de una tabla de DynamoDB y, a continuación, recibir tan solo los datos alterados desde la última consulta (las actualizaciones delta). Únicamente se pueden realizar solicitudes Sync
a orígenes de datos con control de versiones de DynamoDB. Puede especificar lo siguiente:
-
Un filtro para excluir resultados
-
Cuántos elementos deben devolverse.
-
Token de paginación
-
Cuando se inició la última operación
Sync
El documento de mapeo de Sync
tiene la siguiente estructura:
{ "version" : "2018-05-29", "operation" : "Sync", "basePartitionKey": "Base Tables PartitionKey", "deltaIndexName": "delta-index-name", "limit" : 10, "nextToken" : "aPaginationToken", "lastSync" : 1550000000000, "filter" : { ... } }
Los campos se definen de la siguiente manera:
Campos de Sync
-
version
-
La versión de la definición de plantilla. Solo se admite
2018-05-29
actualmente. Este valor es obligatorio. -
operation
-
La operación de DynamoDB que se ha de realizar. Para ejecutar la operación
Sync
de , en este valor debe establecerseSync
. Este valor es obligatorio. -
filter
-
Un filtro que se puede utilizar para filtrar los resultados de DynamoDB antes de que se devuelvan. Para obtener más información acerca de los filtros, consulte Filtros. Este campo es opcional.
-
limit
-
El número máximo de elementos que se evalúan en una sola vez. Este campo es opcional. Si se omite, el límite predeterminado se establecerá en
100
elementos. El valor máximo de este campo son1000
elementos. -
nextToken
-
El token de paginación para continuar una consulta anterior. Se debe obtener de una consulta anterior. Este campo es opcional.
-
lastSync
-
El momento, en milisegundos transcurridos desde la fecha de inicio, en el que comenzó la última operación
Sync
que se ha realizado correctamente. Si se especifica, solo se devuelven los elementos que han cambiado después delastSync
. Este campo es opcional y solo debe rellenarse después de haber recuperado todas las páginas de una operaciónSync
inicial. Si se omite, se devolverán los resultados de la tabla Base; de lo contrario, se devolverán los resultados de la tabla Delta. basePartitionKey
-
Clave de partición de la tabla Base utilizada al realizar una operación
Sync
. Este campo permite realizar una operaciónSync
cuando la tabla utiliza una clave de partición personalizada. Se trata de un campo opcional. deltaIndexName
-
Índice utilizado para la operación
Sync
. Este índice es necesario para habilitar una operaciónSync
en toda la tabla de almacenamiento Delta cuando la tabla utiliza una clave de partición personalizada. LaSync
operación se realizará en el GSI (creado en y).gsi_ds_pk
gsi_ds_sk
Este campo es opcional.
Los resultados devueltos por la sincronización de DynamoDB se convierten automáticamente en GraphQL y tipos primitivos JSON y están disponibles en el contexto de mapeo (). $context.result
Para obtener más información sobre la conversión de tipos de DynamoDB, consulte la sección Sistema de tipos (mapeo de respuestas).
Para obtener más información acerca de las plantillas de mapeo de respuesta, consulte Información general sobre las plantillas de mapeo de solucionador.
Los resultados tienen la estructura siguiente:
{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10, startedAt = 1550000000000 }
Los campos se definen de la siguiente manera:
-
items
-
Una lista que contiene los elementos que devuelve la sincronización.
-
nextToken
-
Si hay más resultados,
nextToken
contiene un token de paginación que puede usar en otra solicitud. AWS AppSync cifra y oculta el token de paginación devuelto por DynamoDB. Esto evita que los datos de las tablas se filtren accidentalmente al intermediario. Además, estos tokens de paginación no se pueden utilizar en diferentes solucionadores. -
scannedCount
-
El número de elementos que DynamoDB ha recuperado antes de aplicar una expresión de filtro (en caso de incluirse).
-
startedAt
-
El momento, en milisegundos transcurridos desde la fecha de inicio, en el que comenzó la operación de sincronización que puede almacenar localmente y usar en otra solicitud como argumento de
lastSync
. Si se incluyó un token de paginación en la solicitud, este valor será el mismo que el devuelto por la solicitud para la primera página de resultados.
Ejemplo
El siguiente ejemplo muestra una plantilla de mapeo de una consulta de GraphQL: syncPosts(nextToken: String, lastSync: AWSTimestamp)
.
En este ejemplo, si se omite lastSync
, se devuelven todas las entradas de la tabla base. Si se proporciona lastSync
, solo se devuelven las entradas de la tabla Delta Sync que han cambiado desde 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)) }