DynamoDB-Local-Nutzungshinweise - Amazon-DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

DynamoDB-Local-Nutzungshinweise

Mit Ausnahme des Endpunkts sollten Anwendungen, die mit der herunterladbaren Version von Amazon DynamoDB ausgeführt werden, auch mit dem DynamoDB-Webservice funktionieren. Bei der lokalen Verwendung von DynamoDB sollten Sie allerdings Folgendes beachten:

  • Wenn Sie die -sharedDb Option verwenden, erstellt DynamoDB eine einzelne Datenbankdatei mit dem Namen shared-local-instance .db. Jedes Programm, das eine Verbindung mit DynamoDB herstellt, greift auf diese Datei zu. Wenn Sie die Datei löschen, gehen alle darin gespeicherten Daten verloren.

  • Wenn Sie sie weglassen-sharedDb, hat die Datenbankdatei den Namen myaccesskeyid_region.db, mit dem AWS Zugriffsschlüssel-ID und AWS Region, wie sie in Ihrer Anwendungskonfiguration erscheinen. Wenn Sie die Datei löschen, gehen alle darin gespeicherten Daten verloren.

  • Bei Verwendung der -inMemory-Option schreibt DynamoDB keine Datenbankdateien. Stattdessen werden alle Daten im Arbeitsspeicher abgelegt und beim Beenden von DynamoDB nicht gespeichert.

  • Wenn Sie die -inMemory-Option verwenden, ist die -sharedDb-Option ebenfalls erforderlich.

  • Bei Verwendung der Option -optimizeDbBeforeStartup müssen Sie auch den -dbPath-Parameter angeben, damit DynamoDB die entsprechende Datenbankdatei finden kann.

  • Das Tool AWS SDKsfür DynamoDB müssen Sie in Ihrer Anwendungskonfiguration einen Zugriffsschlüsselwert angeben und AWS Wert für die Region. DynamoDB verwendet diese Werte, um die lokale Datenbankdatei zu benennen, sofern Sie nicht die Option -sharedDb oder -inMemory verwenden. Diese Werte müssen nicht gültig sein AWS Werte, die lokal ausgeführt werden sollen. Möglicherweise ist es jedoch komfortabler, gültige Werte zu verwenden, damit Sie Ihren Code später in der Cloud ausführen können, indem Sie den verwendeten Endpunkt ändern.

  • DynamoDB Local gibt für billingModeSummary. immer null zurück

  • DynamoDB Local AWS_ACCESS_KEY_ID kann nur Buchstaben (A–Z, a–z) und Zahlen (0–9) enthalten.

  • DynamoDB local unterstützt P oint-in-time Recovery () PITR nicht.

Befehlszeilenoptionen

Mit der herunterladbaren Version von DynamoDB können Sie die folgenden Befehlszeilenoptionen verwenden:

  • -corsvalue— Aktiviert die Unterstützung für ursprungsübergreifende gemeinsame Nutzung von Ressourcen () CORS für. JavaScript Sie müssen eine durch Komma getrennte Liste zum Zulassen spezifischer Domänen bereitstellen. Die Standardeinstellung für -cors ist ein Stern (*), der öffentlichen Zugriff zulässt.

  • -dbPath value – Das Verzeichnis, in das DynamoDB seine Datenbankdatei schreibt. Wenn Sie diese Option nicht angeben, wird die Datei in das aktuelle Verzeichnis geschrieben. Sie können nicht -dbPath und -inMemory gleichzeitig angeben.

  • -delayTransientStatuses – Veranlasst DynamoDB, Verzögerungen für bestimmte Operationen einzuführen. DynamoDB (herunterladbare Version) kann einige Aufgaben fast sofort ausführen, wie beispielsweise das Erstellen/Aktualisieren/Löschen von Operationen in Tabellen und Indizes. Der Service DynamoDB benötigt für diese Aufgaben jedoch mehr Zeit. Durch Festlegen dieses Parameters kann DynamoDB bei Ausführung auf einem Computer das Verhalten des DynamoDB-Webservices besser simulieren. (Derzeit führt dieser Parameter nur für globale Sekundärindizes zu Verzögerungen, die sich entweder im DELETINGStatus CREATINGOder befinden.)

  • -help – Druckt eine Nutzungszusammenfassung sowie Optionen.

  • -inMemory – DynamoDB wird im Speicher anstatt mit einer Datenbankdatei ausgeführt. Wenn Sie DynamoDB beenden, werden keine Daten gespeichert. Sie können nicht -dbPath und -inMemory gleichzeitig angeben.

  • -optimizeDbBeforeStartup – Optimiert die zugrunde liegenden Datenbanktabellen vor dem Start von DynamoDB auf Ihrem Computer. Wenn Sie diesen Parameter verwenden, müssen Sie außerdem -dbPath angeben.

  • -port value – Die Portnummer, die DynamoDB für die Kommunikation mit Ihrer Anwendung verwendet. Wenn Sie diese Option nicht angeben, lautet der Standardport 8000.

    Anmerkung

    DynamoDB verwendet standardmäßig Port 8000. Wenn Port 8000 nicht verfügbar ist, wird eine Ausnahme ausgelöst. Mit der Option -port können Sie eine andere Portnummer angeben. Um eine vollständige Liste der DynamoDB-Laufzeitoptionen, einschließlich -port, zu erhalten, geben Sie folgenden Befehl ein:

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

  • -sharedDb-sharedDb DynamoDB verwendet eine einzige Datenbankdatei anstatt separater Dateien für jede Anmeldeinformation und Region.

  • -disableTelemetry: Wenn dies angegeben ist, sendet DynamoDB Local keine Telemetrie.

  • -version— Druckt die lokale Version von DynamoDB.

Festlegen des lokalen Endpunkts

Standardmäßig ist die AWS SDKsund Tools verwenden Endpunkte für den Amazon DynamoDB DynamoDB-Webservice. Um die Tools SDKs und mit der herunterladbaren Version von DynamoDB zu verwenden, müssen Sie den lokalen Endpunkt angeben:

http://localhost:8000

AWS Command Line Interface

Sie können das AWS Command Line Interface (AWS CLI), um mit herunterladbarem DynamoDB zu interagieren. Sie können damit beispielsweise alle Schritte in Erstellen von Tabellen und Laden von Daten für Codebeispiele in DynamoDB ausführen.

Verwenden Sie den --endpoint-url-Parameter , um auf die lokal ausgeführte DynamoDB-Version zuzugreifen. Im Folgenden finden Sie ein Beispiel für die Verwendung von AWS CLI um die Tabellen in DynamoDB auf Ihrem Computer aufzulisten.

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

Das Tool AWS CLI kann die herunterladbare Version von DynamoDB nicht als Standardendpunkt verwenden. Daher müssen Sie bei jedem angeben --endpoint-url AWS CLI Befehl.

AWS SDKs

Die Art und Weise, wie Sie einen Endpunkt angeben, hängt von der Programmiersprache ab und AWS SDKdu benutzt. In den folgenden Abschnitten wird die entsprechende Vorgehensweise beschrieben:

Unterschiede zwischen der herunterladbaren Version von DynamoDB und dem DynamoDB-Webservice

Die herunterladbare Version von DynamoDB ist nur für Zwecke der Anwendungsentwicklung und Tests vorgesehen. Der DynamoDB-Webservice hingegen ist ein verwalteter Service mit Skalierbarkeits-, Verfügbarkeits- und Haltbarkeitsfunktionen, die ideal für den Einsatz in der Produktion geeignet sind.

Die herunterladbare Version von DynamoDB unterscheidet sich folgendermaßen vom Webservice:

  • AWS-Regionen und deutlich AWS-Konten werden auf Client-Ebene nicht unterstützt.

  • Einstellungen für den bereitgestellten Durchsatz werden in der herunterladbaren Version von DynamoDB ignoriert, auch wenn die CreateTable-Operation diese benötigt. Für CreateTable können Sie beliebige Zahlen für den bereitgestellten Lese- und Schreibdurchsatz angeben, auch wenn diese Zahlen nicht verwendet werden. Sie können UpdateTable beliebig oft pro Tag aufrufen. Alle Änderungen an Werten des bereitgestellten Durchsatzes werden jedoch ignoriert.

  • Scan-Operationen werden sequenziell durchgeführt. Parallele Scans werden nicht unterstützt. Die Parameter Segment und TotalSegments der Scan-Operation werden ignoriert.

  • Die Geschwindigkeit von Lese- und Schreibvorgängen mit Tabellendaten ist nur durch die Geschwindigkeit Ihres Computers begrenzt. CreateTable,UpdateTable, und die DeleteTable Operationen werden sofort ausgeführt, und der Tabellenstatus ist immerACTIVE. UpdateTableOperationen, die nur die bereitgestellten Durchsatzeinstellungen für Tabellen oder globale Sekundärindizes ändern, werden sofort ausgeführt. Wenn bei einem UpdateTable Vorgang globale Sekundärindizes erstellt oder gelöscht werden, durchlaufen diese Indizes den normalen Status (wie CREATING bzw.)DELETING, bevor sie zu einem Status werden. ACTIVE Die Tabelle bleibt ACTIVE während dieser Zeit bestehen.

  • Leseoperationen sind Eventually Consistent. Aufgrund der Geschwindigkeit, mit der DynamoDB auf Ihrem Computer ausgeführt wird, sind die meisten Lesevorgänge allerdings tatsächlich vom Typ „Strongly Consistent”.

  • Elementauflistungsmetriken und Elementauflistungsgrößen werden nicht nachverfolgt. In Operationsantworten werden anstelle der Elementauflistungsmetriken Nullen zurückgegeben.

  • In DynamoDB gibt es für Daten, die pro Ergebnissatz zurückgegeben werden, ein Limit von 1 MB. Sowohl der DynamoDB-Webservice als auch die herunterladbare Version setzen dieses Limit durch. Beim Abfragen eines Indexes berechnet der DynamoDB-Service jedoch nur die Größe des projizierten Schlüssels und der Attribute. Im Gegensatz dazu berechnet die herunterladbare Version von DynamoDB die Größe des gesamten Elements.

  • Bei der Verwendung von DynamoDB Streams kann die Rate, mit der Shards erstellt werden, abweichen. Im DynamoDB-Webservice wird die Shard-Erstellung teilweise von Aktivitäten der Tabellenpartition beeinflusst. Wenn Sie DynamoDB lokal ausführen, gibt es keine Tabellenpartitionierung. In beiden Fällen sind Shards flüchtig, sodass Ihre Anwendung nicht vom Shard-Verhalten abhängt.

  • TransactionConflictExceptionswerden nicht von herunterladbarem DynamoDB für Transaktionen ausgelöst. APIs Wir empfehlen die Verwendung eines Java-Mocking-Frameworks für die Simulation von TransactionConflictExceptions im DynamoDB-Handler, um zu prüfen, wie Ihre Anwendung auf miteinander in Konflikt stehende Transaktionen reagiert.

  • Im DynamoDB-Webservice, unabhängig davon, ob der Zugriff über die Konsole erfolgt oder AWS CLI, bei Tabellennamen wird zwischen Groß- und Kleinschreibung unterschieden. Eine Tabelle mit dem Namen Authors und eine mit dem Namen authors können als separate Tabellen vorhanden sein. In der Downloadversion muss bei Tabellennamen die Groß-/Kleinschreibung beachtet werden. Ein Versuch, diese beiden Tabellen zu erstellen, würde einen Fehler verursachen.

  • Tagging wird in der herunterladbaren Version von DynamoDB nicht unterstützt.

  • Die herunterladbare Version von DynamoDB ignoriert den Limit-Parameter in. ExecuteStatement