🥋
AWS DynamoDBに自分で型付与せずにデータを入れる方法
DynamoDBにデータを入れるには型付与が必須ぽい
例えばDynamoDBにデータを入れたいってなったとき、
"epicenter": {
"lat": 35.4,
"lng": 136.6,
},
こんなデータだった場合は
"epicenter": {
"M": {
"lat": {
"N": 35.4
},
"lng": {
"N": 136.6
}
}
},
こんな感じにしなくてはいけません。
上記のような値が定まっているMap型のデータであればよいのですが、Mapを複数所持しているList型データの場合などは、このようにフォーマットするのがめんどくさいなぁと思いました。
そしたらちゃんと用意されていました。
公式Docに書いてあるmarshall
というものです。
マーシャルとは異なる技術基盤で実装されたコンピュータプログラム間で、データの交換や機能の呼び出しができるようデータ形式の変換などを行うことです。:IT用語辞典より
例えばAWS-SDK V3で使う場合は
import { marshall } from '@aws-sdk/util-dynamodb'
のようにimportし、
const params = {
TableName: 'EarthquakeTable',
Item: marshall(mapData),
}
のようにItemをmarshall
でくくればあとはいい感じにやってくれます。
Discussion