DynamoDBを利用して開発していると, CloudFormationあるいはServerless Frameworkで環境構築後に,初期データをDynamoDB投入する必要があったので,その方法をメモとして記載します.
目次
-
- 実行環境
-
- スクリプト
-
- 実行
-
- 補足
1. 実行環境
DynamoDBのheightとweightテーブルの2つを事前に作成します.
【AWS勉強メモ】Serverless Frameworkで暗号化をサポートしたDynamoDBテーブルを作成にて記載の環境を事前に作成
2. スクリプト
データ投入用スクリプト
init_dynamodb.sh
# !/bin/bash
set -eux
# REGION
AWS_REGION="ap-northeast-1"
# PROFILE
PROFILE="dynamodb-admin"
aws dynamodb batch-write-item --request-items file://dynamodb.json --region $AWS_REGION --profile $PROFILE
投入データ
dynamodb.json
{
"weight":[
{"PutRequest":{"Item":{"user_id":{"S":"0001"},"value":{"N":"160"}}}},
{"PutRequest":{"Item":{"user_id":{"S":"0002"},"value":{"N":"180"}}}}
],
"height":[
{"PutRequest":{"Item":{"user_id":{"S":"0001"},"value":{"N":"60"}}}},
{"PutRequest":{"Item":{"user_id":{"S":"0002"},"value":{"N":"75"}}}}
]
}
パラメータについて
- AWS CLI 共通
-
--region
で使用リージョンを指定 -
--profile
で利用するプロファイル(権限)を指定
-
- dynamodb batch-write-item
-
--request-items
で投入するデータを格納したファイルパスを指定
-
3. 実行
$ ./init_dynamodb.sh
+ AWS_REGION=ap-northeast-1
+ PROFILE=dynamodb-admin
+ aws dynamodb batch-write-item --request-items file://dynamodb.json --region ap-northeast-1 --profile dynamodb-admin
{
"UnprocessedItems": {}
}
下記の出力から全てのデータが投入できたことがわかる.
{
"UnprocessedItems": {}
}
4. 補足
Serverless FrameworkでDynamoDBを構築しているので,sls remove
でDynamoDBのデータ含めてテーブルを削除している