ec2 descargar change aws amazon-web-services development-environment amazon-dynamodb

amazon web services - descargar - ¿Puedes ejecutar una copia local de AWS DynamoDB de alguna manera?



descargar key pair aws (7)

Si desea escribir código para usar AWS DynamoDB, ¿hay alguna forma de ejecutarlo en su entorno de desarrollo local? ¿O tienes que usar el producto real?

¿Debe aprovisionar un entorno de desarrollo en AWS? ¿No es molesto porque tendrías que trabajar con vim y no tener acceso a tu IDE favorito? ¿O tiene que presionar el código cada vez que quiera ver si funciona lo que escribió?



Ciertamente hay maneras de probar su código sin usar DynamoDB.

Personalmente utilizo los simulacros de Mockito para simular respuestas del servicio en mi prueba de unidad.

Si desea un servidor "local" con fines de experimentación más allá de las pruebas unitarias, existen algunas implementaciones de código abierto mantenidas por la comunidad, por ejemplo, Alternador para Java AWS enumera algunas aquí :



DynamoDB Local tiene varios defectos de paridad de producción, hay una implementación local de código abierto alternativa que intenta hacer coincidir la API en vivo más llamada ''dynalita'' disponible en https://github.com/mhart/dynalite .


Si puede extraer de un repositorio de Maven y está utilizando un lenguaje basado en JVM, ahora puede ejecutarlo en el mismo proceso :

<!--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>

Y aquí hay un ejemplo tomado del repositorio de Github awslabs / aws-dynamodb-examples :

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(); } }


Hay una versión ligera de DynamoDB que se puede ejecutar localmente, ver:

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

Me resultó un poco doloroso recordar todos los pasos de configuración, así que también creé una imagen Docker que lo envuelve, lo que significa que también puedes ejecutar DynamoDB Local con este comando:

# Run DynamoDB docker run -p 8000:8000 dwmkerr/dynamodb # Open the shell to show it''s working! open http://localhost:8000/shell

La imagen de Docker está disponible en:

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


En MacOS puedes instalarlo y ejecutarlo como un servicio en segundo plano usando brew:

Descarga Brew si no lo tienes:

Brew es un administrador de paquetes para MacOS

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

Instala DynamoDB Local usando Brew:

brew install dynamodb-local

Ejecute DynamoDB como un servicio local:

Esto asegurará que DynamoDB local se inicie cuando reinicie su máquina.

brew services start dynamodb-local

Ejecute DynamoDB Local como una única vez:

Este método ejecutará DynamoDB local una vez. Tendrá que volver a ejecutar esto al reiniciar.

/usr/local/bin/dynamodb-local

A continuación, puede golpear dynamoDB en un shell desde su navegador:

http://localhost:8000/shell/

Puede interactuar con su DynamoDB usando Javascript.

Vea este artículo para obtener una explicación más detallada de cómo ejecutar localmente una instancia de AWS DynamoDB