2017-02-14 5 views
1

私はAWSラムダを持っています。これはAWS Kinesisストリームに接続されています。イベントをキネシスに発射すると、私のラムダが呼び出されます。ここキネシスにイベントをプッシュし、いくつかのサンプルコードは、(この部分は作品)です:私の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' }

どのように使用することができますトリガされているラムダのRequestIdを調べるSequenceNumber?

あなたのラムダハンドラで

答えて

1

SequenceNumbereventの要素であり、そしてRequestIdcontext.aws_request_id

であるあなたはキネシスから受信eventを印刷する(AWSの青写真から)ラムダキネシス・プロセスレコードで試すことができますし、 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を見つける: それは形を持っています。 RequestIdcontext.aws_request_idと同じです。

必要に応じて、ラムダログに2つの値を記録し、どのRequestIdがどのSequenceNumberによってトリガーされているかを知ることができます

関連する問題