I use NodeJS and Express as a proxy to process HTTP GET requests, adapt the data a bit and send the data to Amazone Kinesis. Here is an excerpt from my code:
var express = require('express');
var app = express();
app.get('/proxy-test', function(req, res){
var data = req.query;
kinesis.putRecord({
StreamName : MY_STREAM_NAME,
Data : data,
PartitionKey : MY_PARTITION_KEY
}, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
res.send(200);
});
After running JMeter tests for 200 concurrent users (cycle 100 times), after 5 minutes I get this error:
{[InvalidSignatureException: : 20140409T152855Z 20140409T153211Z (20140409T153711Z - 5 .)] : " : 20140409T152855Z 20140409T153211Z (20140409T153711Z - 5 .)", : "InvalidSignatureException", : 09 2014 17:37:11 GMT + 0200 (CEST), statusCode: 400, retryable: false, _willRetry: false} 'InvalidSignatureException: : 20140409T152855Z 20140409T153211Z (20140409T153711Z - 5 .)\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 . (/Users/me/proxy/node_modules/aws-sdk/lib/request.js:28:9)\n . (/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) '
-, ( ), , Kinesis ?