View a markdown version of this page

在本機電腦上部署 DynamoDB - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在本機電腦上部署 DynamoDB

注意
  • DynamoDB 本機版提供三種版本:v3.x (目前)、v2.x (舊版) 和 v1.x (已棄用)。

  • DynamoDB v3.x 建議用於本機測試和開發用途。

  • 從 DynamoDB 本機版 V2.x 移轉至 V3.x 需要將匯入陳述式從 com.amazonaws.services.dynamodbv2 更新為 software.amazon.dynamodb,並更新 Maven 使用者的 Maven 相依性。

  • 如果您要將使用適用於 Java v1.x 之 SDK 的應用程式移轉至適用於 Java 2.x 的 SDK,請遵循AWS 適用於 Java 2.x 的 SDK 的步驟。

請依照這些步驟在您的電腦上安裝並執行 DynamoDB。

在電腦上設定 DynamoDB
  1. 從下列其中一個位置免費下載 DynamoDB 本機版。

    下載連結 檢查總和

    .tar.gz | .zip

    .tar.gz.sha256 | .zip.sha256

    重要

    若要在您的電腦上執行 DynamoDB v2.6.0 或更高版本,您必須有 Java 執行階段環境 (JRE) 第 17.x 版或更新版本。應用程式無法在舊版的 JRE 上執行。

  2. 在您下載封裝後,請解壓縮內容,並將解壓縮的目錄複製到您選擇的位置。

  3. 若要在您的電腦上啟動 DynamoDB,請開啟命令提示視窗,導覽至您解壓縮 DynamoDBLocal.jar 的目錄,然後輸入下列命令。

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

    如果您要使用 Windows PowerShell,請務必括住參數名稱或完整名稱及值,如下所示:

    java "-Djava.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

如需使用 DynamoDB local 作為建置於 AWS Serverless Application Model (AWS SAM) 之 REST 應用程式的一部分的範例,請參閱用於管理訂單的 SAM DynamoDB 應用程式。此範例應用程式示範如何使用 DynamoDB 本機版進行測試。

如果您想要執行同時使用 DynamoDB 本機容器的多容器應用程式,請使用 Docker Compose 定義並執行應用程式中的所有服務,包括 DynamoDB 本機版。

使用 Docker Compose 安裝並執行 DynamoDB 本機版:
  1. 下載並安裝 Docker Desktop

  2. 將以下程式碼複製到一個檔案中並儲存為 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

    如果您想讓應用程式和 DynamoDB 本機版位於不同的容器中,請使用以下 yaml 檔案。

    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 容器中執行命令,該命令使用 dynamodb-local 連線至 AWS CLI 容器,並說明帳戶和資料表限制。

    若要搭配您自己的應用程式影像使用,請將下列範例中的 image 數值取代為您應用程式的數值:

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

如果您要將使用適用於 Java v1.x 之 SDK 的應用程式移轉至適用於 Java 2.x 的 SDK,請遵循AWS 適用於 Java 2.x 的 SDK 的步驟。

請按照以下步驟操作,在您的應用程式中將 Amazon DynamoDB 用為依存項目。

部署 DynamoDB 為 Apache Maven 儲存庫
  1. 下載並安裝 Apache Maven。如需詳細資訊,請參閱下載 Apache Maven安裝 Apache Maven

  2. 將 DynamoDB Maven 儲存庫新增至您應用程式的專案物件模型 (POM) 檔案。

    <!--Dependency:--> <dependencies> <dependency> <groupId>software.amazon.dynamodb</groupId> <artifactId>DynamoDBLocal</artifactId> <version>3.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.1.0</version> </parent> <dependencies> <dependency> <groupId>software.amazon.dynamodb</groupId> <artifactId>DynamoDBLocal</artifactId> <version>3.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 中央存儲庫 URL。

AWS CloudShell 是以瀏覽器為基礎的預先驗證 Shell,您可以直接從 啟動 AWS 管理主控台。您可以從幾種不同的方式導覽至 AWS CloudShell AWS 管理主控台 。如需詳細資訊,請參閱 入門 AWS CloudShell

請依照下列步驟,在 的任何 AWS CloudShell 位置執行 DynamoDB 本機 AWS 管理主控台。

在 的 AWS CloudShell 中執行 DynamoDB 本機 AWS 管理主控台
  1. AWS CloudShell 從主控台界面啟動,選擇可用的 AWS 區域,然後切換到您偏好的 shell,例如 Bash、PowerShell 或 Z shell。

  2. 若要選擇 AWS 區域,請前往選取區域功能表,然後選取支援的 AWS 區域 。(可用區域會反白顯示。)

  3. 從 中 AWS 管理主控台,選擇下列其中一個選項 AWS CloudShell 來啟動 :

    1. 在導覽列上,選擇 AWS CloudShell 圖示。

    2. 搜尋方塊中,輸入 CloudShell 一詞,然後選擇 CloudShell

    3. 最近造訪的小工具中,選擇 CloudShell

    4. 從主控台工具列中,選擇 CloudShell

  4. 若要在本機執行 DynamoDB AWS CloudShell ,您可以使用dynamodb-local別名。您可以指定變更 DynamoDB 本機版設定的其他命令列選項。關於可用的選項,請參閱 DynamoDB 本機版使用須知

    注意

    若要在背景執行 DynamoDB 本機, AWS CloudShell 請在 中使用 執行 DynamoDB 本機dynamodb-local &

  5. 若要 AWS CloudShell 使用 存取在本機執行的 DynamoDB AWS CLI,請使用 --endpoint-url 參數。例如,使用下列命令來列出 DynamoDB 資料表:

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

如需示範設定和使用 DynamoDB 本機版的多種方法的範例專案,包括下載 JAR 檔案、將其作為 Docker 映像檔執行,以及將其用作 Maven 相依性,請參閱 DynamoDB 本機版範例 Java 專案