Skip to main content
Deployment

Deploy to Azure.
Functions + Storage Queues + Timers.

Pikku generates Azure Functions v4 code from your functions — HTTP triggers, Storage Queue triggers, and Timer triggers. You deploy with the Azure CLI.

How It Works

Two steps. That's it.

Pikku generates the Azure Functions code. You deploy it with the Azure CLI. No runtime lock-in, no magic — just generated code you can inspect and customize.

1

Generate function code

Run pikku deploy apply --provider azure. Pikku scans your functions and generates Azure Functions v4 code, host.json, and local settings into .deploy/azure/.

2

Deploy with Azure CLI

cd into .deploy/azure and run func azure functionapp publish <app-name>. Azure's tooling handles packaging, uploading, and provisioning.

3

Local dev with func start

Run func start from the .deploy/azure directory to test locally with the Azure Functions Core Tools emulator. Same triggers, same runtime.

Terminaldeploy
# Generate Azure Functions code
pikku deploy apply --provider azure

# Deploy to your Function App
cd .deploy/azure
func azure functionapp publish my-function-app
Terminallocal dev
# Generate Azure Functions code
pikku deploy apply --provider azure

# Start local dev server
cd .deploy/azure
func start

What Gets Generated

Real Azure code. Not a wrapper.

Pikku generates standard Azure Functions v4 Node.js code. You can read it, modify it, and deploy it with the tools you already know.

host.json

Global Azure Function App configuration — runtime version, extension bundles, and logging settings.

local.settings.json

Local development settings — storage connection strings, runtime config, and environment variables.

Per-function entry points

Each function gets an Azure Functions v4 handler using app.http(), app.storageQueue(), or app.timer() from the Node.js programming model.

Environment variables

Function URLs, queue connection strings, and any config your functions need — all wired up automatically.

src/functions/index.tsgenerated
import { app } from '@azure/functions'
import { pikkuHTTPFunctionHandler } from './pikku-azure-http.js'
import { pikkuQueueHandler } from './pikku-azure-queue.js'
import { pikkuTimerHandler } from './pikku-azure-timer.js'

// HTTP triggers
app.http('getUser', {
methods: ['GET'],
route: 'users/{id}',
authLevel: 'anonymous',
handler: pikkuHTTPFunctionHandler
})

// Storage Queue triggers
app.storageQueue('processOrder', {
queueName: 'orders',
connection: 'AzureWebJobsStorage',
handler: pikkuQueueHandler
})

// Timer triggers
app.timer('dailyCleanup', {
schedule: '0 0 3 * * *',
handler: pikkuTimerHandler
})

HTTP Triggers

REST endpoints via app.http() — GET, POST, PUT, DELETE with route params.

Storage Queue Triggers

Background jobs via app.storageQueue() — process messages from Azure Storage Queues.

Timer Triggers

Scheduled tasks via app.timer() — CRON expressions for recurring jobs.

Prerequisites

What you need before deploying.

A couple of installs and an Azure account. Nothing exotic.

Install the deploy package

$ npm install @pikku/deploy-azure

Azure Function App

$ az functionapp create ...

You need an Azure account with a Function App already created.

Azure Functions Core Tools

$ npm install -g azure-functions-core-tools@4

Ship to Azure in minutes

Generate. Deploy. Done. Your Pikku functions running on Azure Functions with zero boilerplate.

$ npm install @pikku/deploy-azure