如何将测试的Kinesis事件从Postman发布到在无服务器上运行的本地Lambda函数?

时间:2019-04-13 19:14:44

标签: aws-lambda serverless-framework amazon-kinesis

抱歉,不确定如何使问题本身足够简短...

我可以将Postman中的数据发布到本地Lambda函数中。问题是,在本地运行时,我已经使用了这行代码...

event = JSON.parse(event.body);

...这样我就可以做到...

event.Records.forEach(function(record)
{
   // do some stuff
}

但是当我将该功能部署到AWS时,不需要解析event.body。实际上,它会引发错误。

我假设与Kinesis实际发送的内容相比,我从Postman发布到本地应用程序的JSON(或请求的其他方面)有所不同。但是我在本地发布的JSON Blob是直接从AWS上的Lambda登录到Cloudwatch的。

我想念一些东西。

TBH,这很重要,因为在部署过程中必须注释掉该行很烦人并且容易出错。

这是JSON(名称已更改,以保护无辜者):

{
    "Records": [
        {
            "kinesis": {
                "kinesisSchemaVersion": "1.0",
                "partitionKey": "Thursday, 11 April 2019",
                "sequenceNumber": "49594660145138471912435706107712688932829223550684495922",
                "data": "some base 64 stuff",
                "approximateArrivalTimestamp": 1555045874.83
            },
            "eventSource": "aws:kinesis",
            "eventVersion": "1.0",
            "eventID": "shardId-000000000003:1234123412341234123412341234123412341234123412341234",
            "eventName": "aws:kinesis:record",
            "invokeIdentityArn": "arn:aws:iam::1234123412341234:role/lambda-kinesis-role",
            "awsRegion": "us-west-2",
            "eventSourceARN": "arn:aws:kinesis:us-west-2:1234123412341234:stream/front-end-requests"
        }
    ]
}

0 个答案:

没有答案