Importante
O jar do DynamoDB local pode ser baixado dos nossos links de distribuição do AWS CloudFront mencionados aqui. A partir de 1.º de janeiro de 2025, os antigos buckets de distribuição do S3 não estarão mais ativos e o DynamoDB local será distribuído somente por meio de links de distribuição do CloudFront.
nota
-
Há duas versões principais do DynamoDB local disponíveis: DynamoDB local v2.x (atual) e DynamoDB local v1.x (herdado). Os clientes devem usar a versão 2.x (atual) sempre que possível, pois ela comporta as versões mais recentes do Ambiente de Execução Java e é compatível com o namespace jakarta.* do projeto Maven. O DynamoDB local v1.x chegará ao fim do suporte padrão em 1.º de janeiro de 2025. Após essa data, a v1.x não receberá mais atualizações nem correções de bugs.
-
O DynamoDB local
AWS_ACCESS_KEY_ID
pode conter somente letras (A-Z, a-z) e números (0-9).
Siga estas etapas para configurar e executar o DynamoDB em seu computador.
Para configurar o DynamoDB em seu computador
-
Baixe o DynamoDB local gratuitamente de um dos locais a seguir.
Links para fazer download Somas de verificação Importante
Para executar o DynamoDB v2.5.3 ou posterior no computador, é necessário ter o Ambiente de Execução Java (JRE) versão 17.x ou mais recente instalado. A aplicação não é executada em versões mais antigas do JRE.
-
Depois de fazer download do arquivo, extraia o conteúdo e copie o diretório extraído para um local de sua escolha.
-
Para iniciar o DynamoDB em seu computador, abra uma janela de prompt de comando, vá para o diretório onde você extraiu o arquivo
DynamoDBLocal.jar
e insira o comando seguir.java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
nota
Se estiver usando o Windows PowerShell, inclua o nome do parâmetro ou todo o nome e valor da seguinte forma:
java -D"java.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jar
O DynamoDB processa as solicitações de entrada até que você o interrompa. Para interromper o DynamoDB, pressione Ctrl+C no prompt de comando.
O DynamoDB usa a porta 8000 por padrão. Se a porta 8000 estiver indisponível, este comando lançará uma exceção. Para obter uma lista completa das opções de tempo de execução do DynamoDB, incluindo
-port
, execute este comando.java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help
-
Para poder acessar o DynamoDB por programação ou via AWS Command Line Interface (AWS CLI), você deve configurar suas credenciais para habilitar a autorização para suas aplicações. O DynamoDB para download requer que todas as credenciais funcionem, conforme mostrado no exemplo a seguir.
AWS Access Key ID: "fakeMyKeyId" AWS Secret Access Key: "fakeSecretAccessKey" Default Region Name: "fakeRegion"
Você pode usar o comando
aws configure
da AWS CLI para configurar credenciais. Para ter mais informações, consulte Uso do AWS CLI. -
Comece a escrever aplicações. Para acessar o DynamoDB em execução local com a AWS CLI, use o parâmetro
--endpoint-url
. Por exemplo, use o comando a seguir para listar as tabelas do DynamoDB.aws dynamodb list-tables --endpoint-url http://localhost:8000
A versão para download do Amazon DynamoDB está disponível como uma imagem do Docker. Para obter mais informações, consulte dynamodb-local
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -version
Para obter um exemplo de uso do DynamoDB local como parte de um aplicativo REST criado com a AWS Serverless Application Model (AWS SAM), consulte Aplicação SAM do DynamoDB para gerenciamento de pedidos
Se você quiser executar uma aplicação de vários contêineres que também use o contêiner local do DynamoDB, use o Docker Compose para definir e executar todos os serviços em sua aplicação, incluindo o DynamoDB local.
Para instalar e executar o DynamoDB local com o Docker Compose:
-
Baixe e instale a área de trabalho do Docker
. -
Copie o código a seguir em um arquivo e salve-o como
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/dynamodblocal
Se desejar que sua aplicação e o DynamoDB local estejam em contêineres separados, use o arquivo yaml a seguir.
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-2
Este script docker-compose.yml cria um contêiner
app-node
e um contêinerdynamodb-local
. O script executa um comando no contêinerapp-node
que usa a AWS CLI para se conectar ao contêinerdynamodb-local
e descreve os limites da conta e da tabela.Para usar com sua própria imagem de aplicação, substitua o valor
image
no exemplo abaixo pelo valor da sua aplicação.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:latest
container_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'nota
Os scripts YAML exigem que você especifique uma chave de acesso da AWS e uma chave secreta da AWS, mas elas não precisam ser chaves válidas da AWS para acessar o DynamoDB local.
-
Execute o seguinte comando a linha de comando:
docker-compose up
Siga estas etapas para usar o Amazon DynamoDB em sua aplicação como uma dependência.
Para implantar o DynamoDB como um repositório do Apache Maven
-
Faça download do Apache Maven e instale-o. Para obter mais informações, consulte Download do Apache Maven
e Instalação do Apache Maven . -
Adicione o repositório Maven do DynamoDB ao arquivo Project Object Model (POM) da sua aplicação.
<!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>2.5.3</version> </dependency> </dependencies>
Exemplo de modelo para uso com o Spring Boot 3 e/ou 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>2.5.3</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>
nota
Também é possível usar o URL do repositório central do Maven
.
Para ver um exemplo de projeto de amostra que mostra várias abordagens para configurar e usar o DynamoDB local, inclusive baixar arquivos JAR, executá-lo como uma imagem do Docker e usá-lo como uma dependência do Maven, consulte DynamoDB Local Sample Java Project