LoginSignup
2
4

More than 5 years have passed since last update.

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

Posted at

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のデータ含めてテーブルを削除している

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4