node.js - Amazon Kinesis NodeJS - putRecord action expires -
i'm using nodejs , express proxy handle http requests, small adapting of data, , submit data amazone kinesis. here extract code:
var express = require('express'); var app = express(); app.get('/proxy-test', function(req, res){ var data = req.query; // perform light data processing // send results kinesis kinesis.putrecord({ streamname : my_stream_name, data : data, partitionkey : my_partition_key }, function(err, data) { if (err) { console.log(err, err.stack); // error occurred } else { console.log(data); } }); res.send(200); });
after running jmeter tests 200 concurrent users (loop 100 times), after 5 mins, i'm getting error:
{ [invalidsignatureexception: signature expired: 20140409t152855z earlier 20140409t153211z (20140409t153711z - 5 min.)] message: 'signature expired: 20140409t152855z earlier 20140409t153211z (20140409t153711z - 5 min.)', code: 'invalidsignatureexception', time: wed apr 09 2014 17:37:11 gmt+0200 (cest), statuscode: 400, retryable: false, _willretry: false } 'invalidsignatureexception: signature expired: 20140409t152855z earlier 20140409t153211z (20140409t153711z - 5 min.)\n @ request.extracterror (/users/me/proxy/node_modules/aws-sdk/lib/service_interface/json.js:43:33)\n @ request.calllisteners (/users/me/proxy/node_modules/aws-sdk/lib/sequential_executor.js:114:20)\n @ request.emit (/users/me/proxy/node_modules/aws-sdk/lib/sequential_executor.js:81:10)\n @ request.emit (/users/me/proxy/node_modules/aws-sdk/lib/request.js:578:14)\n @ request.transition (/users/me/proxy/node_modules/aws-sdk/lib/request.js:12:12)\n @ acceptorstatemachine.runto (/users/me/proxy/node_modules/aws-sdk/lib/state_machine.js:14:12)\n @ /users/me/proxy/node_modules/aws-sdk/lib/state_machine.js:26:10\n @ request. (/users/me/proxy/node_modules/aws-sdk/lib/request.js:28:9)\n @ request. (/users/me/proxy/node_modules/aws-sdk/lib/request.js:580:12)\n @ request.calllisteners (/users/me/proxy/node_modules/aws-sdk/lib/sequential_executor.js:90:20)'
is there can (configuration or code change) in order ensure kinesis records sent , saved?
it possible you're experiencing clock drift on kinesis producer instance (the instance you're running nodejs on). used see quite when querying aws api of various services (not kinesis).
it pretty common install , configure ntp use aws nodes in ntp pool:
sudo apt-get -qy install ntp sudo sed -i -r 's/^(server\s[0-3]\.)ubuntu([a-z\.]+)/\1amazon\2 iburst/' /etc/ntp.conf sudo sed -i -r 's/^(server\sntp\.ubuntu\.com)/#\1\nserver time.nist.gov/' /etc/ntp.conf sudo service ntp restart
here link more documentation if you're interested:
http://docs.aws.amazon.com/awsec2/latest/userguide/set-time.html
Comments
Post a Comment