首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对Lambda解析数据的动态分析

对Lambda解析数据的动态分析
EN

Stack Overflow用户
提问于 2017-04-20 15:34:52
回答 1查看 1.2K关注 0票数 1

我遵循本教程将数据从我的API网关推送到一个Kinesis流:

http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-kinesis.html#api-gateway-get-and-add-records-to-stream

我的身体映射模板设置为.

代码语言:javascript
复制
{
    "StreamName": "my-stream-name",
    "Data": "$util.base64Encode($input.path('$.Data'))",
    "PartitionKey": "$input.path('$.PartitionKey')"
}

...and已经在API测试的请求主体中放置了以下内容.

代码语言:javascript
复制
{
  "Data": {
    "Foo": "A",
    "Bar": "B"
  },
  "PartitionKey": "some key"
}

然后,我创建了一个Lambda函数,它对相同的Kinesis设置了一个触发器。然而,我正在努力解码/反序列化来自Kinesis的记录。

代码语言:javascript
复制
exports.handler = (event, context, callback) => {    
    event.Records.forEach(function(record) {        
        let payload = JSON.parse(Buffer(record.kinesis.data, 'base64').toString('ascii'))      
    });
};

数据似乎正在以非JSON格式序列化为Kinesis。record.kinesis.data在forEach循环中的值是

e0Zvbz1BLCBCYXI9Qn0=

...which时通过缓冲区(record.kinesis.data,'base64').toString('ascii')

返回为

{Foo=A,Bar=B}

{"Foo":"A","Bar":"B"}

主要目标显然是在我可以说是console.log(payload.Foo)的状态下获得有效载荷。

任何关于我应该做什么/寻找什么的提示都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-04-21 11:05:05

对其他人来说

我让我的身体映射模板设置为.

代码语言:javascript
复制
{
    "StreamName": "my-stream-name",
    "Data": "$util.base64Encode($input.path('$.Data'))",
    "PartitionKey": "$input.path('$.PartitionKey')"
}

现在改为处理json..。

代码语言:javascript
复制
{
    "StreamName": "my-stream-name",
    "Data": "$util.base64Encode($input.json('$.Data'))",
    "PartitionKey": "$input.path('$.PartitionKey')"
}

在哪里..。

代码语言:javascript
复制
($input.json('$.Data'))

是改变:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43524008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档