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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在计算机上本地部署 DynamoDB

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

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

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

在您的计算机上设置 DynamoDB
  1. 从以下任一地点免费下载 DynamoDB 本地版。

    下载链接 校验和

    .tar.gz | .zip

    .tar.gz.sha256 | .zip.sha256

    重要

    要在您的计算机上运行 DynamoDB v2.0.0 或更高版本,您必须具有 Java 运行时环境 (JRE) 版本 11.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

有关使用作为 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.2.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.0.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 本地方法(包括下载 JAR 文件、将其作为 Docker 镜像运行以及将其用作 Maven 依赖项)的示例项目示例,请参阅 DynamoDB 本地示例 Java 项目。