Package Exports
- lambda-running
- lambda-running/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (lambda-running) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
π Lambda Running
Run & test AWS Lambda functions locally with ease!
Modern web interface for testing Lambda functions
Test with AWS Lambda event templates
β¨ What is Lambda Running?
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.
π― Key Features
- β 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
.envfiles
π₯οΈ UI Mode (Recommended)
Start the UI mode with a simple command:
# Install globally
npm install -g lambda-running
# Start UI mode
lambda-run uiUI 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
π» Interactive Mode
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"}'π οΈ Quick Usage Guide
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"}'
π§ Configuration
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
π¦ Lambda Layers
Enable AWS Lambda layers support by creating a lambda-running.json file in your project root:
{
"layers": [
"my-common-layer",
"my-utils-layer"
],
"layerMappings": {
"/opt/nodejs/aws-sdk": "./node_modules/aws-sdk",
"/opt/nodejs/axios": "./node_modules/axios"
},
"envFiles": [
".env",
".env.local"
],
"ignorePatterns": [
"**/*.test.js",
"**/__tests__/**"
],
"debug": false
}For a simple layers setup, just specify layer names:
{
"layers": ["general"]
}This will automatically map /opt/nodejs/general to ./layers/general in your project.
Your local project structure should match AWS Lambda's layer structure:
my-project/
βββ lambdarunning.config.json
βββ handler.js (imports from /opt/nodejs/...)
βββ layers/
βββ general/
βββ nodejs/
βββ 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.
Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
layers |
Array | [] |
Simple array of layer names that will be mapped to the ./layers/{name} directory |
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 |
π Learn More
For detailed information, check out:
π License
MIT Β© NicolΓ‘s Montoya