Notes d'utilisation de DynamoDB Local - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Notes d'utilisation de DynamoDB Local

À l'exception du point de terminaison, les applications qui s'exécutent avec la version téléchargeable d'Amazon DynamoDB doivent également utiliser le service web DynamoDB. Cependant, lorsque vous utilisez DynamoDB localement, vous devez être conscient de ce qui suit :

  • Si vous utilisez -sharedDb cette option, DynamoDB crée un seul fichier de base de données nommé .db. shared-local-instance Tous les programmes qui se connectent à DynamoDB accèdent à ce fichier. Si vous supprimez le fichier, vous perdez toutes les données que vous y avez stockées.

  • Si vous omettez-sharedDb, le fichier de base de données s'appelle myaccesskeyid_region.db, avec l'ID de clé AWS d'accès et AWS la région tels qu'ils apparaissent dans la configuration de votre application. Si vous supprimez le fichier, vous perdez toutes les données que vous y avez stockées.

  • Si vous utilisez l'option -inMemory, DynamoDB n'écrit aucun fichier de base de données. Au lieu de cela, toutes les données sont écrites en mémoire et ne sont pas enregistrées lorsque vous arrêtez DynamoDB.

  • Si vous utilisez l'option -inMemory, l'option -sharedDb est également nécessaire.

  • Si vous utilisez l'option -optimizeDbBeforeStartup, vous devez également spécifier le paramètre -dbPath de sorte que DynamoDB puisse trouver son fichier de base de données.

  • Les AWS SDK pour DynamoDB nécessitent que la configuration de votre application spécifie une valeur de clé d'accès et une valeur de région. AWS DynamoDB utilise ces valeurs pour nommer le fichier de base de données local, sauf si vous utilisez l'option -sharedDb ou -inMemory. Il n'est pas nécessaire que ces AWS valeurs soient valides pour être exécutées localement. Vous pouvez trouver pratique de choisir des valeurs valides afin de pouvoir exécuter votre code dans le cloud en modifiant simplement le point de terminaison que vous utilisez.

  • DynamoDB local renvoie toujours une valeur nulle pour billingModeSummary.

  • La variable d'environnement AWS_ACCESS_KEY_ID de DynamoDB local ne peut contenir que des lettres (A à Z, a à z) et des chiffres (0 à 9).

Options de ligne de commande

Avec la version téléchargeable de DynamoDB, vous pouvez utiliser les options de ligne de commande suivantes :

  • -corsvalue— Permet la prise en charge du partage de ressources entre origines (CORS) pour. JavaScript Vous devez fournir une liste « allow » séparée par des virgules de domaines spécifiques. Le paramètre par défaut de -cors est un astérisque (*), qui autorise l'accès public.

  • -dbPath value – Répertoire dans lequel DynamoDB écrit son fichier de base de données. Si vous ne spécifiez pas cette option, le fichier est écrit dans le répertoire actuel. Vous ne pouvez pas spécifier à la fois -dbPath et -inMemory.

  • -delayTransientStatuses – Amène DynamoDB à introduire des retards pour certaines opérations. DynamoDB (version téléchargeable) peut effectuer certaines tâches presque instantanément, telles que des opérations de création, de mise à jour ou de suppression sur des tables et des index. Cependant, le service DynamoDB nécessite plus de temps pour exécuter ces tâches. La définition de ce paramètre permet à DynamoDB s'exécutant sur votre ordinateur de simuler plus fidèlement le comportement du service web DynamoDB. (Actuellement, ce paramètre provoque des retards uniquement pour les index secondaires globaux dont l'état est CREATING ou DELETING.)

  • -help – Affiche un récapitulatif de l'utilisation et des options.

  • -inMemory – DynamoDB s'exécute en mémoire au lieu d'utiliser un fichier de base de données. Lorsque vous arrêtez DynamoDB, aucune des données n'est enregistrée. Vous ne pouvez pas spécifier à la fois -dbPath et -inMemory.

  • -optimizeDbBeforeStartup – Optimise les tables de base de données sous-jacentes avant de démarrer DynamoDB sur votre ordinateur. Vous devez également spécifier -dbPath lorsque vous utilisez ce paramètre.

  • -port value – Numéro de port que DynamoDB utilise pour communiquer avec votre application. Si vous ne spécifiez pas cette option, le port par défaut est 8000.

    Note

    DynamoDB utilise le port 8000 par défaut. Si le port 8000 n'est pas disponible, cette commande lève une exception. Vous pouvez utiliser l'option -port pour spécifier un autre numéro de port. Pour obtenir la liste complète des options d'exécution de DynamoDB, dont -port, entrez la commande suivante :

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

  • -sharedDb – Si vous spécifiez -sharedDb, DynamoDB utilise un fichier de base de données unique au lieu de fichiers distincts pour chaque identification et région.

  • -disableTelemetry : lorsque cette option est spécifiée, DynamoDB Local n'envoie aucune donnée de télémétrie.

  • -version— Imprime la version locale de DynamoDB.

Définition du point de terminaison local

Par défaut, les AWS SDK et les outils utilisent des points de terminaison pour le service Web Amazon DynamoDB. Pour utiliser les outils et les kits SDK avec la version téléchargeable de DynamoDB, vous devez spécifier le point de terminaison local :

http://localhost:8000

AWS Command Line Interface

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour interagir avec DynamoDB téléchargeable. Par exemple, vous pouvez l'utiliser pour effectuer toutes les étapes de Création de tables et chargement de données pour des exemples de code dans DynamoDB.

Pour accéder à DynamoDB s'exécutant localement, utilisez le paramètre --endpoint-url. Voici un exemple d'utilisation du AWS CLI pour répertorier les tables de DynamoDB sur votre ordinateur.

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

AWS CLI Impossible d'utiliser la version téléchargeable de DynamoDB comme point de terminaison par défaut. Par conséquent, vous devez le spécifier --endpoint-url à chaque AWS CLI commande.

AWS SDK

La façon dont vous spécifiez un point de terminaison dépend du langage de programmation et du kit SDK AWS que vous utilisez. Les sections suivantes décrivent comment le faire :

Note

Pour obtenir des exemples en d'autres langages de programmation, consultez Mise en route avec DynamoDB et les kits AWS SDK.

Différences entre la version téléchargeable de DynamoDB et le service web DynamoDB

La version téléchargeable de DynamoDB est destinée uniquement à des fins de développement et de test. En comparaison, le service web DynamoDB est un service géré doté de fonctions de mise à l'échelle, de disponibilité et de durabilité, qui en font une solution idéale pour un usage en mode production.

Les différences entre la version téléchargeable de DynamoDB et le service web sont les suivantes :

  • Régions AWS et distincts ne Comptes AWS sont pas pris en charge au niveau du client.

  • Les paramètres de débit approvisionné sont ignorés dans la version téléchargeable de DynamoDB, même si l'opération CreateTable les requiert. Pour CreateTable, vous pouvez spécifier les nombres de votre choix pour le débit provisionné en lecture et en écriture, même si ces chiffres ne sont pas utilisés. Vous pouvez appeler UpdateTable autant de fois que vous le souhaitez par jour. Cependant, les modifications des valeurs du débit provisionné sont ignorées.

  • Les opérations Scan sont exécutées de façon séquentielle. Les analyses parallèles ne sont pas prises en charge. Les paramètres Segment et TotalSegments de l'opération Scan sont ignorés.

  • La vitesse des opérations de lecture et d'écriture sur les données de la table est limitée uniquement par la vitesse de votre ordinateur. Les opérations CreateTable, UpdateTable et DeleteTable se produisent immédiatement, et l'état de la table est toujours ACTIVE. Les opérations UpdateTable qui modifient uniquement les paramètres de débit provisionné sur les tables ou les index secondaires globaux se produisent immédiatement. Si une opération UpdateTable crée ou supprime des index secondaires globaux, ces index passent par les états normaux (tels que CREATING et DELETING, respectivement) avant d'acquérir l'état ACTIVE. La table demeure ACTIVE pendant ce temps.

  • Les opérations de lecture sont éventuellement cohérentes. Cependant, en raison de la vitesse d'exécution de DynamoDB sur votre ordinateur, la plupart des lectures apparaissent fortement cohérentes.

  • Les métriques des collections d'élément ne sont pas suivies, ni leurs tailles. Dans les réponses des opérations, les valeurs null sont retournées à la place des métriques des collections d'élément.

  • Dans DynamoDB, les données retournées sont limitées à 1 Mo par jeu de résultats. Tant le service web que la version téléchargeable de DynamoDB appliquent cette limite. Cependant, lorsque vous interrogez un index, le service DynamoDB calcule uniquement la taille de la clé et des attributs projetés. En revanche, la version téléchargeable de DynamoDB calcule la taille de l'élément entier.

  • Si vous utilisez DynamoDB Streams, la vitesse de création des partitions peut varier. Dans le service web DynamoDB, le comportement de création de partition est partiellement influencé par l'activité de partition de table. Lorsque vous exécutez DynamoDB localement, il n'existe aucun partitionnement de table. Dans les deux cas, comme les partitions sont éphémères, votre application ne doit pas être dépendante du comportement des partitions.

  • TransactionConflictExceptionsne sont pas générés par DynamoDB téléchargeable pour les API transactionnelles. Nous vous recommandons d'utiliser une infrastructure de simulation Java pour simuler des TransactionConflictExceptions dans le gestionnaire DynamoDB pour tester comment votre application répond dans le cas de transactions en conflit.

  • Dans le service Web DynamoDB, qu'il soit accessible via la console ou le, les noms des tables distinguent AWS CLI les majuscules et minuscules. Une table nommée Authors et une table nommée authors peuvent toutes deux exister comme tables distinctes. Dans la version téléchargeable, les noms de table ne sont pas sensibles à la casse, et la tentative de créer ces deux tables se traduira par une erreur.

  • Le balisage n'est pas pris en charge dans la version téléchargeable de DynamoDB.

  • La version téléchargeable de DynamoDB ignore le paramètre Limit dans. ExecuteStatement