したかったこと
- DynamoDBに一括でCSVファイルの内容をアップロードしたい
- テーブルにはソートキーを設定したい
プライマリキーだけの場合の記事はいっぱいあったが、ソートキーのあるものはみなかった。
方法
CloudFormationに「CSVをDynamoDBに入れる」スタックを作成
以下の一括アップロードの方法をベースにして、テンプレートファイルの中身だけ少し変える。
テンプレートファイル
テンプレートファイルにソートキーの情報を足す。
データ型はStringなら "S" にする。
"Resources": {
"DynamoDBTable":{
"Type": "AWS::DynamoDB::Table",
"Properties":{
"TableName": {"Ref" : "DynamoDBTableName"},
"BillingMode": "PAY_PER_REQUEST",
"AttributeDefinitions":[
{
"AttributeName": "【パーティションキー名】",
"AttributeType": "【データ型】"
},
{
"AttributeName": "【ソートキー名】",
"AttributeType": "【データ型】"
}
],
"KeySchema":[
{
"AttributeName": "【パーティションキー名】",
"KeyType": "HASH"
},
{
"AttributeName": "【ソートキー名】",
"KeyType": "RANGE"
}
],
"Tags":[
{
"Key": "Name",
"Value": {"Ref" : "DynamoDBTableName"}
}
]
}
},
備考
bucket already existエラーが出た
-> 一意でなければならないよう
スタックを削除して、一意なバケット名を入れて、もう一度作り直した。