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

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -