Skip to main content
Deployment

Deploy to AWS.
Lambda + SQS + EventBridge.

Pikku generates a complete Serverless Framework config from your functions — Lambda for HTTP, SQS for queues, EventBridge for cron. You just run the deploy.

How It Works

Two steps. That's it.

Pikku generates the Serverless Framework config. You deploy it. No hand-written YAML, no mapping routes to Lambda handlers manually.

1

Generate the config

$ pikku deploy apply --provider serverless

Pikku scans your functions and generates a complete serverless.yml plus individually bundled entry points in .deploy/serverless/.

2

Deploy to AWS

$ cd .deploy/serverless && npx serverless deploy

Standard Serverless Framework deploy. Lambda functions, SQS queues, EventBridge rules — all created from the generated config.

3

Local dev

$ cd .deploy/serverless && npx serverless offline start

Run the full stack locally with serverless-offline. Hot reload your functions without touching AWS.

Two-step flow by design

Unlike single-command deploys, Pikku intentionally separates generation from deployment. You get full visibility into the generated serverless.yml before anything hits AWS. Inspect it, tweak it, commit it — then deploy when you're ready.

What Gets Generated

A full serverless.yml from your code.

Pikku reads your function signatures — HTTP routes, queue consumers, cron schedules — and generates everything Serverless Framework needs.

serverless.yml

Complete Serverless Framework config — functions, events, resources, environment

Per-function bundles

Each function gets its own entry point and minimal bundle for fast cold starts

Lambda + HTTP API events

HTTP routes become API Gateway events wired to individual Lambda handlers

SQS queue definitions

Queue consumers get SQS resources auto-created with proper ARN references

EventBridge schedules

Cron functions become EventBridge rules with the schedule expression from your code

Auto-injected env vars

Lambda ARNs, SQS URLs, and resource references wired into environment variables

serverless.ymlgenerated
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
Terminalinspect
$ pikku deploy info --provider serverless

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

Prerequisites

Three things. Five minutes.

If you've deployed to AWS before, you probably already have two of these.

Install the deploy package

Adds the Serverless Framework provider to your Pikku project.

$ npm install @pikku/deploy-serverless

AWS credentials configured

Standard AWS SDK credentials — env vars, ~/.aws/credentials, or IAM role. Same setup you'd use for any AWS deployment.

$ aws configure

Serverless Framework installed

The actual deployment runs through the Serverless Framework CLI. Pikku just generates the config it reads.

$ npm install -g serverless

Ship to Lambda in minutes

No more hand-writing serverless.yml. Let Pikku generate it from your actual code.

$ npm install @pikku/deploy-serverless