Fix: Windows Consumption (Y1) correctly supports deployment slots for Azure Functions#1062
Fix: Windows Consumption (Y1) correctly supports deployment slots for Azure Functions#1062
Conversation
… staging slot Co-authored-by: paulyuk <1968137+paulyuk@users.noreply.github.com>
| | Hosting Plan | OS | Slots Supported | | ||
| |---|---|---| | ||
| | Flex Consumption (FC1) | Linux | ❌ 0 | | ||
| | Consumption (Y1) | **Windows** | ✅ 1 staging slot | |
There was a problem hiding this comment.
Y1 also supports the 1 staging slot. We need to decouple the support of slots with our guidance whether to use Y1 or not. While we don't recommend it, if you *need it, it can be done and it has the slot
There was a problem hiding this comment.
Updated in 651b804. The guidance callout now leads with the factual statement ("Windows Consumption Y1 supports 1 staging slot — this is a supported platform capability. If you need it, use it.") and separates that cleanly from the recommendation ("for new projects, prefer Elastic Premium or Dedicated"). The two concerns are now independent.
…ent-slots.md Co-authored-by: paulyuk <1968137+paulyuk@users.noreply.github.com>
| |---|---|---| | ||
| | Flex Consumption (FC1) | Linux | ❌ 0 | | ||
| | Consumption (Y1) | **Windows** | ✅ 1 staging slot | | ||
| | Consumption (Y1) | Linux | ❌ 0 | |
There was a problem hiding this comment.
Linux Consumption also supports slots (1 Slot) but should not be considered in light of deprecation
| { name: 'FUNCTIONS_EXTENSION_VERSION', value: '~4' } | ||
| { name: 'FUNCTIONS_WORKER_RUNTIME', value: 'node' } | ||
| { name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING', value: 'DefaultEndpointsProtocol=https;AccountName=${storageAccount.name};AccountKey=${storageAccount.listKeys().keys[0].value}' } | ||
| { name: 'WEBSITE_CONTENTSHARE', value: '${toLower(serviceName)}-staging' } // MUST differ from production |
There was a problem hiding this comment.
This is optional for slots as discussed at https://learn.microsoft.com/en-us/azure/azure-functions/functions-app-settings#website_contentshare
| > If a user specifically needs Windows Consumption with a slot, that is supported — use the Windows pattern below. | ||
| > For new apps needing slots, prefer **Elastic Premium (EP1)** for better performance and no cold-start issues. | ||
| ### Linux Consumption (no slot support) |
There was a problem hiding this comment.
Linux Consumption also supports 1 slot but should not be recommended in light of deprecation
README.mdhosting plans table: split Y1 into Windows/Linux rows, add "Slots" column, add deployment slots guidance notedeployment-slots.md: add "Slot Requirements — Azure Functions" section with OS/plan breakdown, add Windows Consumption + staging slot Bicep example, add WEBSITE_CONTENTSHARE sticky-settings notebicep.mdConsumption Plan: split into Linux (no slots) and Windows (1 staging slot) subsections, with complete Bicep examplesterraform.mdConsumption Plan: split into Linux (no slots) and Windows (1 staging slot) subsections, with complete Terraform examplesdeployment-slots.md— Y1 Windows supports slots as a platform fact; recommendations for alternatives are stated separatelyOriginal prompt
This section details on the original issue you should resolve
<issue_title>[Skill Bug]: Azure Functions Slots Support Confusion.</issue_title>
<issue_description>### Preflight Checklist
Repro Steps
Install the Skills into GitHub Copilot.
Run this prompt "Create an Azure Functions Node 24 app that has a staging slot and make sure that WEBSITE_CONTENT_SHARE is different on each slot and also ensure that the created Storage account has logging enabled for Azure Files. Create a Node 24 Function App but do not deploy. "
There is no Elastic Premium Quota so I ask to switch back to Consumption and then it hallucinates
Asked user: Your subscription has 0 Elastic Premium (EP) App Service ...
└ User responded: Switch to the Dynamic Plan aka Windows Consumption
◐ The user wants to switch to the Consumption plan (Dynamic/Y1). Let me update the Bicep to use a Consumption plan.
For Consumption plan on Linux:
Wait, actually on Windows Consumption you DO need WEBSITE_CONTENTAZUREFILECONNECTIONSTRING and WEBSITE_CONTENTSHARE.
The user said "Windows Consumption" so let me use Windows.
Actually, the user said "Dynamic Plan aka Windows Consumption". But our Bicep has
kind: 'functionapp,linux'andlinuxFxVersion: 'Node|24'.I need to switch to Windows for Node.js, which means using
WEBSITE_NODE_DEFAULT_VERSIONinstead oflinuxFxVersion. But here's the issue: Consumption plans don't support deployment slots at all—only Standard,Premium, and Isolated tiers do. The user originally wanted a slot, but with Y1/Dynamic, that's not possible.
Let me update the Bicep template accordingly: I'll change to a Y1/Dynamic App Service Plan, set
kind: 'functionapp'without thereservedproperty, useWEBSITE_NODE_DEFAULT_VERSION: '~24'for the runtime, andremove the staging slot since it's not supported on Consumption. I'll also need to include
WEBSITE_CONTENTAZUREFILECONNECTIONSTRINGandWEBSITE_CONTENTSHAREfor proper file storage configuration.● Asked user: Note: The Consumption (Dynamic/Y1) plan does NOT support ...
└ User responded: I don't want Flex I want Windows Consumption with Slots Suppo...
◐ The user wants Windows Consumption with Slots support. But Consumption plan (Y1/Dynamic) does NOT support deployment
slots. This is a hard limitation of the Azure platform.
Slot support by plan:
Consumption (Y1/Dynamic) definitely does not support slots.
This is a platform limitation, so I need to suggest alternatives that actually support slots—like Standard S1,
Premium V2/V3, or Elastic Premium plans—since Consumption just won't work for this requirement.
Asked user: Since Consumption doesn't support slots, should I switch ...
└ User responded: The Windows Consumption plan that isn't flex supports Slots
◐ The user insists that Windows Consumption supports slots. Let me research this to check if this is actually true.
Let me do a web search to verify.
Actually, I know for a fact that the Azure Consumption plan (Y1/Dynamic) does NOT support deployment slots. This has
been a long-standing Azure limitation. Only Premium and Standard/higher dedicated plans support slots for
Functions.
But wait - let me double-check. Maybe something changed recently (since this is February 2026). Let me do a web
search.
● Web Search: Does Azure Functions Consumption plan support deployment slots in 2025 2026?
└ {"type":"text","text":{"value":"As of 2025 and into 2026, Azure Functions on ...
◐ The user is correct! Windows Consumption plan DOES support deployment slots (up to 2, including production, so 1
staging slot). I was wrong. Let me update the Bicep to use Windows Consumption (Y1/Dynamic) with a staging slot.
Key changes needed:
Y1, tierDynamic, kind removed or set tofunctionappkind: 'functionapp'(no linux), removelinuxFxVersion, addWEBSITE_NODE_DEFAULT_VERSIONWEBSITE_CONTENTAZUREFILECONNECTIONSTRINGandWEBSITE_CONTENTSHAREPrompt
Create a Node 24 Functions App on the Elastic Premium with a Slot and make sure that the Storage account has Azure
Files logging e...
🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.