DynamoDB to'vanilla'JSON
问题描述:
我开始使用AWS中的一些托管服务。看起来应该很简单的一件事是使用API网关来保护和公开对DynamoDB的调用。DynamoDB to'vanilla'JSON
我有这个工作。但是,它似乎有点笨重。 DynamoDB返回是这样的:
{
"id":{"N":"3"}
// Lots of other fields
}
当我真的(以及大多数其他消费者那里)想是这样的:
{
"id":"3"
// Lots of other fields
}
我看到它的方式,我有两个选择。
1)在AWS API UI中按字段添加响应映射字段。这看起来很费力且容易出错:
#set($inputRoot = $input.path('$'))
{
"Id": "$elem.Id.N"
// Lots of other fields
}
2)在执行此映射的API网关和Dynamo之间编写特定的lambda。像https://*.com/a/42231827/2012130这增加了混合维护的另一件事。
有没有更好的方法?我错过了什么吗?似乎非常接近真棒。
答
const AWS = require('aws-sdk');
var db = new AWS.DynamoDB.DocumentClient({
region: 'us-east-1',
apiVersion: '2012-08-10'
});
答
您可以使用ODM像dynogels,
https://github.com/clarkie/dynogels
我们使用大量无需处理dynamodb语法。 这带来了lambda和语言的混合,但当对象变大以执行映射时,处理起来更容易。
希望这会有所帮助。
答
今天还有另外一个选项。它仍然涉及一个lambda步骤,但是......
“Amazon DynamoDB DataMapper for JavaScript是一个高级客户端,用于在AWS SDK for JavaScript之上构建和读取DynamoDB之间的结构化数据。 “
请问您能分享一些代码吗?你在用什么语言?实现目标的一种方法是查看DynamoDB DocumentClient,它应该按照您希望的方式执行。 –
嗨丹尼尔。感谢那。基本上我在这里重新创建教程https://aws.amazon.com/blogs/compute/using-amazon-api-gateway-as-a-proxy-for-dynamodb/ –
DocumentClient就是答案。 – dashmug