lambda-server
v0.9.2
Published
Module for generic initalization of lambda processes and requests
Downloads
2
Readme
lambda-server NPM module
A module for providing some basic services to serverles services implemented by AWS Lambda. For the time being, the server only intitializes a the STACK_NAME environment variable to contain the Cloudformation stack name (based on the function name, e.g. ABC-functionName-123456 => STACK_NAME=ABC). More logic can and will be added later.
Usage
Package your lambda function into a module lambdaFunction.js with syntax
var lambdaServer;
function init(server) {
lambdaServer = server;
}
function handleRequest(event, cb) {
if (ERROR) {
cb(ERROR MESSAGE HERE)
}
console.log('I am in CloudFormation stack ' + process.env.STACK_NAME);
cb(null, {
... YOUR RESPONSE OBJECT HERE
});
}
module.exports = exports = {
init: init,
handleRequest: handleRequest
};
The index.js for your lambda-server based service would be e.g.
var server = require('lambda-server');
var lambdaFunction = require('./lambdaFunction.js');
server.init({
lambdaFunction: lambdaFunction
});
module.exports = exports = {
handler : server.handler
};
An alternative error handler can be registered (e.g. for logging / notifications) by passing the error handler function in 'errorHandler' during lambda-server-init. e.g.
var server = require('lambda-server');
var lambdaFunction = require('./lambdaFunction.js');
var myErrorHandler = function(error, callback) {
call_your_logging_function_here(error, callback);
}
server.init({
lambdaFunction: lambdaFunction,
errorHandler: myErrorHandler
});
module.exports = exports = {
handler : server.handler
};
TODO
Ideas for future versions:
- hook for keeping the function awake triggered via scheduled event
- generic method to manage configuration data for Lambda-based services
- functions to ease deployment to Lambda
Release History
- 2016/01/12 - v0.9.2 - Invoke errorHandler also on Exceptions
- 2015/11/30 - v0.9.1 - Added capability to register alternative error Handler
- 2015/10/23 - v0.9.0 - Initial version of module
License
Copyright (c) 2015 SC5, licensed for users and contributors under MIT license. https://github.com/SC5/lambda-server/blob/master/LICENSE