我面临一个非常奇怪的问题,我不确定这是 aws 中的错误还是我缺乏理解。
这是问题所在。我有一个 kinesis analytins 每 40 秒重复一次。所以可以说它在 40 秒前报告了以下内容:
{frist row with some data}, {second row with some data}
所以我将 kinesis analitycs 连接到两个目的地:1) lambda: 并且 lambda 收到的结果如下:
{
"invocationId": "2db390f4-d5a1-49cf-a792-73827d37ec34",
"applicationArn": "arn:aws:kinesisanalytics:us-east-1:638417958056:application/-analytic-app-trending-stories",
"records": [
{
"recordId": "672e17e4-06a9-41cb-a5ba-341cf5f3b879",
"lambdaDeliveryRecordMetadata": {
"retryHint": 0
},
"data": "eyJzSWQiOjQ0NDQ0LCJjSWQiOjExMjIyLCJjb3VudCI6MjAuMCwicm93VGltZTEiOiIyMDE4LTAxLTE2IDE0OjE2OjQwLjAwMSJ9"
},
{
"recordId": "6fbb409d-ddb0-40b7-b700-45b7ce87abe2",
"lambdaDeliveryRecordMetadata": {
"retryHint": 0
},
"data": "eyJzSWQiOjQ0NDQ0LCJjSWQiOjIyMiwiY291bnQiOjEzLjAsInJvd1RpbWUxIjoiMjAxOC0wMS0xNiAxNDoxNjo0MC4wMDEifQ=="
}
]
}
因此,您可以看到在一个有效负载中将两行发送到 lambda,显然我们必须以数组格式将数据发送到 lambda。在解码每条记录中的数据内容后,我看到分析发送的相同结果。到目前为止一切顺利,但问题从这里开始:我将分析连接到 kinesis 流,然后将流连接到 lambda。我希望在第一个场景中发生相同的结果我的意思是应该在第二个 lambda 中接收一个有效负载中的两条记录,但令人惊讶的是,我在每个有效负载中只收到一条记录,并且似乎流拆分数组并以不同的方式发送它以进行更多说明我得到的有效载荷:
{
"Records": [
{
"kinesis": {
"kinesisSchemaVersion": "1.0",
"partitionKey": "hh",
"sequenceNumber": "49580809756311348244603591366792053449767996205245136898",
"data": "eyJzSWQiOjQ0NDQ0LCJjSWQiOjExMjIyLCJjb3VudCI6MjAuMCwicm93VGltZTEiOiIyMDE4LTAxLTE2IDE0OjE2OjQwLjAwMSJ9",
"approximateArrivalTimestamp": 1516112247.8
},
"eventSource": "aws:kinesis",
"eventVersion": "1.0",
"eventID": "shardId-000000000000:49580809756311348244603591366792053449767996205245136898",
"eventName": "aws:kinesis:record",
"invokeIdentityArn": ".....lambda-img-resizer-role",
"awsRegion": "us-east-1",
"eventSourceARN": "arn:aws:kinesis:us-east-1:638417958056:stream/bni-tj-sbx22-stream-trending-stories-output"
}
]
}
正如您在有效负载中看到的,我们只有一个数据属性。我完全迷路了,任何人都可以阐明这一点吗?