← ClaudeAtlas

deploying-fc1-flex-consumption-functionslisted

Deploys standalone Azure Function Apps on Flex Consumption (FC1) for workloads SWA managed functions can't handle — timer triggers, queue triggers, AI workloads, long-running operations, or when you need managed identity / Key Vault references (SWA managed functions support neither). Provisions via Bicep or ARM REST because az CLI flags silently fall back to the retiring Linux Consumption (Y1) plan. Includes the forbidden-app-settings list, the az-CLI zip deploy (Azure/functions-action is a single point of failure), instance sizing, and managed-identity storage auth. Use when adding a non-HTTP trigger, exceeding the 30s SWA limit, or fixing a Function App that landed on the wrong plan.
alexpizarro/azure-lean-stack-skills · ★ 1 · DevOps & Infrastructure · score 72
Install: claude install-skill alexpizarro/azure-lean-stack-skills
# Deploying FC1 Flex Consumption Function Apps Use FC1 when SWA managed functions don't fit: timer triggers, queue triggers, AI workloads, or anything that runs longer than 30 seconds. ## Workflow checklist Copy this checklist and tick items off: ``` FC1 Flex Consumption provisioning: - [ ] Step 1: Confirm SP has User Access Administrator at the RG scope (needed for MI role assignments) - [ ] Step 2: Deploy storage account with the deployment container (storage-for-fc1.bicep) - [ ] Step 3: Deploy FC1 plan + Function App via Bicep (NEVER az CLI — it silently mis-creates the plan) - [ ] Step 4: Verify properties.sku == "FlexConsumption" with az functionapp show - [ ] Step 5: Confirm FUNCTIONS_WORKER_RUNTIME is NOT in app settings - [ ] Step 6: Confirm package.json has "main": "dist/index.js" and "engines": { "node": "22" } (CommonJS — same as SWA) - [ ] Step 7: Confirm src/index.ts imports every function file (a missing import = silent 404) - [ ] Step 8: Deploy code with `az functionapp deployment source config-zip` (not Azure/functions-action); verify with `az functionapp show --query properties.sku` == FlexConsumption - [ ] Step 9: Wait up to 10 min for MI role assignment propagation if first call fails - [ ] Step 10: Restart the app once after the first deploy — the v4 Node host doesn't always discover functions from a fresh zip until it recycles ``` ## Why this is hard Azure Flex Consumption (FC1) looks similar to deprecated Linux Consumption (Y1) in the portal but be