Sincronizar - AWS AppSync

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 establecerse Sync. 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 son 1000 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 de lastSync. Este campo es opcional y solo debe rellenarse después de haber recuperado todas las páginas de una operación Sync 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ón Sync 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ón Sync en toda la tabla de almacenamiento Delta cuando la tabla utiliza una clave de partición personalizada. La Sync 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)) }