1.1.1 • Published 7 years ago
thundra-warmup-patch v1.1.1
Thundra Lambda Node.js Warmup Wrapper
Warm up your lambda and reduce cold starts.
Installation
npm install @thundra/warmup --saveUsage
There are three steps to warm up your lambdas.
If you are using Thundra to monitor your lambdas, you can skip step 2.
1. Setup our warmup lambda
You can setup thundra-lambda-warmup manually or using Serverless Framework.
Check out our docs for more information.
Manual setup might sound harder but it is actually more straightforward.
2. Wrap your lambda using this module
const thundraWarmup = require("@thundra/warmup");
const thundraWarmupWrapper = thundraWarmup();
exports.handler = thundraWarmupWrapper((event, context, callback) => {
callback(null, "No more cold starts!");
});Here is an example using ES6+
(see serverless-webpack plugin)
and async/await.
import thundraWarmup from "@thundra/warmup";
const thundraWarmupWrapper = thundraWarmup();
const handler = thundraWarmupWrapper(async event => {
return await someAsyncCall();
});
export { handler };You can also pass an optional callback function which will be called on warmup requests.
const thundraWarmup = require("@thundra/warmup");
const optionalCallback = () => console.log(Warming up...);
const thundraWarmupWrapper = thundraWarmup(optionalCallback);
exports.handler = thundraWarmupWrapper((event, context, callback) => {
callback(null, "No more cold starts!");
});context.succeed, context.fail, context.done are also supported.
const thundraWarmup = require("@thundra/warmup");
const thundraWarmupWrapper = thundraWarmup();
exports.handler = thundraWarmupWrapper((event, context) => {
context.succeed("No more cold starts!");
});3. Enable warming up for your lambda
There are two ways to enable warming up for a specific lambda:
- set
thundra_lambda_warmup_warmupAwareenvironment variabletruein your lambda or - add your lambda's name to
thundra-lambda-warmup'sthundra_lambda_warmup_functionenvironment variable.
For more detailed information, check out warmup configuration.
Changelog
Please see the CHANGELOG file.
1.1.1
7 years ago