我正在按照本教程将数据从API网关推送到Kinesis流:
www.example. com
我有我的身体贴图模板设置为。....
{
"StreamName": "my-stream-name",
"Data": "$util.base64Encode($input.path('$.Data'))",
"PartitionKey": "$input.path('$.PartitionKey')"
}
...并将以下内容放入API测试的请求体中。..
{
"Data": {
"Foo": "A",
"Bar": "B"
},
"PartitionKey": "some key"
}
然后我创建了一个Lambda函数,它有一个针对相同Kinesis Stream设置的触发器。然而,我正在努力解码/反序列化来自Kinesis的记录。
exports.handler = (event, context, callback) => {
event.Records.forEach(function(record) {
let payload = JSON.parse(Buffer(record.kinesis.data, 'base64').toString('ascii'))
});
};
数据似乎正在以非JSON格式序列化到Kinesis。forEach循环中record.kinesis.data
的值为
e0Zvbz1BLCBCYXI9Qn0=
... which when push through Buffer( www.example.com ,'base64')。toString('ascii ')
返回为
{Foo=A,条=B}
不
{“Foo”:“A”,“Bar”:“B”}
主要目的显然是让有效载荷处于一种状态,在这种状态下,我可以说console.log(payload.Foo)
任何提示,我应该做什么/寻找将不胜感激。
1条答案
按热度按时间mmvthczy1#
对其他人来说
我有我的身体贴图模板设置为。....
现在改为处理JSON。...
在哪里
是变化:)