Archived — Kept for reference. Not part of the current portfolio.
A serverless deployment framework that packages, deploys, invokes, and monitors serverless functions. Supports HTTP, cron, and queue event triggers with multi-stage deployments and rollback capabilities.
- Smart Packaging - Bundle with tree-shaking, dev dependency exclusion, size optimization
- Multi-stage Deploy - dev, staging, production with stage-specific configuration
- Blue-green Deployment - Health checks with automatic rollback on failure
- Local Invocation - Test functions locally with mock events and contexts
- Log Viewer - Fetch, filter, and tail function logs with color formatting
- Event Templates - HTTP (API Gateway) and cron (CloudWatch) event mocking
npm install -g serverless-deployservice: my-api
provider:
name: aws
runtime: nodejs18.x
region: us-east-1
stage: dev
memorySize: 256
timeout: 30
environment:
DATABASE_URL: ${env.DATABASE_URL}
NODE_ENV: ${self.provider.stage}
functions:
getUsers:
handler: src/handlers/getUsers.handler
memory: 512
events:
- http:
path: /users
method: GET
cors: true
processQueue:
handler: src/handlers/processQueue.handler
timeout: 60
events:
- sqs:
queue: my-queue
batchSize: 10
dailyReport:
handler: src/handlers/dailyReport.handler
events:
- schedule:
rate: rate(1 day)
description: Generate daily report
enabled: true
plugins:
- serverless-offline
custom:
tableName: users-${self.provider.stage}export async function handler(event: any, context: any) {
const users = await db.query('SELECT * FROM users LIMIT 10');
return {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ users }),
};
}# Deploy all functions to dev
sls-deploy deploy
# Deploy to staging
sls-deploy deploy --stage staging --region eu-west-1
# Deploy single function
sls-deploy deploy --function getUsers --stage prod
# Dry run
sls-deploy deploy --dry-run
# Force deploy (skip change detection)
sls-deploy deploy --force# Invoke locally
sls-deploy invoke -f getUsers --local
# Invoke with event data
sls-deploy invoke -f getUsers --local -d '{"pathParameters":{"id":"123"}}'
# Invoke remotely
sls-deploy invoke -f getUsers --stage prod# View recent logs
sls-deploy logs -f getUsers
# Tail logs in real-time
sls-deploy logs -f getUsers --tail
# Filter logs
sls-deploy logs -f getUsers --filter "ERROR"
# Logs from last 30 minutes
sls-deploy logs -f getUsers --start 30m# Remove single function
sls-deploy remove -f getUsers --stage dev
# Remove entire service
sls-deploy remove --stage devsls-deploy status --stage prod --region us-east-11. Parse serverless.yml
|
2. Package functions
|-- Bundle source code
|-- Tree-shake unused code
|-- Exclude dev dependencies
|-- Generate zip archive
|
3. Deploy (per function)
|-- Upload package
|-- Create/update function
|-- Set environment variables
|-- Configure event triggers
|-- Set memory & timeout
|
4. Health check
|-- Pass -> Switch traffic (blue-green)
|-- Fail -> Rollback to previous version
|
5. Report results
import { createHttpEvent, createSuccessResponse } from 'serverless-deploy/templates/http';
const event = createHttpEvent({
httpMethod: 'POST',
path: '/users',
body: JSON.stringify({ name: 'Alice' }),
});
const response = createSuccessResponse({ id: 1, name: 'Alice' }, 201);import { createCronEvent } from 'serverless-deploy/templates/cron';
const event = createCronEvent('rate(1 hour)', { reportType: 'daily' });| Option | Alias | Description | Default |
|---|---|---|---|
--stage |
-s |
Deployment stage | dev |
--region |
-r |
Cloud region | us-east-1 |
--function |
-f |
Target function name | all |
--dry-run |
Preview without deploying | false |
|
--force |
Skip change detection | false |
|
--local |
Invoke locally | false |
|
--tail |
-t |
Follow log output | false |
--filter |
Filter logs by pattern | - | |
--data |
-d |
Event data (JSON string) | {} |
MIT
serverless-deploy est un outil TypeScript pour déployer des fonctions serverless sur différents fournisseurs cloud. Il automatise le packaging, la configuration et le déploiement, avec support de plusieurs environnements (dev, staging, production).
npm install
npm run buildnpm run deploy -- --env production