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 Option -sharedDb verwenden, erstellt DynamoDB eine einzelne Datenbankdatei namens 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 es weglassen-sharedDb, erhält die Datenbankdatei den Namen myaccesskeyid_region.db mit der 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.

  • Die AWS SDKs für DynamoDB erfordern, dass Ihre Anwendungskonfiguration einen Zugriffsschlüsselwert und einen AWS Regionswert angibt. DynamoDB verwendet diese Werte, um die lokale Datenbankdatei zu benennen, sofern Sie nicht die Option -sharedDb oder -inMemory verwenden. Diese Werte müssen keine gültigen AWS Werte sein, um lokal ausgeführt zu werden. 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 Cross-Origin Resource Sharing (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. (Gegenwärtig führt dieser Parameter Verzögerungen nur für globale sekundäre Indizes mit dem Status CREATING oder DELETING ein.)

  • -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 verwenden die AWS SDKs und Tools Endpunkte für den Amazon DynamoDB DynamoDB-Webservice. Um die SDKs und Tools mit der herunterladbaren Version von DynamoDB verwenden zu können, müssen Sie den lokalen Endpunkt angeben:

http://localhost:8000

AWS Command Line Interface

Sie können die AWS Command Line Interface (AWS CLI) verwenden, 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

Die herunterladbare Version von DynamoDB AWS CLI kann nicht als Standardendpunkt verwendet werden. Daher müssen Sie --endpoint-url bei jedem AWS CLI Befehl angeben.

AWS SDKs

Die Art und Weise, wie Sie einen Endpunkt angeben, hängt davon ab, welche Programmiersprache und welches AWS -SDK Sie verwenden. In den folgenden Abschnitten wird die entsprechende Vorgehensweise beschrieben:

Anmerkung

Beispiele in anderen Programmiersprachen finden Sie unter Erste Schritte mit DynamoDB und den SDKs AWS.

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 distinct 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 der Lese- und Schreiboperationen in den Tabellendaten ist nur durch die Geschwindigkeit des Computers begrenzt. Die Operationen CreateTable, UpdateTable und DeleteTable werden umgehend ausgeführt und der Tabellenstatus ist jederzeit ACTIVE. UpdateTable-Operationen, die nur die Einstellungen zum bereitgestellten Durchsatz für Tabellen oder globale sekundäre Indizes ändern, werden umgehend ausgeführt. Wenn eine UpdateTable-Operation globale sekundäre Indizes erstellt oder löscht, durchlaufen diese Indizes die normalen Status (wie CREATING bzw. DELETING), bevor sie in den Status ACTIVE übergehen. Die Tabelle bleibt während dieser Zeit im Status ACTIVE.

  • 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 herunterladbaren DynamoDB für Transaktions-APIs ausgelöst. 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-Webdienst wird zwischen Groß- und Kleinschreibung unterschieden, unabhängig davon, ob auf Tabellennamen über die AWS CLI Konsole oder über zugegriffen wird. 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