1
我下面這個教程從我的API網關將數據推送到室壁運動流:室壁運動與λ - 解析數據
我有我的身體映射模板設置爲.....
{
"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流設置的觸發器。但是,我正在努力解碼/反序列化來自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 =
...其中,當通過推緩衝液(record.kinesis.data, 'BASE64')。的toString( 'ASCII')
返回如
{美孚= A,酒吧= B}
不
{ 「富」: 「A」, 「酒吧」: 「B」}
主要目的顯然的狀態下,我可以說console.log(payload.Foo)
任何提示,我應該做什麼/尋找將不勝感激。