15

Wenn Sie Code schreiben möchten, um AWS DynamoDB zu verwenden, gibt es eine Möglichkeit, es in Ihrer lokalen Entwicklungsumgebung ausführen zu lassen? Oder müssen Sie das eigentliche Produkt verwenden?Können Sie irgendwie eine lokale Kopie von AWS DynamoDB ausführen?

Müssen Sie eine Entwicklungsumgebung für AWS bereitstellen? Ist das nicht nervig, weil du mit vim arbeiten musst und keinen Zugriff auf deine Lieblings-IDE hast? Oder müssen Sie jedes Mal Code drücken, wenn Sie sehen wollen, ob das, was Sie geschrieben haben, funktioniert?

Antwort

21

Ja - Sie können nun.

http://aws.typepad.com/aws/2013/09/dynamodb-local-for-desktop-development.html http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.html

Caveats umfassen:

  • DynamoDB Lokale ignoriert Ihre bereitgestellten Durchsatz Einstellungen
  • DynamoDB Local keine Haltbarkeit oder die Verfügbarkeit SLA hat und ist nicht für den produktiven Einsatz
  • empfohlen
+0

Das ist riesig Nachricht für meine Organisation, aber wir Boto verwenden, die leider nicht auf die lokale Instanz verbinden unterstützt. Hoffentlich werden sie es bald umsetzen. http://goo.gl/VPXgEU – feathj

+0

Es ist super Buggy, nur um die Leute zu warnen. –

0

Es gibt sicherlich Möglichkeiten, Ihren Code zu testen, ohne DynamoDB zu verwenden.

Ich persönlich benutze Mockito Mocks, um Antworten von dem Dienst in meinem Komponententest zu verspotten.

Wenn Sie möchten, eine ‚lokale‘ Server für Versuchszwecke über Unit-Tests gibt es einige Open-Source-Implementierungen von der Community gepflegt, zum Beispiel Alternator for Java AWS listet einige here:

1

DynamoDB Local verfügt über mehr Produktions-Paritätsfehler, gibt es eine Alternative Open Source lokale Implementierung, die den Live-API mehr 'dynalite' verfügbar bei https://github.com/mhart/dynalite genannt anzupassen versucht.

+0

Hallo, wenn Sie Dynalite verwendet haben, können Sie mir sagen, wie ich eine neue Tabelle auf Dynalite erstellen kann. – Somil

2

Wenn Sie von einem Maven-Repository ziehen können und werden mit einer JVM-basierten Sprache, können Sie now run it in the same process:

<!--Dependency:--> 
<dependencies> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>DynamoDBLocal</artifactId> 
     <version>1.10.5.1</version> 
    </dependency> 
</dependencies> 
<!--Custom repository:--> 
<repositories> 
    <repository> 
     <id>dynamodb-local</id> 
     <name>DynamoDB Local Release Repository</name> 
     <url>http://dynamodb-local.s3-website-us-west-2.amazonaws.com/release</url> 
    </repository> 
</repositories> 

Und hier ist ein Beispiel aus dem Repository awslabs/aws-dynamodb-examples Github genommen:

AmazonDynamoDB dynamodb = null; 
try { 
    // Create an in-memory and in-process instance of DynamoDB Local that skips HTTP 
    dynamodb = DynamoDBEmbedded.create(); 
    // use the DynamoDB API with DynamoDBEmbedded 
    listTables(dynamodb.listTables(), "DynamoDB Embedded"); 
} finally { 
    // Shutdown the thread pools in DynamoDB Local/Embedded 
    if(dynamodb != null) { 
     dynamodb.shutdown(); 
    } 
} 

// Create an in-memory and in-process instance of DynamoDB Local that runs over HTTP 
final String[] localArgs = { "-inMemory" }; 
DynamoDBProxyServer server = null; 
try { 
    server = ServerRunner.createServerFromCommandLineArgs(localArgs); 
    server.start(); 
    dynamodb = new AmazonDynamoDBClient(); 
    dynamodb.setEndpoint("http://localhost:8000"); 

    // use the DynamoDB API over HTTP 
    listTables(dynamodb.listTables(), "DynamoDB Local over HTTP"); 
} finally { 
    // Stop the DynamoDB Local endpoint 
    if(server != null) { 
     server.stop(); 
    } 
} 
1

Auf MacOS können Sie es installieren und als Hintergrunddienst mit brew ausführen:

Download Brew, wenn Sie nicht ich t:

Brew ist ein Paket-Manager für MacOS

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null 

installieren DynamoDB Lokale mit Brew:

brew install dynamodb-local 

Run DynamoDB als lokaler Service:

Diese stellt sicher, dass DynamoDB lokal gestartet wird, wenn Sie den Computer neu starten.

brew services start dynamodb-local 

Run DynamoDB Lokale als Start einmalig:

Diese Methode wird DynamoDB lokalen einmal ausgeführt. Sie müssen dies beim Neustart erneut ausführen.

/usr/local/bin/dynamodb-local 

Dann können Sie DynamoDB in einer Shell aus Ihrem Browser getroffen:

http://localhost:8000/shell/ 

können Sie interagieren mit Ihrem DynamoDB Javascript verwenden.

DynamoDB Javascript shell in browser

Ansicht dieser Artikel für eine ausführlichere Erklärung von Running a AWS DynamoDB instance locally

3

Es gibt eine leichte Version von DynamoDB ist, die lokal ausgeführt werden können, finden Sie unter:

https://aws.amazon.com/blogs/aws/dynamodb-local-for-desktop-development/

ich es gefunden Es ist ein bisschen mühsam, sich an alle Setup-Schritte zu erinnern, also wurde auch ein Docker-Image erstellt, das es umschließt. Das heißt, Sie können DynamoDB Local auch mit diesem Befehl ausführen:

# Run DynamoDB 
docker run -p 8000:8000 dwmkerr/dynamodb 

# Open the shell to show it's working! 
open http://localhost:8000/shell 

Das Docker Bild ist abrufbar unter:

https://hub.docker.com/r/dwmkerr/dynamodb/

Verwandte Themen