Pikku generates a complete Serverless Framework config from your functions — Lambda for HTTP, SQS for queues, EventBridge for cron. You just run the deploy.
# Step 1: Generate config $ pikku deploy apply --provider serverless writing .deploy/serverless/serverless.yml bundling 12 functions... done. # Step 2: Deploy $ cd .deploy/serverless $ npx serverless deploy Deploying my-app to stage dev (us-east-1) Service deployed to stack my-app-dev
Pikku generates the Serverless Framework config. You deploy it. No hand-written YAML, no mapping routes to Lambda handlers manually.
Pikku scans your functions and generates a complete serverless.yml plus individually bundled entry points in .deploy/serverless/.
pikku deploy apply --provider serverlessStandard Serverless Framework deploy. Lambda functions, SQS queues, EventBridge rules — all created from the generated config.
cd .deploy/serverless && npx serverless deployRun the full stack locally with serverless-offline. Hot reload your functions without touching AWS.
cd .deploy/serverless && npx serverless offline startPikku reads your function signatures — HTTP routes, queue consumers, cron schedules — and generates everything Serverless Framework needs.
Complete Serverless Framework config — functions, events, resources, environment.
Each function gets its own entry point and minimal bundle for fast cold starts.
HTTP routes become API Gateway events wired to individual Lambda handlers.
Queue consumers get SQS resources auto-created with proper ARN references.
Cron functions become EventBridge rules with the schedule expression from your code.
Lambda ARNs, SQS URLs, and resource references wired into environment variables.
service: my-app
provider:
name: aws
runtime: nodejs20.x
stage: ${opt:stage, 'dev'}
region: us-east-1
environment:
ORDERS_QUEUE_URL: !Ref OrdersQueue
functions:
getUser:
handler: functions/getUser.handler
events:
- httpApi:
path: /users/{id}
method: get
processOrder:
handler: functions/processOrder.handler
events:
- sqs:
arn: !GetAtt OrdersQueue.Arn
dailyReport:
handler: functions/dailyReport.handler
events:
- schedule:
rate: cron(0 9 * * ? *)
resources:
Resources:
OrdersQueue:
Type: AWS::SQS::Queue
Provider: serverless
Output: .deploy/serverless/
Status: generated
Functions:
HTTP 8 functions (Lambda + API Gateway)
Queue 3 consumers (Lambda + SQS)
Cron 2 schedules (Lambda + EventBridge)
Resources:
OrdersQueue SQS Queue
NotificationQueue SQS Queue
Environment:
ORDERS_QUEUE_URL → !Ref OrdersQueue
NOTIFICATION_QUEUE_URL → !Ref NotificationQueue
If you've deployed to AWS before, you probably already have two of these.
Adds the Serverless Framework provider to your Pikku project.
npm install @pikku/deploy-serverlessStandard AWS SDK credentials — env vars, ~/.aws/credentials, or IAM role. Same setup you'd use for any AWS deployment.
aws configureThe actual deployment runs through the Serverless Framework CLI. Pikku just generates the config it reads.
npm install -g serverlessNo more hand-writing serverless.yml. Let Pikku generate it from your actual code.