Notas sobre el uso local de DynamoDB - Amazon DynamoDB

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.

Notas sobre el uso local de DynamoDB

Excepto en lo tocante al punto de enlace, las aplicaciones que se ejecutan con la versión descargable de Amazon DynamoDB en el sistema deberían funcionar también con el servicio web de DynamoDB. Sin embargo, si utiliza DynamoDB localmente, debe tener en cuenta lo siguiente:

  • Si usa -sharedDb esta opción, DynamoDB crea un único archivo de base de datos denominado .db. shared-local-instance Todos los programas que se conectan con DynamoDB obtienen acceso a este archivo. Si elimina el archivo, perderá todos los datos que haya guardado en él.

  • Si lo omite-sharedDb, el archivo de base de datos se denomina myaccesskeyid_region.db, con el identificador de la clave de AWS acceso y la AWS región tal y como aparecen en la configuración de la aplicación. Si elimina el archivo, perderá todos los datos que haya guardado en él.

  • Si usa la opción -inMemory, DynamoDB no escribe ningún archivo de base de datos. En lugar de ello, todos los datos se escriben en la memoria y ninguno de ellos se guarda cuando cierra DynamoDB.

  • Si utiliza la opción -inMemory, también será necesaria la opción -sharedDb.

  • Si utiliza la opción -optimizeDbBeforeStartup, también debe especificar el parámetro -dbPath para que DynamoDB pueda encontrar el archivo de base de datos.

  • Los AWS SDK para DynamoDB requieren que la configuración de la aplicación especifique un valor de clave de acceso y un valor de región. AWS A no ser que utilice la opción -sharedDb o -inMemory, DynamoDB usará estos valores para asignar el nombre al archivo de base de datos local. Estos valores no tienen que ser AWS valores válidos para ejecutarse localmente. Sin embargo, tal vez le convenga utilizar valores válidos para que pueda ejecutar el código en la nube más adelante cambiando simplemente el punto de enlace que esté utilizando.

  • DynamoDB local siempre devuelve un valor nulo para billingModeSummary.

  • AWS_ACCESS_KEY_ID de DynamoDB local solo puede contener letras (A-Z, a-z) y números (0-9).

Opciones de línea de comandos

Puede usar las siguientes opciones de línea de comandos con la versión descargable de DynamoDB:

  • -corsvalue— Habilita la compatibilidad con el intercambio de recursos entre orígenes (CORS) para. JavaScript Debe proporcionar una lista de dominios específicos "permitidos" separados por comas. El ajuste predeterminado para -cors es el asterisco (*), que permite el acceso público.

  • -dbPath value: directorio donde DynamoDB escribe el archivo de base de datos. Si no especifica esta opción, el archivo se escribe en el directorio actual. Puede especificar tanto -dbPath como -inMemory a la vez.

  • -delayTransientStatuses: hace que DynamoDB presente retardos para algunas operaciones. DynamoDB (versión descargable) puede realizar algunas tareas casi instantáneamente, como operaciones de creación, actualización y eliminación en tablas e índices. Sin embargo, el servicio de DynamoDB requiere más tiempo para estas tareas. El establecimiento de este parámetro ayuda a que DynamoDB ejecutándose en su ordenador simule mejor el comportamiento del servicio web de DynamoDB. En la actualidad, este parámetro introduce retardos solo para los índices secundarios globales que se encuentran en el estado CREATING o DELETING.

  • -help: imprime un resumen de uso y las opciones posibles.

  • -inMemory: DynamoDB se ejecuta en memoria, en lugar de usar un archivo de base de datos. Cuando detenga DynamoDB, no se guardará ninguno de los datos. Puede especificar tanto -dbPath como -inMemory a la vez.

  • -optimizeDbBeforeStartup: optimiza las tablas de la base de datos subyacente antes de iniciar DynamoDB en el ordenador. Si utiliza este parámetro, también debe especificar -dbPath.

  • -port value: número de puerto que DynamoDB utiliza para comunicarse con la aplicación. Si no especifica esta opción, el puerto predeterminado es 8000.

    nota

    De manera predeterminada, DynamoDB usa el puerto 8000. Si el puerto 8000 no está disponible, este comando genera una excepción. Puede usar la opción -port para especificar otro número de puerto. Para obtener una lista completa de opciones de tiempo de ejecución de DynamoDB, incluida -port, escriba este comando:

    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help

  • -sharedDb: si especifica -sharedDb, DynamoDB utiliza un solo archivo de base de datos, en lugar de archivos distintos para cada credencial y región.

  • -disableTelemetry: si se especifica, DynamoDB local no enviará ninguna telemetría.

  • -version— Imprime la versión de DynamoDB local.

Configuración del punto de conexión local

De forma predeterminada, los AWS SDK y las herramientas utilizan puntos de enlace para el servicio web Amazon DynamoDB. Para utilizar los SDK y las herramientas con la versión descargable de DynamoDB, debe especificar el punto de enlace local:

http://localhost:8000

AWS Command Line Interface

Puede usar AWS Command Line Interface (AWS CLI) para interactuar con DynamoDB descargable. Por ejemplo, puede utilizarla para realizar todos los pasos de Creación de tablas y carga de datos para ejemplos de código en DynamoDB.

Para acceder a la instancia de DynamoDB que se ejecuta localmente, use el parámetro --endpoint-url. A continuación se muestra un ejemplo del uso de AWS CLI para enumerar las tablas de DynamoDB en su equipo.

aws dynamodb list-tables --endpoint-url http://localhost:8000
nota

No AWS CLI pueden usar la versión descargable de DynamoDB como punto final predeterminado. Por lo tanto, debe especificarlo --endpoint-url con cada AWS CLI comando.

AWS SDK

La forma de especificar el punto de enlace depende del lenguaje de programación y del SDK de AWS que se utilizan en cada caso. En las secciones siguientes se describe cómo hacerlo:

nota

Para ver ejemplos en otros lenguajes de programación, consulte Introducción a DynamoDB y los SDK de AWS.

Diferencias entre la versión descargable de DynamoDB y el servicio web de DynamoDB

La versión descargable de DynamoDB se ha desarrollado únicamente para tareas de desarrollo y comprobación. Por el contrario, el servicio web de DynamoDB es un servicio administrado con características de escalabilidad, disponibilidad y durabilidad que resulta ideal para utilizarlo en producción.

La versión descargable de DynamoDB se diferencia del servicio web en lo siguiente:

  • Regiones de AWS y los distintos no Cuentas de AWS se admiten a nivel de cliente.

  • Los ajustes de rendimiento aprovisionado se omiten en la versión descargable de DynamoDB, aunque la operación CreateTable los requiera. Para CreateTable, puede especificar cualquier cifra que desee de desempeño provisionado de lectura y escritura, si bien estas cifras no se utilizarán. Puede llamar a UpdateTable tantas veces como desee al día. Sin embargo, se omiten los cambios en los valores de desempeño provisionado.

  • Las operaciones Scan se llevan a cabo secuencialmente. No se admiten los exámenes en paralelo. Los parámetros Segment y TotalSegments de la operación Scan se pasan por alto.

  • La velocidad de las operaciones de lectura y escritura en los datos de la tabla solamente se ve limitada por la velocidad del equipo. Las operaciones CreateTable, UpdateTable y DeleteTable se llevan a cabo de inmediato y el estado de la tabla siempre es ACTIVE. Las operaciones UpdateTable que solo cambian los ajustes de desempeño provisionado de las tablas y/o los índices secundarios globales se realizan de inmediato. Si una operación UpdateTable crea o elimina los índices secundarios globales, estos índices pasan sucesivamente por los estados normales (tales como CREATING o DELETING, respectivamente) antes de entrar en el estado ACTIVE. La tabla permanece en el estado ACTIVE durante este tiempo.

  • Las operaciones de lectura son de consistencia final. No obstante, debido a la velocidad de DynamoDB cuando se ejecuta en el ordenador, la mayoría de las lecturas parecerán ser de coherencia alta.

  • No se realiza el seguimiento de las métricas ni de los tamaños de las colecciones de elementos. En las respuestas a las operaciones, se devuelven valores Null en lugar de las métricas de las colecciones de elementos.

  • En DynamoDB, existe un límite de 1 MB para los datos devueltos en cada conjunto de resultados. Tanto el servicio web de DynamoDB como la versión descargable imponen este límite. Sin embargo, al consultar un índice, el servicio de DynamoDB solo calcula el tamaño de la clave y los atributos previstos. En cambio, la versión descargable de DynamoDB calcula el tamaño del elemento completo.

  • Si utiliza DynamoDB Streams, la velocidad a la que se crean las particiones puede ser diferente. En el servicio web de DynamoDB, el comportamiento de creación de particiones depende en parte de la actividad de partición de la tabla. Cuando ejecuta DynamoDB localmente, la tabla no se particiona. La aplicación no debe depender del comportamiento de los fragmentos, puesto que son efímeros en ambos casos.

  • TransactionConflictExceptionsno se utilizan en las API descargables de DynamoDB para transacciones. Le recomendamos que utilice una plataforma de simulación de Java para simular TransactionConflictExceptions en el controlador de DynamoDB y probar cómo responde la aplicación a las transacciones conflictivas.

  • En el servicio web de DynamoDB, tanto si se accede a través de la consola como de la, los nombres de las tablas distinguen AWS CLI mayúsculas de minúsculas. Una tabla llamada Authors y otra llamada authors pueden existir como tablas independientes. En la versión descargable, los nombres de las tablas no distinguen entre mayúsculas y minúsculas y si intenta crear estas dos tablas se producirá un error.

  • La versión descargable de DynamoDB no admite el etiquetado.

  • La versión descargable de DynamoDB ignora el parámetro Limit in. ExecuteStatement