[英]AWS Lambda Kinesis consumer - kinesis data json in js
[英]Kinesis to Lambda - Parsing Data
我正在按照本教程將數據從我的API網關推送到Kinesis流:
我將我的身體映射模板設置為......
{
"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 =
...當推送緩沖區時(record.kinesis.data,'base64')。toString('ascii')
返回為
{Foo = A,Bar = B}
不
{“Foo”:“A”,“Bar”:“B”}
主要目的顯然是將有效負載置於我可以說console.log(payload.Foo)
任何關於我應該做什么/尋找什么的提示都將不勝感激。
對於那里的任何人
我將我的身體映射模板設置為......
{
"StreamName": "my-stream-name",
"Data": "$util.base64Encode($input.path('$.Data'))",
"PartitionKey": "$input.path('$.PartitionKey')"
}
現在改為處理json ....
{
"StreamName": "my-stream-name",
"Data": "$util.base64Encode($input.json('$.Data'))",
"PartitionKey": "$input.path('$.PartitionKey')"
}
哪里...
($input.json('$.Data'))
是改變:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.