我如何确定我的 Kinesis 事件触发了哪个特定的 Lambda 请求?
How can I figure out which specific Lambda request my Kinesis event triggered?
我有一个连接到(由其触发)AWS Kinesis Stream 的 AWS lambda。当我将事件发送到 Kinesis 时,我的 lambda 被调用。下面是一些将事件推送到 Kinesis 中的示例代码(这部分有效):
var kinesis = new AWS.Kinesis({
region: 'us-east-1'
});
var params = {
Data: new Buffer(JSON.stringify(data)),
StreamName: 'myStreamName',
PartitionKey: uuid.v1()
};
kinesis.putRecord(params, function(err, data) {
done();
});
当我成功放置记录时,我得到这样的响应:
{ ShardId: 'shardId-000000000000',
SequenceNumber: '49570419697469019326213778569044054238145932258132885506' }
如何使用 SequenceNumber 查找被触发的 lambda 的 RequestId?
在您的 lambda 处理程序中,SequenceNumber
是 event
的一个元素,而 RequestId
在 context.aws_request_id
中
您可以尝试使用 lambda kinesis-process-record(来自 aws 蓝图)来打印从 kinesis 收到的 event
和 context
。
它将具有以下形式:
"Records": [
{
"eventVersion": "1.0",
"eventID": "shardId-000000000003:435694251339676724843833861912342195614145114762801",
"kinesis": {
"approximateArrivalTimestamp": 1487001596.082,
"partitionKey": "xx",
"data": "xxx",
"kinesisSchemaVersion": "1.0",
"sequenceNumber": "435694251339676724843833861912342195614145114762801"
},
"invokeIdentityArn": "xxx",
"eventName": "aws:kinesis:record",
"eventSourceARN": "xxx",
"eventSource": "aws:kinesis",
"awsRegion": "xxx"
}
]
所以你找到了你的 sequenceNumber
。
context.aws_request_id
.
中的 RequestId
也一样
所以根据您的需要,您可以在 lambda 日志中记录这 2 个值,以了解哪个 RequestId 被哪个 SequenceNumber
我有一个连接到(由其触发)AWS Kinesis Stream 的 AWS lambda。当我将事件发送到 Kinesis 时,我的 lambda 被调用。下面是一些将事件推送到 Kinesis 中的示例代码(这部分有效):
var kinesis = new AWS.Kinesis({
region: 'us-east-1'
});
var params = {
Data: new Buffer(JSON.stringify(data)),
StreamName: 'myStreamName',
PartitionKey: uuid.v1()
};
kinesis.putRecord(params, function(err, data) {
done();
});
当我成功放置记录时,我得到这样的响应:
{ ShardId: 'shardId-000000000000',
SequenceNumber: '49570419697469019326213778569044054238145932258132885506' }
如何使用 SequenceNumber 查找被触发的 lambda 的 RequestId?
在您的 lambda 处理程序中,SequenceNumber
是 event
的一个元素,而 RequestId
在 context.aws_request_id
您可以尝试使用 lambda kinesis-process-record(来自 aws 蓝图)来打印从 kinesis 收到的 event
和 context
。
它将具有以下形式:
"Records": [
{
"eventVersion": "1.0",
"eventID": "shardId-000000000003:435694251339676724843833861912342195614145114762801",
"kinesis": {
"approximateArrivalTimestamp": 1487001596.082,
"partitionKey": "xx",
"data": "xxx",
"kinesisSchemaVersion": "1.0",
"sequenceNumber": "435694251339676724843833861912342195614145114762801"
},
"invokeIdentityArn": "xxx",
"eventName": "aws:kinesis:record",
"eventSourceARN": "xxx",
"eventSource": "aws:kinesis",
"awsRegion": "xxx"
}
]
所以你找到了你的 sequenceNumber
。
context.aws_request_id
.
RequestId
也一样
所以根据您的需要,您可以在 lambda 日志中记录这 2 个值,以了解哪个 RequestId 被哪个 SequenceNumber