在计算机上本地部署 DynamoDB - Amazon DynamoDB

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

在计算机上本地部署 DynamoDB

重要

DynamoDB 本地 jar 可以从此处引用的分发链接 AWS CloudFront中下载。从 2025 年 1 月 1 日起,旧的 S3 分发存储桶将不再处于活动状态,DynamoDB 本地版将仅通过分发链接进行分发 CloudFront。

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

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

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

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

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

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

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

有关在基于AWS SAM() 构建的 REST 应用程序中使用 DynamoDB 本地应用程序的示例,请参阅用于管理订单 AWS Serverless Application Model 的 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 容器中运行一个命令,该命令使用 AWS 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 脚本要求您指定 AWS 访问密钥和私有 AWS 密钥,但访问本地的 DynamoDB 不要求它们是有效的 AWS 密钥。

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