我在尝试使用 API Gateway 作为 DynamoDB 的代理时遇到问题。
基本上,如果我知道要存储的数据的结构,它会很好用,但无论有效负载结构如何,我都无法使其动态化。
有很多网站解释了如何使用 API Gateway 作为 DynamoDB 的代理。
我发现没有解释如何存储 JSON 对象。
基本上我将此 JSON 发送到我的 API 端点:
{
"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 网关映射是如何工作的。
谢谢你的帮助。
塞伯
最佳答案
插入 Dynamodb 时,您不会避免某种映射。我建议使用 Lambda 函数而不是服务代理,以便在将数据映射到 Dynamodb 架构时提供更多控制权和灵活性。
关于amazon-web-services - AWS API Gateway 将 JSON 存储到 DynamoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36993822/