在计算机上本地部署 DynamoDB - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在计算机上本地部署 DynamoDB

重要

DynamoDB local jar 可以从我们此处提供的 Amazon CloudFront 分发链接来下载。从 2025 年 1 月 1 日起,旧的 S3 分发存储桶将不再处于活动状态,DynamoDB local 将仅通过 CloudFront 分发链接进行分发。

DynamoDB local 有两个主要版本可供选择:DynamoDB local v2.x(当前版)和 DynamoDB local v1.x(旧版)。客户应尽可能使用版本 2.x(当前版),因为它支持最新版本的 Java 运行时环境,并且与 Maven 项目的 jakarta.* 命名空间兼容。DynamoDB local v1.x 将从 2025 年 1 月 1 日起终止标准支持。在此日期后,v1.x 将不再接收更新或错误修复。
注意

DynamoDB local AWS_ACCESS_KEY_ID 只能包含字母(A–Z,a–z)和数字 (0–9)。

按照以下步骤操作,在您的计算机上设置并运行 DynamoDB。

在您的计算机上设置 DynamoDB
  1. 从以下位置之一免费下载 DynamoDB local。

    下载链接 校验和

    .tar.gz | .zip

    .tar.gz.sha256 | .zip.sha256

    重要

    要在您的计算机上运行 DynamoDB v2.3.0 或更高版本,您必须具有 Java 运行时环境(JRE)版本 17.x 或更高版本。此应用程序无法在早期的 JRE 版本上运行。

  2. 下载存档后,提取内容,并将提取的目录复制到您选择的某个位置。

  3. 要在计算机上启动 DynamoDB,请打开命令提示符窗口,导航到您提取 DynamoDBLocal.jar 的目录,并输入以下命令。

    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
    注意

    如果您使用的是 Windows PowerShell,请务必将参数名称或整个名称和值括起,如下所示:

    java -D"java.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jar

    DynamoDB 将处理传入请求,直到您将其停止为止。要停止 DynamoDB,请在命令提示符处按 Ctrl+C。

    默认情况下,DynamoDB 使用端口 8000。如果端口 8000 不可用,此命令将引发异常。有关 DynamoDB 运行时选项的完整列表(包括 -port),请输入此命令。

    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help

  4. 您必须先配置凭证以为您的应用程序启用授权,然后才能以编程方式或通过 Amazon Command Line Interface (Amazon CLI) 访问 DynamoDB。可下载的 DynamoDB 需要具有任何凭证才能工作,如以下示例所示。

    Amazon Access Key ID: "fakeMyKeyId" Amazon Secret Access Key: "fakeSecretAccessKey" Default Region Name: "fakeRegion"

    您可以使用 Amazon CLI 的 aws configure 命令设置凭证。有关更多信息,请参阅 使用 Amazon CLI

  5. 开始编写应用程序。要使用 Amazon CLI 访问本地运行的 DynamoDB,请使用 --endpoint-url 参数。例如,使用以下命令列出 DynamoDB 表。

    aws dynamodb list-tables --endpoint-url http://localhost:8000

Amazon DynamoDB 的可下载版本作为 Docker 映像的一部分提供。有关更多信息,请参阅 dynamodb-local。要检查 DynamoDB local 的当前版本,请输入以下命令:

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -version

有关使用作为 Amazon Serverless Application Model (Amazon SAM) 上构建的 REST 应用程序的一部分的 DynamoDB Local 的示例,请参阅用于管理订单的 SAM DynamoDB 应用程序。此样本应用程序演示如何使用 DynamoDB Local 进行测试。

如果要运行也是使用 DynamoDB 本地容器的多容器应用程序,请使用 Docker Compose 来定义和运行应用程序中的所有服务,包括 DynamoDB Local。

使用 Docker compose 安装和运行 DynamoDB local:
  1. 下载并安装 Docker desktop

  2. 将以下代码复制到文件中并将其保存为 docker-compose.yml

    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

    如果您希望应用程序和 DynamoDB Local 位于单独的容器中,请使用以下 yaml 文件。

    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

    此 docker-compose.yml 脚本将创建一个 app-node 容器和一个 dynamodb-local 容器。此脚本会在 app-node 容器中运行一个命令,该命令使用 Amazon CLI 连接到 dynamodb-local 容器,并描述账户和表限制。

    要与您自己的应用程序映像一起使用,请将以下示例中的 image 值替换为应用程序的相应值:

    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'
    注意

    YAML 脚本要求您指定 Amazon 访问密钥和 Amazon 私有密钥,但它们不一定是您访问 DynamoDB local 的有效 Amazon 密钥。

  3. 运行以下命令行命令:

    docker-compose up

按照以下步骤操作,在应用程序中将 Amazon DynamoDB 用作依赖项。

将 DynamoDB 部署为 Apache Maven 存储库
  1. 下载并安装 Apache Maven。有关更多信息,请参见下载 Apache Maven安装 Apache Maven

  2. 将 DynamoDB Maven 存储库添加到您的应用程序的项目对象模型 (POM) 文件。

    <!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>2.3.0</version> </dependency> </dependencies>

    用于 Spring Boot 3 和/或 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.3.0</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>
    注意

    您也可以使用 Maven Central 存储库 URL。

有关展示多种设置和使用 DynamoDB local 的方法(包括下载 JAR 文件、将其作为 Docker 映像运行以及将其用作 Maven 依赖项)的示例项目,请参阅 DynamoDB Local 示例 Java 项目