本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在本機電腦上部署 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 的 SDK v1.x 的應用程式遷移至適用於 Java 的 SDK 2.x,請遵循AWS 適用於 Java 的 SDK 2.x 的步驟。
請依照這些步驟在您的電腦上安裝並執行 DynamoDB。
在電腦上設定 DynamoDB
-
從下列其中一個位置免費下載 DynamoDB 本機。
下載連結 檢查總和 重要
若要在電腦上執行 DynamoDB 2.6.0 版或更新版本,您必須擁有 Java 執行期環境 (JRE) 17.x 版或更新版本。應用程式無法在舊版的 JRE 上執行。
-
在您下載封裝後,請解壓縮內容,並將解壓縮的目錄複製到您選擇的位置。
-
若要在您的電腦上啟動 DynamoDB,請開啟命令提示視窗,導覽至您解壓縮
DynamoDBLocal.jar的目錄,然後輸入下列命令。java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb注意
如果您要使用 Windows PowerShell,請務必括住參數名稱或完整名稱及值,如下所示:
java -D"java.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 Compse 安裝並執行 DynamoDB Local:
-
下載並安裝 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 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容器中執行命令,該命令使用dynamodb-local連線至 AWS CLI 容器,並說明帳戶和資料表限制。若要搭配您自己的應用程式影像使用,請將下列範例中的
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: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 的 SDK v1.x 的應用程式遷移至適用於 Java 的 SDK 2.x,請遵循AWS 適用於 Java 的 SDK 2.x 的步驟。
請按照以下步驟操作,在您的應用程式中將 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.0.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>software.amazon.dynamodb</groupId> <artifactId>DynamoDBLocal</artifactId> <version>3.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 中央存儲庫
URL。
AWS CloudShell 是以瀏覽器為基礎的預先驗證 Shell,您可以直接從 啟動 AWS Management Console。您可以從幾種不同的方式導覽至 AWS CloudShell AWS Management Console 。如需詳細資訊,請參閱 入門 AWS CloudShell。
請依照下列步驟,在 的任何 AWS CloudShell 位置執行 DynamoDB 本機 AWS Management Console。
在 的 AWS CloudShell 中執行 DynamoDB 本機 AWS Management Console
-
AWS CloudShell 從主控台界面啟動,選擇可用的 AWS 區域,然後切換到您偏好的 shell,例如 Bash、PowerShell 或 Z shell。
-
若要選擇 AWS 區域,請前往選取區域功能表,然後選取支援的 AWS 區域 。(可用區域會反白顯示。)
-
從 中 AWS Management Console,選擇下列其中一個選項 AWS CloudShell 來啟動 :
-
在導覽列上,選擇 AWS CloudShell 圖示。
-
在搜尋方塊中,輸入 CloudShell 一詞,然後選擇 CloudShell。
-
在最近造訪的小工具中,選擇 CloudShell。
-
從主控台工具列中,選擇 CloudShell。
-
-
若要在 中執行 DynamoDB 本機 AWS CloudShell ,您可以使用
dynamodb-local別名。您可以指定變更 DynamoDB 本機設定的其他命令列選項。如需可用選項 DynamoDB Local 使用須知 ,請參閱 。注意
若要在背景執行 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 專案