7rikazhexde’s tech log

技術的な興味関心、備忘録、アウトプットなどを書いています。

DynamoDB localをWindowsで使用する方法

はじめに

  • WindowsでDynamoDB localを使用する方法を調べたので備忘録として記事にしました。
  • WindowsWindows(WSL2)の例を紹介します。
  • テーブル操作はWindows(DynamoDB)← Windows(WSL2:Python)の例を紹介します。
  • dockerによる利用は記載しません。

DynamoDB local v2.x のダウンロード

  • .zipをDLして展開する
  • DynamoDBLocal.jarの保存先に移動してpowershellで以下のコマンドを実行する
java -D"java.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jar
Initializing DynamoDB Local with the following configuration:
Port:   8000
InMemory:       false
DbPath: null
SharedDb:       false
shouldDelayTransientStatuses:   false
CorsParams:     null

AWS CLIインストール

https://aws.amazon.com/jp/cli/ にアクセスし、右側のDLリンクをクリックする。

Windows
64 ビットWindows インストーラをダウンロードし、実行します。

dynamodb-adminを使用するためには認証情報の設定が必要です。詳細は以下を確認してください。

7rikazhexde.github.io

テーブルの作成、書き込み

以下を確認してください。 Windows(DynamoDB)← Windows(WSL2:Python)の場合はendpoint_urlWindows側のIPアドレスを設定する必要があるので注意してください。

7rikazhexde.github.io

Node.js(npm)をインストールする

npmでdynamodb-localをインストールするため、未インストールの場合はNode.jsの公式ページからDL、または、nodenv等でインストールしてください。

https://nodejs.org/ja/downloadnodejs.org

github.com

Windows(WSL2)向け

dynamodb-adminをインストールして起動する

npm install -g dynamodb-admin
DYNAMO_ENDPOINT=http://[dynamodb-localを起動しているPCのアドレス]:8000 dynamodb-admin

  database endpoint:    http://[dynamodb-localを起動しているPCのアドレス]:8000
  region:               [aws configureで設定したregion]
  accessKey:            [aws configureで設定したaccessKey]

  dynamodb-admin listening on http://:::8001 (alternatively http://0.0.0.0:8001)
(node:44479) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the migration guide at https://a.co/7PzMCcy
(Use `node --trace-warnings ...` to show where the warning was created)

http://localhost:8001にアクセスすることでテーブルを確認することができます。

Windows向け

dynamodb-adminをインストールして起動する

powershellで以下を実行します。

npm install -g dynamodb-admin

npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.

added 125 packages in 21s

21 packages are looking for funding
  run `npm fund` for details
npm notice
npm notice New major version of npm available! 9.8.1 -> 10.1.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.1.0
npm notice Run npm install -g npm@10.1.0 to update!
npm notice
set DYNAMO_ENDPOINT=http://localhost:8000
dynamodb-admin

  DYNAMO_ENDPOINT is not defined (using default of http://localhost:8000)
  database endpoint:    http://localhost:8000
  region:               [aws configureで設定したregion]
  accessKey:            [aws configureで設定したaccessKey]

  dynamodb-admin listening on http://:::8001 (alternatively http://0.0.0.0:8001)
(node:26076) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the migration guide at https://a.co/7PzMCcy
(Use `node --trace-warnings ...` to show where the warning was created)

http://localhost:8001にアクセスすることでテーブルを確認することができます。

以上です。