抱歉,不确定如何使问题本身足够简短...
我可以将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"
}
]
}