AWS DYNAMODBローカル環境で使用(1)
1.目的
SpringBootでAWS DYNAMODBを使用するために開発プロセスを行った.
まず,ローカル環境で構築すべきであると考えたので,コスト的に無効であるため,実際に実行中のAWSのDynamodBをローカル環境でどのように使用するかについて検討した.
2.ローカル環境
AWS DYNAMODB公式ドキュメントを参照すると、3つのタイプが得られる.しかし一般的に使われているdockerを使うことにした.あまり使われているからではなく、これから波止場を利用する部分が多いと思います.
3. Docker Image & Run
ドッキングステーションが提供する正式なイメージがあります.その前に、dockerがアクティブであるかどうかを確認し、次の操作を行います.
$ docker pull amazon/dynamodb-local
// -jar DynamoDBLocal.jar -inMemory -sharedDb (옵션 사용 시)
$ docker run -d -p 8000:8000 amazon/dynamodb-local
-inMemory
DBクローズ時にすべてのデータを削除-sharedDb
requestの領域が異なっていても同じ空間を使う4.awscliを使用してdynmodbを操作する
まずawsciをインストールします.
$ brew install awscli
aws configureの設定(IAMとして個別のアカウントを作成することが望ましい)$ aws configure
AWS Access Key ID [None]: ******************
AWS Secret Access Key [None]: ******************
Default region name [None]: local
Default output format [None]: json
5.awscliを使用してdynmodb接続を検証する
// --endpoint-url http://localhost:8000 는 반드시 사용, 입력하지 않으면 local이 아님
aws dynamodb list-tables --endpoint-url http://localhost:8000
接続が正常である場合、jsonは次のように戻ります.6. create-table
端末で次の表生成コマンドを作成するとエラーが発生する可能性がありますので、Shellスクリプトを使用して作成します.進行中にいつもいくつかのエラーが発生します.参考にしたブログの内容が省略されている部分があるのかはわかりませんが、最終的には公式文書を参考に書きました.まず、ここでのポイントは
--global-secondary-indexs
オプションを使うことですが、JSON形式で入力するのはちょっと難しく、投影は使いたくないのですが、値を渡さなければならない形でエラーを返しました.(最終的にはタイプのみALLに渡す)#!/bin/bash
aws dynamodb create-table \
--endpoint-url http://localhost:8000 \
--table-name Comment \
--attribute-definitions \
AttributeName=id,AttributeType=S \
AttributeName=mentionId,AttributeType=N \
AttributeName=createdAt,AttributeType=S \
--key-schema AttributeName=id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 \
--global-secondary-indexes \
"[
{
\"IndexName\": \"byMentionId\",
\"KeySchema\":[{\"AttributeName\":\"mentionId\", \"KeyType\":\"HASH\"},
{\"AttributeName\":\"createdAt\", \"KeyType\":\"RANGE\"}],
\"Projection\": {
\"ProjectionType\": \"ALL\"
},
\"ProvisionedThroughput\": {
\"ReadCapacityUnits\": 1,
\"WriteCapacityUnits\": 1
}
}
]"
Reference
この問題について(AWS DYNAMODBローカル環境で使用(1)), 我々は、より多くの情報をここで見つけました https://velog.io/@givepro91/AWS-DynamoDB-로컬-환경에서-사용テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol