Run & test AWS Lambda functions locally with ease!
Lambda Running is a powerful library that lets you test AWS Lambda functions locally without any complicated setup. Perfect for developers who want to iterate quickly and test their Lambda functions in a realistic environment.
- β UI Mode - Beautiful web interface with real-time logs
- β Interactive Mode - Simple CLI for quick testing
- β Custom Events - Test with your own JSON payloads
- β Zero Configuration - Works out of the box
- β TypeScript Support - Including path aliases (@/*)
- β
Environment Variables - Automatic loading from
.env
files
Start the UI mode with a simple command:
# Install globally
npm install -g lambda-running
# Start UI mode
lambda-run ui
UI Mode gives you:
- π¨ Modern web interface for testing Lambda functions
- π Real-time logs and execution results
- π Enhanced error visualization and stack traces
- πΎ Save and reuse test events for quick iterations
If you prefer the command line:
# Start interactive mode
lambda-run i
# Or run directly
lambda-run run path/to/handler.js handler --event '{"key": "value"}'
-
Install:
npm install -g lambda-running
-
Start UI Mode:
lambda-run ui
-
Or Use Interactive Mode:
lambda-run i
-
Direct Command:
lambda-run run ./src/handler.js handler --event '{"userId": "123"}'
Lambda Running works with zero configuration, but you can customize:
- .env files - Automatically loaded
- .lambdarunignore - Skip directories during scanning
- Custom timeouts, ports, etc. via environment variables
Enable AWS Lambda layers support by creating a lambda-running.json
file in your project root:
{
"layerMappings": {
"/opt/nodejs": "layers/common",
},
"envFiles": [
".env",
".env.local"
],
"ignorePatterns": [
"**/*.test.js",
"**/__tests__/**"
],
"debug": false
}
This will automatically map /opt/nodejs
to ./layers/common
in your project.
Your local project structure should match this structure:
my-project/
βββ lambdarunning.config.json
βββ handler.js (imports from /opt/nodejs/...)
βββ layers/
βββ common/
βββ utils/
βββ index.js
β οΈ Important: Lambda Layers support currently only works for local development. You must download the layer code and place it in your project directory as shown above. This feature does not fetch layers from AWS cloud.
Option | Type | Default | Description |
---|---|---|---|
layerMappings |
Object | {} |
Detailed mappings from Lambda layer paths to local directories |
envFiles |
Array | ['.env'] |
List of environment files to load (in order of precedence) |
ignorePatterns |
Array | [] |
Additional glob patterns to ignore when scanning for handlers |
ignoreLayerFilesOnScan |
Boolean | true |
Whether to ignore files in the layers directory when scanning for handlers |
debug |
Boolean | false |
Enable debug mode for detailed logging |
For detailed information, check out:
MIT Β© NicolΓ‘s Montoya