AWS
DynamoDB

【AWS勉強メモ】AWS CLIでDynamoDBにデータを投入 (aws dynamodb batch-write-item)

DynamoDBを利用して開発していると, CloudFormationあるいはServerless Frameworkで環境構築後に,初期データをDynamoDB投入する必要があったので,その方法をメモとして記載します.

目次

  • 1. 実行環境
  • 2. スクリプト
  • 3. 実行
  • 4. 補足

1. 実行環境

DynamoDBのheightとweightテーブルの2つを事前に作成します.

image00.png
【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 共通
  • 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のデータ含めてテーブルを削除している