Files

3.1 KiB

Azure Functions

Serverless compute for event-driven workloads, APIs, and scheduled tasks.

⚠️ MANDATORY: Use Composition Algorithm

NEVER synthesize Bicep or Terraform from scratch for Azure Functions.

You MUST follow the base + recipe composition workflow:

  1. Load selection.md — decision tree for choosing base template + recipe
  2. Follow composition.md — the algorithm for fetching and composing

This ensures proven IaC patterns, correct RBAC, and Flex Consumption defaults.

When to Use

  • Event-driven workloads
  • Scheduled tasks (cron jobs)
  • HTTP APIs with variable traffic
  • Message/queue processing
  • Real-time file processing
  • MCP servers for AI agents
  • Real-time streaming and event processing
  • Orchestrations and workflows (Durable Functions)

Service Type in azure.yaml

services:
  my-function:
    host: function
    project: ./src/my-function

Required Supporting Resources

Resource Purpose
Storage Account Function runtime state
App Service Plan Hosting (Consumption or Premium)
Application Insights Monitoring

Hosting Plans

Use Flex Consumption for new deployments (all AZD templates default to Flex).

For the full comparison matrix (scale limits, instance sizing, deployment slots, cost model, and a decision tree), see hosting-plans.md. For mitigating cold starts on any plan, see cold-start.md.

Runtime Stacks

⚠️ ALWAYS QUERY OFFICIAL DOCUMENTATION FOR VERSIONS

Do NOT use hardcoded versions. Query for latest GA versions before generating code:

Primary Source: Azure Functions Supported Languages

Use the azure-documentation MCP tool to fetch current supported versions:

intent: "Azure Functions supported language runtime versions"
learn: true

Version Selection Priority

  1. Latest GA — For new projects (best features, longest support window)
  2. LTS — For enterprise/compliance requirements
  3. User-specified — When explicitly requested
Language FUNCTIONS_WORKER_RUNTIME linuxFxVersion
Node.js node Node|<version>
Python python Python|<version>
.NET dotnet-isolated DOTNET-ISOLATED|<version>
Java java Java|<version>
PowerShell powershell PowerShell|<version>

References