我面临一个非常奇怪的问题,我不确定这是一个错误还是我缺乏理解。
这是问题所在。 我每隔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"
}
]
}
正如您在有效负载中看到的那样,我们只有一个数据attr。我完全迷失了,任何人都可以对此有所了解吗?