Bereitstellen der lokalen Version von DynamoDB auf Ihrem Computer
Anmerkung
-
Die lokale Version von DynamoDB ist in drei Versionen verfügbar: v3.x (aktuell), v2.x (Legacy) und v1.x (veraltet).
-
DynamoDB v3.x wird für Ihre lokalen Test- und Entwicklungszwecke empfohlen.
-
Die Migration der lokalen Version von DynamoDB V2.x auf V3.x erfordert die Aktualisierung der Importanweisungen von
com.amazonaws.services.dynamodbv2aufsoftware.amazon.dynamodbund die Aktualisierung der Maven-Abhängigkeiten für Maven-Benutzer. -
Wenn Sie eine Anwendung zum SDK für Java 2.x migrieren, die das SDK für Java v1.x verwendet, folgen Sie den Schritten unter AWS-SDK für Java 2.x.
Gehen Sie wie folgt vor, um DynamoDB einzurichten und auf Ihrem Computer auszuführen.
So richten Sie DynamoDB auf dem Computer ein
-
Laden Sie die lokale Version von DynamoDB kostenlos von einem der folgenden Speicherorte herunter.
Download-Links Prüfsummen Wichtig
Um DynamoDB V2.6.0 oder höher auf Ihrem Computer ausführen zu können, benötigen Sie die Java-Laufzeitumgebung (JRE) Version 17.x oder eine neuere Version. Die Anwendung kann nicht unter früheren JRE-Versionen ausgeführt werden.
-
Nachdem Sie das Archiv heruntergeladen haben, extrahieren Sie die Inhalte und kopieren Sie das entpackte Verzeichnis an einen Speicherort Ihrer Wahl.
-
Zum Starten von DynamoDB auf Ihrem Computer, öffnen Sie ein Befehlszeilenfenster, gehen Sie zu dem Verzeichnis, in das Sie
DynamoDBLocal.jarextrahiert haben, und geben Sie den folgenden Befehl ein.java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDbAnmerkung
Wenn Sie Windows PowerShell verwenden, müssen Sie den Parameternamen oder den vollständigen Namen und den Wert folgendermaßen angeben:
java -D"java.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jarDynamoDB verarbeitet eingehende Anforderungen, bis Sie den Service beenden. Zum Beenden von DynamoDB geben Sie Strg+C in die Befehlszeile ein.
DynamoDB verwendet standardmäßig Port 8000. Wenn Port 8000 nicht verfügbar ist, wird eine Ausnahme ausgelöst. 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 -
Bevor Sie programmgesteuert oder über die AWS Command Line Interface(AWS CLI) auf DynamoDB zugreifen können, müssen Sie die Anmeldeinformationen so konfigurieren, dass die Autorisierung für die Anwendungen aktiviert wird. Die herunterladbare Version von DynamoDB benötigt Anmeldeinformationen, um arbeiten zu können, wie in dem folgenden Beispiel gezeigt.
AWS Access Key ID: "fakeMyKeyId" AWS Secret Access Key: "fakeSecretAccessKey" Default Region Name: "fakeRegion"Sie können die Anmeldeinformationen mit dem AWS CLI-Befehl
aws configureeinrichten. Weitere Informationen finden Sie unter Verwendung der AWS CLI. -
Beginnen Sie mit dem Schreiben von Anwendungen. Um mit der DynamoDB auf die lokal ausgeführte AWS CLI-Version zuzugreifen, verwenden Sie den Parameter
--endpoint-url. Sie können z. B. den folgenden Befehl verwenden, um DynamoDB-Tabellen aufzulisten.aws dynamodb list-tables --endpoint-url http://localhost:8000
Die herunterladbare Version von Amazon DynamoDB ist als Docker-Image verfügbar. Weitere Informationen finden Sie unter dynamodb-local
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -version
Ein Beispiel zur Verwendung der lokalen Version von DynamoDB als Teil einer REST-Anwendung, die basierend auf dem AWS Serverless Application Model (AWS SAM) erstellt wurde, finden Sie unter SAM-DynamoDB-Anwendung zum Verwalten von Bestellungen
Wenn Sie eine Anwendung mit mehreren Containern ausführen möchten, die auch den lokalen DynamoDB-Container nutzt, verwenden Sie Docker Compose, um alle Services in Ihrer Anwendung zu definieren und auszuführen, einschließlich DynamoDB lokal.
So gehen Sie vor, um DynamoDB zu installieren und lokal auszuführen:
-
Führen Sie Download und Installation von Docker Desktop
durch. -
Kopieren Sie den folgenden Code in eine Datei, und speichern Sie ihn unter
docker-compose.yml.services: dynamodb-local: command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data" image: "amazon/dynamodb-local:latest" container_name: dynamodb-local ports: - "8000:8000" volumes: - "./docker/dynamodb:/home/dynamodblocal/data" working_dir: /home/dynamodblocalWenn sich Ihre Anwendung und DynamoDB lokal in separaten Containern befinden sollen, verwenden Sie die folgende YAML-Datei:
version: '3.8' services: dynamodb-local: command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data" image: "amazon/dynamodb-local:latest" container_name: dynamodb-local ports: - "8000:8000" volumes: - "./docker/dynamodb:/home/dynamodblocal/data" working_dir: /home/dynamodblocal app-node: depends_on: - dynamodb-local image: amazon/aws-cli container_name: app-node ports: - "8080:8080" environment: AWS_ACCESS_KEY_ID: 'DUMMYIDEXAMPLE' AWS_SECRET_ACCESS_KEY: 'DUMMYEXAMPLEKEY' command: dynamodb describe-limits --endpoint-url http://dynamodb-local:8000 --region us-west-2Dieses docker-compose.yml-Skript erstellt einen
app-node-Container und einendynamodb-local-Container. Das Skript führt einen Befehl im Containerapp-nodeaus, der mithilfe der AWS CLI eine Verbindung mit demdynamodb-local-Container herstellt und die Konten- und Tabellenlimits beschreibt.Wenn Sie diesen Vorgang bei Ihrem eigenen Anwendungsimage verwenden möchten, ersetzen Sie den Wert
imageim folgenden Beispiel durch den Wert Ihrer Anwendung.version: '3.8' services: dynamodb-local: command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data" image: "amazon/dynamodb-local:latest" container_name: dynamodb-local ports: - "8000:8000" volumes: - "./docker/dynamodb:/home/dynamodblocal/data" working_dir: /home/dynamodblocal app-node: image:location-of-your-dynamodb-demo-app:latestcontainer_name: app-node ports: - "8080:8080" depends_on: - "dynamodb-local" links: - "dynamodb-local" environment: AWS_ACCESS_KEY_ID: 'DUMMYIDEXAMPLE' AWS_SECRET_ACCESS_KEY: 'DUMMYEXAMPLEKEY' REGION: 'eu-west-1'Anmerkung
Die YAML-Skripte erfordern, dass Sie einen AWS-Zugriffsschlüssel und einen geheimen AWS-Schlüssel angeben. Diese müssen jedoch keine gültigen AWS-Schlüssel sein, damit Sie auf die lokale Version von DynamoDB zugreifen können.
-
Führen Sie die folgende Befehlzeilen-Befehle aus:
docker-compose up
Anmerkung
Wenn Sie eine Anwendung zum SDK für Java 2.x migrieren, die das SDK für Java v1.x verwendet, folgen Sie den Schritten unter AWS-SDK für Java 2.x.
Führen Sie die folgenden Schritte aus, um Amazon DynamoDB in Ihrer Anwendung als Abhängigkeit zu verwenden.
So stellen Sie DynamoDB als Apache-Maven-Repository bereit
-
Laden Sie Apache Maven herunter und installieren Sie es. Weitere Informationen finden Sie unter Downloading Apache Maven
und Installing Apache Maven . -
Fügen Sie das DynamoDB-Maven-Repository zur POM-Datei (Project Object Model) Ihrer Anwendung hinzu.
<!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>3.1.0</version> </dependency> </dependencies>Beispielvorlage zur Verwendung mit Spring Boot 3 und/oder Spring Framework 6:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SpringMavenDynamoDB</artifactId> <version>1.0-SNAPSHOT</version> <properties> <spring-boot.version>3.0.1</spring-boot.version> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.1</version> </parent> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>3.1.0</version> </dependency> <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- Spring Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- Spring Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- Other Spring dependencies --> <!-- Replace the version numbers with the desired version --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>6.0.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>6.0.0</version> </dependency> <!-- Add other Spring dependencies as needed --> <!-- Add any other dependencies your project requires --> </dependencies> </project>Anmerkung
Sie können auch die URL des Maven Central Repository
verwenden.
AWS CloudShell ist eine Browser-basierte, vorauthentifizierte Shell, die Sie direkt über die AWS-Managementkonsole starten. Sie können von der AWS-Managementkonsole aus auf verschiedene Arten zu AWS CloudShell navigieren. Weitere Informationen finden Sie unter Erste Schritte mit AWS CloudShell.
Gehen Sie wie folgt vor, um die lokale Version von DynamoDB in Ihrem AWS CloudShell an beliebiger Stelle in der AWS-Managementkonsole auszuführen.
So führen Sie die lokale Version von DynamoDB in Ihrem AWS CloudShell in der AWS-Managementkonsole aus.
-
Starten Sie AWS CloudShell von der Konsolenoberfläche aus, wählen Sie eine verfügbare AWS-Region aus und wechseln Sie zu Ihrer bevorzugten Shell (z. B. Bash, PowerShell oder Z-Shell).
-
Rufen Sie das Menü Auswählen einer Region auf und wählen Sie eine unterstützte AWS-Region aus, um einen AWS-Region auszuwählen. (Verfügbare Regionen sind hervorgehoben.)
-
Starten Sie AWS CloudShell aus der AWS-Managementkonsole, indem Sie eine der folgenden Optionen wählen:
-
Klicken Sie in der Navigationsleiste auf das AWS CloudShell-Symbol.
-
Geben Sie in das Suchfeld das Wort CloudShell ein, und wählen Sie dann CloudShell aus.
-
Wählen Sie im Widget Kürzlich besucht die Option CloudShell aus.
-
Wählen Sie in der Werkzeugleiste der Konsole CloudShell aus.
-
-
Um die lokale Version von DynamoDB in AWS CloudShell auszuführen, können Sie den
dynamodb-local-Alias verwenden. Sie können zusätzliche Befehlszeilenoptionen zum Ändern der Einstellungen Ihrer lokalen Version von DynamoDB angeben. Die verfügbaren Optionen finden Sie unter DynamoDB-Local-Nutzungshinweise .Anmerkung
Um die lokale Version von DynamoDB im Hintergrund auszuführen, führen Sie die lokale Version von DynamoDB in AWS CloudShell mit
dynamodb-local &aus. -
Verwenden Sie den Parameter
--endpoint-url, um auf die lokal ausgeführte Version von DynamoDB in AWS CloudShell über die AWS CLI zuzugreifen. Sie können z. B. den folgenden Befehl verwenden, um DynamoDB-Tabellen aufzulisten:aws dynamodb list-tables --endpoint-url http://localhost:8000
Ein Beispielprojekt, das verschiedene Ansätze zur Einrichtung und Nutzung der lokalen Version von DynamoDB zeigt – darunter das Herunterladen von JAR-Dateien, die Ausführung als Docker-Image und die Einbindung als Maven-Abhängigkeit – finden Sie unter Java-Beispielprojekt für die lokale Version von DynamoDB