@thundra/warmup
v1.1.2
Published
Thundra Lambda Warmup Wrapper
Downloads
526
Maintainers
Readme
Thundra Lambda Node.js Warmup Wrapper
Warm up your lambda and reduce cold starts.
Installation
npm install @thundra/warmup --save
Usage
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!");
});
And disable console.log
output.
const thundraWarmup = require("@thundra/warmup");
const thundraWarmupWrapper = thundraWarmup(null, { logEnabled: false });
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_warmupAware
environment variabletrue
in your lambda or - add your lambda's name to
thundra-lambda-warmup
'sthundra_lambda_warmup_function
environment variable.
For more detailed information, check out warmup configuration.
Changelog
Please see the CHANGELOG file.