Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Control de versiones de fuentes de datos de DynamoDB en AWS AppSync

Modo de enfoque
Control de versiones de fuentes de datos de DynamoDB en AWS AppSync - AWS AppSync GraphQL

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.

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.

AWS AppSync actualmente admite el control de versiones en fuentes de datos de DynamoDB. Las operaciones de detección de conflictos, resolución de conflictos y sincronización requieren un origen de datos de tipo Versioned. Al habilitar el control de versiones en una fuente de datos, automáticamente: AWS AppSync

  • Mejorar los elementos con metadatos de control de versiones de objetos.

  • Registra los cambios realizados en los elementos con AWS AppSync mutaciones en una tabla Delta.

  • Mantener los elementos eliminados en la tabla Base con una “lápida” durante un período de tiempo configurable.

Configuración de orígenes de datos con control de versiones

Al habilitar el control de versiones en un origen de datos de DynamoDB, especifique los siguientes campos:

BaseTableTTL

El número de minutos que se conservarán los elementos eliminados en la tabla Base con una “lápida”, un campo de metadatos que indica que el elemento se ha eliminado. Puede establecer este valor en 0 si desea que los elementos se supriman inmediatamente cuando se eliminen. Este campo es obligatorio.

DeltaSyncTableName

El nombre de la tabla en la que se guardan los cambios realizados en los elementos con AWS AppSync mutaciones. Este campo es obligatorio.

DeltaSyncTableTTL

Número de minutos que se deben conservar los elementos en la tabla Delta. Este campo es obligatorio.

Registro de tablas de sincronización Delta

AWS AppSync actualmente es compatible con Delta Sync Logging para mutaciones mediante operaciones PutItem de DeleteItem DynamoDB y DynamoDB. UpdateItem

Cuando una AWS AppSync mutación cambia un elemento de una fuente de datos versionada, se almacenará un registro de ese cambio en una tabla Delta optimizada para las actualizaciones incrementales. Puede optar por utilizar diferentes tablas Delta (por ejemplo, una por tipo, una por área de dominio) para otras fuentes de datos versionadas o una sola tabla Delta para su API. AWS AppSync recomienda no utilizar una sola tabla Delta para varias, APIs a fin de evitar la colisión de las claves principales.

El esquema requerido para esta tabla es el siguiente:

ds_pk

Valor de cadena que se utiliza como clave de partición. Se construye concatenando el nombre del origen de datos Base y el formato ISO 8601 de la fecha en que se produjo el cambio (p. ej. Comments:2019-01-01).

Cuando el customPartitionKey indicador de la plantilla de mapeo de VTL se establece como nombre de columna de la clave de partición (consulte Resolver Mapping Template Reference for DynamoDB en AWS AppSync la Guía para desarrolladores), el formato ds_pk cambia y la cadena se construye añadiéndole el valor de la clave de partición en el nuevo registro de la tabla base. Por ejemplo, si el registro de la tabla Base tiene un valor de clave de partición 1a y un valor de clave de clasificación 2b, el nuevo valor de la cadena será: Comments:2019-01-01:1a.

ds_sk

Valor de cadena que se utiliza como clave de ordenación. Se construye concatenando el formato ISO 8601 del momento en que se produjo el cambio, la clave principal del elemento y la versión del elemento. La combinación de estos campos garantiza la unicidad de cada entrada de la tabla Delta (por ejemplo, si la hora es 09:30:00, el ID es 1a y la versión es 2, el valor sería 09:30:00:1a:2).

Cuando el customPartitionKey indicador de la plantilla de mapeo de VTL se establece en el nombre de columna de la clave de partición (consulte Resolver Mapping Template Reference for DynamoDB en AWS AppSync la Guía para desarrolladores), el formato cambia y la cadena se crea sustituyendo el valor ds_sk de la clave de combinación por el valor de la clave de clasificación de la tabla base. Con el ejemplo anterior, si el registro de la tabla Base tiene un valor de clave de partición 1a y un valor de clave de clasificación 2b, el nuevo valor de la cadena será: 09:30:00:2b:3.

_ttl

Valor numérico que almacena la marca de tiempo, en segundos transcurridos desde la fecha de inicio, en cuyo momento se debe suprimir un elemento de la tabla Delta. Este valor se determina agregando el valor DeltaSyncTableTTL configurado en el origen de datos al momento en que se produjo el cambio. Este campo debe configurarse como el atributo TTL de DynamoDB.

El rol de IAM configurado para su uso con la tabla Base también debe contener permisos para operar con la tabla Delta. En este ejemplo, se muestra la política de permisos para una tabla Base denominada Comments y una tabla Delta denominada ChangeLog:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Resource": [ "arn:aws:dynamodb:us-east-1:000000000000:table/Comments", "arn:aws:dynamodb:us-east-1:000000000000:table/Comments/*", "arn:aws:dynamodb:us-east-1:000000000000:table/ChangeLog", "arn:aws:dynamodb:us-east-1:000000000000:table/ChangeLog/*" ] } ] }

Metadatos de orígenes de datos con control de versiones

AWS AppSync administra los campos de metadatos de las fuentes Versioned de datos en su nombre. Si modifica estos campos usted mismo, puede causar errores en la aplicación o pérdida de datos. Estos campos incluyen:

_version

Un contador con aumento monotónico que se actualiza cada vez que se produce un cambio en un elemento.

_lastChangedAt

Un valor numérico que almacena la marca de tiempo, en milisegundos transcurridos desde la fecha de inicio, en cuyo momento se modificó por última vez un elemento.

_deleted

Un valor booleano de “lápida” que indica que se ha eliminado un elemento. Pueden utilizarlo las aplicaciones para desalojar elementos eliminados de los almacenes de datos locales.

_ttl

Valor numérico que almacena la marca de tiempo, en segundos transcurridos desde la fecha de inicio, en cuyo momento se debe suprimir un elemento del origen de datos subyacente.

ds_pk

Un valor de cadena que se utiliza como clave de partición para las tablas Delta.

ds_sk

Un valor de cadena que se utiliza como clave de ordenación para las tablas Delta.

gsi_ds_pk

Un atributo de valor de cadena que se genera para soportar un índice secundario global como clave de partición. Solo se incluirá si los populateIndexFields indicadores customPartitionKey y están habilitados en la plantilla de mapeo de VTL (consulte la referencia de plantillas de mapeo de Resolver para DynamoDB en AWS AppSync la Guía para desarrolladores). Si está habilitada, el valor se generará concatenando el nombre de el origen de datos Base y el formato ISO 8601 de la fecha en que se produjo el cambio (por ejemplo, si la tabla Base se denomina Comentarios, este registro se establecerá como Comments:2019-01-01).

gsi_ds_sk

Un atributo de valor de cadena que se genera para soportar un índice secundario global como clave de clasificación. Solo se incluirá si los populateIndexFields indicadores customPartitionKey y están habilitados en la plantilla de mapeo de VTL (consulte la referencia de plantillas de mapeo de Resolver para DynamoDB en AWS AppSync la Guía para desarrolladores). Si están habilitadas, el valor se generará concatenando el formato ISO 8601 de la hora en que se produjo el cambio, la clave de partición del elemento de la tabla Base, la clave de clasificación del elemento de la tabla Base y la versión del elemento (por ejemplo, para la hora 09:30:00, un valor de clave de partición 1a, un valor de clave de clasificación 2b y una versión 3, sería 09:30:00:1a#2b:3).

Estos campos de metadatos afectarán al tamaño total de los elementos de la fuente de datos subyacente. AWS AppSync recomienda reservar 500 bytes o más el tamaño máximo de almacenamiento de la clave principal para los metadatos de las fuentes de datos versionadas al diseñar la aplicación. Para utilizar estos metadatos en aplicaciones cliente, incluya los campos _deleted, _version y _lastChangedAt en los tipos de GraphQL y en el conjunto de selección de mutaciones.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.