Извините, я не был уверен, как сделать сам вопрос достаточно кратким ...
Я могу отправлять данные из Почтальона в мою локальную функцию Lambda. Проблема в том, что при локальном запуске я использую эту строку кода ...
event = JSON.parse(event.body);
... чтобы я мог это сделать ...
event.Records.forEach(function(record)
{
// do some stuff
}
Но при развертывании функции в AWS парсинг event.body не нужен. На самом деле это выдает ошибку.
Я предполагал, что в JSON (или в других аспектах запроса) есть что-то другое, что я отправляю из Postman в мое локальное приложение, по сравнению с тем, что фактически отправляет Kinesis. Но BLOB-объект JSON, который я публикую локально, был зарегистрирован напрямую из Lambda на AWS в 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"
}
]
}