APIゲートウェイをDynamoDBのプロキシとして使用する際に問題が発生しました。AWS APIゲートウェイはJSONをDynamoDBに格納します
基本的には、保存したいデータの構造を知っていればうまく動作しますが、ペイロードの構造に関係なくダイナミックにすることはできません。
APIゲートウェイをDynamoDBのプロキシとして使用する方法を説明するWebサイトが多数あります。 私が見つけたものはどれもJSONオブジェクトの保存方法を説明していません。
基本的に私は私のAPIエンドポイントにこのJSONを送信:
{
"entryId":"abc",
"data":{
"key1":"123",
"key2":123
}
}
私は次のテンプレートを使用してマッピングする場合は、データが正しく
{
"TableName": "Events",
"Item": {
"entryId": {
"S": "abc"
},
"data": {
"M": {
"key1": {
"S": "123"
},
"key2": {
"N": "123"
}
}
}
}
}
私のデータベースに入れますが、私はしないでください"データ"の構造を知っているので、なぜマッピングを動的にするか、より良いものにしたいのですが、私はマッピングを全く避けたいと思います。
私はそれを動的にするために管理が、すべての私のエントリが今String型である:
"data": { "M" : {
#foreach($key in $input.path('$.data').keySet())
"$key" : {"S": "$input.path('$.data').get($key)"}#if($foreach.hasNext),#end
#end }
}
が動的に型を取得することが可能ですか? API Gatewayのマッピングがまだどのように機能しているのかよくわかりません。
ありがとうございました。
セブ
実際にラムダを使用して、覚えていればputitemの代わりにputを使って項目を配置することができました。 しかし私は本当にマッピング問題のためだけにラムダを避けたいと思っています。特に、多数のエントリを扱いたいので、実行するラムダプロセスをたくさんトリガしたくないので – Seb