AWS DynamoDBを使用するコードを記述したい場合、ローカル開発環境で実行する方法はありますか?それとも実際の製品を使用する必要がありますか?
AWSで開発環境をプロビジョニングする必要がありますか? vimを使用する必要があり、お気に入りのIDEにアクセスできないため、これは煩わしいことではありませんか?または、書いたものが機能しているかどうかを確認するたびに、コードをプッシュする必要がありますか?
うん-あなたは今できる。
http://aws.typepad.com/aws/2013/09/dynamodb-local-for-desktop-development.htmlhttp://docs.aws.Amazon.com/ amazondynamodb/latest/developerguide/Tools.html
警告は次のとおりです。
ローカルで実行できるDynamoDBの軽量バージョンがあります。以下を参照してください。
https://aws.Amazon.com/blogs/aws/dynamodb-local-for-desktop-development/
すべてのセットアップ手順を覚えておくのは少し面倒だと思ったので、それをラップするDockerイメージも作成しました。つまり、次のコマンドでDynamoDBLocalを実行することもできます。
# Run DynamoDB
docker run -p 8000:8000 dwmkerr/dynamodb
# Open the Shell to show it's working!
open http://localhost:8000/Shell
Dockerイメージは次の場所で入手できます。
はい、実行できます。使用することをお勧めします jcabi-dynamodb-maven-plugin
このプロセスを自動化します(Apache Mavenを使用している場合)。
この投稿を見てください: http://www.yegor256.com/2014/05/01/dynamodb-local-maven-plugin.html
MacOSでは、brewを使用してバックグラウンドサービスとしてインストールして実行できます。
Brewをお持ちでない場合はダウンロードしてください:
BrewはMacOSのパッケージマネージャーです
Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
Brewを使用してDynamoDBローカルをインストールします:
brew install dynamodb-local
DynamoDBをローカルサービスとして実行します:
これにより、マシンを再起動したときにDynamoDBローカルが確実に起動します。
brew services start dynamodb-local
DynamoDB Localを1回限りのスタートアップとして実行します:
このメソッドは、DynamoDBローカルを1回実行します。再起動時にこれを再実行する必要があります。
/usr/local/bin/dynamodb-local
次に、ブラウザーからシェルでdynamoDBをヒットできます:
http://localhost:8000/Shell/
Javascriptを使用してDynamoDBと対話できます。
AWS DynamoDBインスタンスをローカルで実行する の詳細については、この記事を参照してください
Mavenリポジトリからプルでき、JVMベースの言語を使用している場合は、次のことができます 同じプロセスで実行するようになりました :
<!--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>
そして、これが awslabs/aws-dynamodb-examples Githubリポジトリからの例です。
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();
}
}
DynamoDB Localにはいくつかのプロダクションパリティの欠陥があり、 https://github.com/mhart/dynalite で入手可能な「dynalite」と呼ばれるライブAPIと一致させようとする代替のオープンソースローカル実装があります。
DynamoDBを実際に使用せずにコードをテストする方法は確かにあります。
私は個人的にMockitoモックを使用して、単体テストでサービスからの応答をモックします。
単体テスト以外の実験目的で「ローカル」サーバーが必要な場合は、コミュニティによって維持されているいくつかのオープンソース実装があります。たとえば、 Alternator for Java AWSはいくつかをリストしています ここ :
2018年8月 Amazonが発表 新しい Dockerイメージ Amazon DynamoDBLocalがオンボードになっています。 JARをダウンロードして実行したり、サードパーティのOS固有のバイナリを使用して追加したりする必要はありません。
Dockerコンテナを起動するのと同じくらい簡単です。
docker run -p 8000:8000 Amazon/dynamodb-local
上記のように、ローカル開発のために手動で行うことも、CIパイプラインで使用することもできます。多くのCIサービスは、パイプライン中に追加のコンテナーを開始する機能を提供し、テストの依存関係を提供できます。