【Docker】amazon/dynamodb-localとaaronshaf/dynamodb-adminを組み合わせてローカルのDynamoDBをGUI操作する
version: '3' services: db: image: amazon/dynamodb-local ports: - 8000:8000 db-admin: image: aaronshaf/dynamodb-admin ports: - 8001:8001 environment: AWS_REGION: us-east-1 AWS_ACCESS_KEY_ID: local AWS_SECRET_ACCESS_KEY: local DYNAMO_ENDPOINT: http://db:8000
このような docker-compose.yml
を組んで docker-compose up -d
を実施し、ブラウザで http://localhost:8001
を開くだけなのだが、少しハマった。
GUI上ではテーブル作成・テーブル一覧表示が行えているが、awscliで
aws dynamodb list-tables --endpoint-url http://localhost:8000 --region us-east-1
を叩いても
{ "TableNames": [] }
と返ってきてテーブルが見れない。
Does not work with docker image · Issue #52 · aaronshaf/dynamodb-admin · GitHub
このissueによると endpoint, regionだけでなくaccess keyとsecret keyも完全に合わせる必要がある
ということらしい。
なので次のようにローカル開発用にprofileを作れば良い。
aws configure --profile local AWS Access Key ID : local AWS Secret Access Key : local Default region name : us-east-1 Default output format : json
profileを追加したらそれを使ってさっきのコマンドを叩く。
aws dynamodb list-tables --endpoint-url http://localhost:8000 --region us-east-1 --profie local { "TableNames": [ "test" ] }
GUIから作った test
テーブルを見ることができた。