Library for running and testing AWS Lambda functions locally with custom events
npm install lambda-running
Modern web interface for testing Lambda functions
Test with AWS Lambda event templates
.env files
bash
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
π» Interactive Mode
If you prefer the command line:
`bash
Start interactive mode
lambda-run i
Or run directly
lambda-run run path/to/handler.js handler --event '{"key": "value"}'
`
π οΈ Quick Usage Guide
1. Install:
`bash
npm install -g lambda-running
`
2. Start UI Mode:
`bash
lambda-run ui
`
3. Or Use Interactive Mode:
`bash
lambda-run i
`
4. Direct Command:
`bash
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
$3
Enable AWS Lambda layers support by creating a lambda-running.json file in your project root:
`json
{
"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.
#### Configuration Options
| 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 |