
Product
Redesigned Repositories Page: A Faster Way to Prioritize Security Risk
Our redesigned Repositories page adds alert severity, filtering, and tabs for faster triage and clearer insights across all your projects.
Following code works in both Node.js and browser.
const { Lamool, funcToZip } = require('lamool');
const AWS = require('aws-sdk');
const Lambda = require('aws-sdk/clients/lambda');
AWS.config.region = 'us-east-1';
const lambda = new Lamool();
// const lambda = new Lambda({ apiVersion: '2015-03-31' });
/** ↑ Lamool has AWS Lambda compatible API
* So you can replace AWS Lambda instance to Lamool (and vice versa) without any code changing */
// const lambda = new Lamool(new Lambda({ apiVersion: '2015-03-31' }));
/** ↑ You can pass AWS Lambda instance to Lamool constructor
* to offload functions to AWS Lambda according to user defined strategy */
(async () => {
// This is a function according to AWS Lambda signature
const lambdaFunction = (event, context, cb) => {
cb(null, `key1: ${event.key1}`);
};
const FunctionName = 'MyFunction';
const createFunctionParams = {
Code: { ZipFile: await funcToZip(lambdaFunction) }, // Upload lambda function as zip
FunctionName, // The name of the Lambda function
Handler: 'index.handler', // The name of the method within your code that Lambda calls to execute your function
// If you upload function via funcToZip, Handler must be 'index.handler'
Role: 'arn:aws:iam::000000000000:role/SomeRole', // The Amazon Resource Name (ARN) of the function's execution role.
Runtime: 'nodejs8.10' // The runtime version for the function
};
const invokeParams = {
FunctionName, // The name of the Lambda function.
Payload: JSON.stringify({ key1: 'v1' }) // JSON that you want to provide to your Lambda function as input
};
// Creates a new Lambda function
lambda.createFunction(createFunctionParams, (err, data) => {
if (err) {
console.error(err);
return;
}
console.log('function creating is succeed:', data);
// Invokes a Lambda function
lambda.invoke(invokeParams, (err, data) => {
if (err) {
console.error(err);
return;
}
if (!data.Payload) {
console.error('payload is empty');
}
// data.Payload is the JSON representation of the object returned by the Lambda function
const payload = JSON.parse(data.Payload);
// Indicates whether an error occurred while executing the Lambda function.
// If an error occurred this field will have one of two values; Handled or Unhandled
if (data.FunctionError) {
console.error(`${data.FunctionError} error type:${payload.errorType} message:${payload.error}`);
}
console.log('result:', payload);
// Lamool has terminate() that is not compatible with AWS Lambda
// for terminate child processes or web workers
if (lambda.terminate) {
lambda.terminate();
}
});
});
})();
You can try the above code by executing the following command.
$ git clone https://github.com/mpppk/lamool
$ cd lamool/examples/node
$ npm install
$ node getting_tarted.js
$ npm install lamool
FAQs
Universal AWS Lambda runtime
The npm package lamool receives a total of 8 weekly downloads. As such, lamool popularity was classified as not popular.
We found that lamool demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Our redesigned Repositories page adds alert severity, filtering, and tabs for faster triage and clearer insights across all your projects.
Security News
Slopsquatting is a new supply chain threat where AI-assisted code generators recommend hallucinated packages that attackers register and weaponize.
Security News
Multiple deserialization flaws in PyTorch Lightning could allow remote code execution when loading untrusted model files, affecting versions up to 2.4.0.