本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在本機電腦上部署 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
-
從下列其中一個位置免費下載 DynamoDB 本機版。
下載連結 檢查總和 重要
若要在您的電腦上執行 DynamoDB v2.6.0 或更高版本,您必須有 Java 執行階段環境 (JRE) 第 17.x 版或更新版本。應用程式無法在舊版的 JRE 上執行。
-
在您下載封裝後,請解壓縮內容,並將解壓縮的目錄複製到您選擇的位置。
-
若要在您的電腦上啟動 DynamoDB,請開啟命令提示視窗,導覽至您解壓縮
DynamoDBLocal.jar的目錄,然後輸入下列命令。java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb注意
如果您要使用 Windows PowerShell,請務必括住參數名稱或完整名稱及值,如下所示:
java "-Djava.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jarDynamoDB 會處理傳入的請求,直到您將其停止。若要停止 DynamoDB,請在命令提示字元中按 Ctrl+C。
DynamoDB 預設使用連接埠 8000。如果無法使用連接埠 8000,此命令就會擲出例外狀況。如需完整的 DynamoDB 執行時期選項清單 (包括
-port),請輸入此命令。java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help -
以程式設計方式或透過 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。 -
開始寫入應用程式。若要使用 在本機執行的 DynamoDB AWS CLI,請使用
--endpoint-url參數。例如,使用下列命令來列出 DynamoDB 資料表。aws dynamodb list-tables --endpoint-url http://localhost:8000
Amazon DynamoDB 的可下載版本作為 Docker 映像檔提供。如需詳細資訊,請參閱 dynamodb-local
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -version
如需使用 DynamoDB local 作為建置於 AWS Serverless Application Model (AWS SAM) 之 REST 應用程式的一部分的範例,請參閱用於管理訂單的 SAM DynamoDB 應用程式
如果您想要執行同時使用 DynamoDB 本機容器的多容器應用程式,請使用 Docker Compose 定義並執行應用程式中的所有服務,包括 DynamoDB 本機版。
使用 Docker Compose 安裝並執行 DynamoDB 本機版:
-
下載並安裝 Docker Desktop
。 -
將以下程式碼複製到一個檔案中並儲存為
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:latestcontainer_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 金鑰。
-
執行下列命令列命令:
docker-compose up
注意
如果您要將使用適用於 Java v1.x 之 SDK 的應用程式移轉至適用於 Java 2.x 的 SDK,請遵循AWS 適用於 Java 2.x 的 SDK 的步驟。
請按照以下步驟操作,在您的應用程式中將 Amazon DynamoDB 用為依存項目。
部署 DynamoDB 為 Apache Maven 儲存庫
-
下載並安裝 Apache Maven。如需詳細資訊,請參閱下載 Apache Maven
和安裝 Apache Maven 。 -
將 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 管理主控台
-
AWS CloudShell 從主控台界面啟動,選擇可用的 AWS 區域,然後切換到您偏好的 shell,例如 Bash、PowerShell 或 Z shell。
-
若要選擇 AWS 區域,請前往選取區域功能表,然後選取支援的 AWS 區域 。(可用區域會反白顯示。)
-
從 中 AWS 管理主控台,選擇下列其中一個選項 AWS CloudShell 來啟動 :
-
在導覽列上,選擇 AWS CloudShell 圖示。
-
在搜尋方塊中,輸入 CloudShell 一詞,然後選擇 CloudShell。
-
在最近造訪的小工具中,選擇 CloudShell。
-
從主控台工具列中,選擇 CloudShell。
-
-
若要在本機執行 DynamoDB AWS CloudShell ,您可以使用
dynamodb-local別名。您可以指定變更 DynamoDB 本機版設定的其他命令列選項。關於可用的選項,請參閱 DynamoDB 本機版使用須知。注意
若要在背景執行 DynamoDB 本機, AWS CloudShell 請在 中使用 執行 DynamoDB 本機
dynamodb-local &。 -
若要 AWS CloudShell 使用 存取在本機執行的 DynamoDB AWS CLI,請使用
--endpoint-url參數。例如,使用下列命令來列出 DynamoDB 資料表:aws dynamodb list-tables --endpoint-url http://localhost:8000
如需示範設定和使用 DynamoDB 本機版的多種方法的範例專案,包括下載 JAR 檔案、將其作為 Docker 映像檔執行,以及將其用作 Maven 相依性,請參閱 DynamoDB 本機版範例 Java 專案