如果您想編寫代碼以使用AWS DynamoDB,有什麼方法讓它在您的本地開發環境中運行?或者你是否必須使用實際的產品?您能以某種方式運行AWS DynamoDB的本地副本嗎?
您是否必須在AWS上配置開發環境?是不是很煩人,因爲你不得不使用vim而不能訪問你最喜歡的IDE?或者每次你想看看你寫的是否正在工作時,你都必須將代碼推送到它。
如果您想編寫代碼以使用AWS DynamoDB,有什麼方法讓它在您的本地開發環境中運行?或者你是否必須使用實際的產品?您能以某種方式運行AWS DynamoDB的本地副本嗎?
您是否必須在AWS上配置開發環境?是不是很煩人,因爲你不得不使用vim而不能訪問你最喜歡的IDE?或者每次你想看看你寫的是否正在工作時,你都必須將代碼推送到它。
是的 - 現在就可以。
http://aws.typepad.com/aws/2013/09/dynamodb-local-for-desktop-development.html http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.html
注意事項包括:
在實際使用DynamoDB的情況下測試代碼當然有一些方法。
我個人使用Mockito mock來模擬我單元測試中的服務響應。
如果你想爲實驗目的的「本地」服務器超越單元測試存在由社區維護的一些開源實現,如Alternator for Java AWS列出了一些here:
是的,你可以運行它,我建議使用jcabi-dynamodb-maven-plugin
來自動執行此過程(如果您使用的是Apache Maven)。
看看這個帖子:http://www.yegor256.com/2014/05/01/dynamodb-local-maven-plugin.html
DynamoDB當地擁有數條生產平價的缺陷,有可能嘗試匹配實時API更被稱爲「邦奇」提供https://github.com/mhart/dynalite替代開源本地執行。
嗨,如果你已經使用dynalite,你能告訴我如何在dynalite上創建一個新表格。 – Somil
如果你可以從Maven倉庫拉和使用的是基於JVM的語言,你可以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>
這裏是從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();
}
}
在MacOS上,您可以使用brew安裝並運行它作爲後臺服務:
下載Brew如果您沒有i T:
BREW是適用於MacOS
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
安裝DynamoDB本地使用的Brew的軟件包管理器:
brew install dynamodb-local
運行DynamoDB作爲本地服務:
這將確保DynamoDB本地在您重新啓動機器時啓動。
brew services start dynamodb-local
運行DynamoDB本地的一次性啓動:
這種方法將運行DynamoDB本地一次。您將需要重新啓動時重新運行此操作。
/usr/local/bin/dynamodb-local
然後,您可以從您的瀏覽器炮彈擊中dynamoDB:
http://localhost:8000/shell/
您可以使用JavaScript您的DynamoDB交互。
更詳細的解釋有DynamoDB的一個輕量級版本,它可以在本地運行,請參閱:
https://aws.amazon.com/blogs/aws/dynamodb-local-for-desktop-development/
我發現它記住所有設置步驟有點痛苦,所以也創建了一個包裝它的Docker Image,這意味着您也可以使用以下命令運行DynamoDB Local:
# Run DynamoDB
docker run -p 8000:8000 dwmkerr/dynamodb
# Open the shell to show it's working!
open http://localhost:8000/shell
泊塢窗圖像,請訪問:
這是我的組織龐大的消息,但我們使用博託不幸的是,不支持連接到本地實例。希望他們能儘快實施。 http://goo.gl/VPXgEU – feathj
這是超級越野車,只是爲了警告人們。 –