You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/reliability/reliability-functions.md
+74-19Lines changed: 74 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,7 @@ When zone redundancy is enabled in a Flex Consumption plan, instance spreading i
42
42
43
43
-[Always-ready](../azure-functions/flex-consumption-plan.md#always-ready-instances) instances are distributed across zones in a round-robin fashion.
44
44
- On-demand instances, which are created as a result of event source volumes as the app scales beyond always-ready, are distributed across availability zones on a _best effort_ basis. This means that for on-demand instances, faster scale-out is given preference over even distribution across availability zones. The platform attempts even-out distribution over time.
45
-
- To ensure zone resiliency with availability zones, the platform automatically guarantees at least 2 instances of the always-ready type exist for each [per-function scaling function or group](../azure-functions/flex-consumption-plan.md#per-function-scaling), regardless of the always-ready configuration for the app. Any instances created by the platform are platform managed, billed as always-ready instances, and won't change the always-ready configuration settings.
45
+
- To ensure zone resiliency with availability zones, the platform automatically guarantees at least two instances of the always-ready type exist for each [per-function scaling function or group](../azure-functions/flex-consumption-plan.md#per-function-scaling), regardless of the always-ready configuration for the app. Any instances created by the platform are platform managed, billed as always-ready instances, and don't change the always-ready configuration settings.
46
46
::: zone-end
47
47
::: zone pivot="premium-plan"
48
48
When you configure Elastic Premium function app plans as zone redundant, the platform automatically spreads the function app instances across the zones in the selected region.
@@ -54,7 +54,7 @@ Instance spreading with a zone-redundant deployment is determined inside the fol
54
54
- For a capacity value more than Number of Zones * Number of instances, extra instances are spread across the remaining zones.
55
55
56
56
>[!IMPORTANT]
57
-
>Azure Functions can run on the Azure App Service platform. In the App Service platform, plans that host Premium plan function apps are referred to as Elastic Premium plans, with SKU names like EP1. If you choose to run your function app on a Premium plan, make sure to create a plan with an SKU name that starts with "E", such as EP1. App Service plan SKU names that start with "P", such as P1V2 (Premium V2 Small plan), are actually [Dedicated hosting plans](../azure-functions/dedicated-plan.md). Because they are Dedicated and not Elastic Premium, plans with SKU names starting with "P" won't scale dynamically and may increase your costs.
57
+
>Azure Functions can run on the Azure App Service platform. In the App Service platform, plans that host Premium plan function apps are referred to as Elastic Premium plans, with SKU names like `EP1`. If you choose to run your function app on a Premium plan, make sure to create a plan with an SKU name that starts with `E`, such as `EP1`. App Service plan SKU names that start with `P`, such as `P1V2` (Premium V2 Small plan), are [Dedicated hosting plans](../azure-functions/dedicated-plan.md). Because they're Dedicated and not Elastic Premium, plans with SKU names starting with `P` don't scale dynamically and can increase your costs.
58
58
::: zone-end
59
59
### Regional availability
60
60
::: zone pivot="flex-consumption-plan"
@@ -68,7 +68,7 @@ Currently, not all regions support zone redundancy for Flex Consumption plans. Y
68
68
69
69
The [`az login`](/cli/azure/reference-index#az-login) command signs you into your Azure account.
70
70
71
-
2. Use this [`az functionapp list-flexconsumption-locations`](/cli/azure/functionapp#az-functionapp-list-flexconsumption-locations) command with the `--zone-redundant=true` option to returns a list of regions that currently support zone-redundant Flex Consumption plans:
71
+
2. Use this [`az functionapp list-flexconsumption-locations`](/cli/azure/functionapp#az-functionapp-list-flexconsumption-locations) command with the `--zone-redundant=true` option to return a list of regions that currently support zone-redundant Flex Consumption plans:
72
72
73
73
```azurecli-interactive
74
74
az functionapp list-flexconsumption-locations --zone-redundant=true --query "sort_by(@, &name)[].{Region:name}" -o table
@@ -94,14 +94,14 @@ Zone-redundant Premium plans are available in these regions:
94
94
::: zone-end
95
95
### Prerequisites
96
96
::: zone pivot="flex-consumption-plan"
97
-
Availability zone support is a property of the Flex Consumption plan. These are the current considerations for availability zones:
97
+
Availability zone support is a property of the Flex Consumption plan. Here are current considerations for using availability zones:
98
98
99
99
- You can enable availability zones in the plan during app creation. You can also enable or disable this plan feature in an existing app.
100
100
- You must use a [zone redundant storage account (ZRS)](../storage/common/storage-redundancy.md#zone-redundant-storage) for your function app's [default host storage account](../azure-functions/storage-considerations.md#storage-account-requirements). If you use a different type of storage account, your app might behave unexpectedly during a zonal outage.
101
101
- Must be hosted on a [Flex Consumption](../azure-functions/flex-consumption-plan.md) plan.
102
102
::: zone-end
103
103
::: zone pivot="premium-plan"
104
-
Availability zone support is a property of the Premium plan. These are the current considerations for availability zones:
104
+
Availability zone support is a property of the Premium plan. Here are current considerations for availability zones:
105
105
106
106
- You can only enable availability zones in the plan when you create your app. You can't convert an existing Premium plan to use availability zones.
107
107
- You must use a [zone redundant storage account (ZRS)](../storage/common/storage-redundancy.md#zone-redundant-storage) for your function app's [default host storage account](../azure-functions/storage-considerations.md#storage-account-requirements). If you use a different type of storage account, your app might behave unexpectedly during a zonal outage.
@@ -112,10 +112,12 @@ Availability zone support is a property of the Premium plan. These are the curre
112
112
::: zone-end
113
113
### Pricing
114
114
::: zone pivot="flex-consumption-plan"
115
-
There's no separate meter associated with enabling availability zones. Pricing for instances used for a zone-redundant Flex Consumption app is the same as a single zone Flex Consumption app. To learn more, see [Billing](../azure-functions/flex-consumption-plan.md#billing). If you enable availability zones but always-ready instance configuration is less than two for each [per-function scaling function or group](../azure-functions/flex-consumption-plan.md#per-function-scaling), the platform automatically creates two instances of the [always-ready](../azure-functions/flex-consumption-plan.md#always-ready-instances) type for each per-function scaling function or group, and those will incur always-ready billing.
115
+
There's no separate meter associated with enabling availability zones. Pricing for instances used for a zone-redundant Flex Consumption app is the same as a single zone Flex Consumption app. To learn more, see [Billing](../azure-functions/flex-consumption-plan.md#billing).
116
+
117
+
When you enable availability zones in an app with always-ready instance configuration of fewer than two instances for each [per-function scaling function or group](../azure-functions/flex-consumption-plan.md#per-function-scaling), the platform automatically creates two more instances of the [always-ready](../azure-functions/flex-consumption-plan.md#always-ready-instances) type for each per-function scaling function or group. These new instances are also billed as always-ready instances.
116
118
::: zone-end
117
119
::: zone pivot="premium-plan"
118
-
There's no extra cost associated with enabling availability zones. Pricing for a zone-redundant Premium App Service plan is the same as a single zone Premium plan. For each App Service plan you use, you're charged based on the SKU you choose, the capacity you specify, and any instances you scale to based on your autoscale criteria. If you enable availability zones but specify a capacity less than three for an App Service plan, the platform enforces a minimum instance count of three for that App Service plan and charges youfor those three instances.
120
+
There's no extra cost associated with enabling availability zones. Pricing for a zone-redundant Premium App Service plan is the same as a single zone Premium plan. For each App Service plan you use, you're charged based on the SKU you choose, the capacity you specify, and any instances you scale to based on your autoscale criteria. If you enable availability zones on a plan with fewer than three instances, the platform enforces a minimum instance count of three for that App Service plan, and you're charged for all three instances.
119
121
::: zone-end
120
122
### Create a function app in a zone-redundant plan
121
123
::: zone pivot="flex-consumption-plan"
@@ -131,7 +133,7 @@ There are currently multiple ways to deploy a zone-redundant Flex Consumption ap
131
133
132
134
| Setting | Suggested value | Notes for zone redundancy |
133
135
| ------------ | ---------------- | ----------- |
134
-
| **Region** | Your preferred supported region | The region under which the new function app is created. You must pick a region that supports availability zones. See the [region availability list](#regional-availability). |
136
+
| **Region** | Your preferred supported region | The region in which your function app is created. You must select a region that supports availability zones. See the [region availability list](#regional-availability). |
135
137
| **Zone redundancy** | Enabled | This setting specifies whether your app is zone redundant. You won't be able to select `Enabled` unless you have chosen a region that supports zone redundancy, as described previously. |
136
138
137
139
:::image type="content" source="../azure-functions/media/functions-az-redundancy/azure-functions-flex-basics-az.png" alt-text="Screenshot of the Basics tab of the Flex Consumption function app create page.":::
@@ -222,13 +224,18 @@ After the zone-redundant plan is created and deployed, the Flex Consumption func
222
224
223
225
### Update a Flex Consumption plan to be zone-redundant
224
226
225
-
Before updating your Flex Consumption plan to be zone-redundant, consider updating the storage account(s) associated with the app and the deployment storage of the app to also be zone redundant. This will be disruptive and careful consideration should be taken.
- Create or identify a zone-redundantstorage account to associate with the app.
228
-
- Update the storage related application settings of the app, like `AzureWebJobsStorage`, to reference the zone redundant storage account. See [Work with application settings](../azure-functions/functions-how-to-use-azure-function-app-settings.md#use-application-settings).
229
-
- Update the deployment storage account for the app, which can be the same or different as the storage account associated with the app. See [Configure deployment settings](../azure-functions/flex-consumption-how-to.md#configure-deployment-settings).
227
+
Changing the zone redundancy of you app requires a restart, which causes downtime in your app.
228
+
229
+
Before updating your Flex Consumption plan to be zone-redundant, you should update the default host storage account to also be zone redundant. If you use a separate storage account for the app's deployment container, should update it to be zone redundant as well.
230
+
231
+
Use these steps to prepare your storage accounts for the change:
230
232
231
-
Once the storage account(s) associated with the app have been updated, you can update the Flex Consumption plan to be zone-redundant using Bicep or ARM templates. This will cause the Flex Consumption app in the plan to restart.
1. Create or identify a zone-redundant storage account to associate with the app.
235
+
1. Update the storage related application settings of the app, like `AzureWebJobsStorage`, to reference the zone redundant storage account. See [Work with application settings](../azure-functions/functions-how-to-use-azure-function-app-settings.md#use-application-settings).
236
+
1. Update the deployment storage account for the app, which can be the same or different as the storage account associated with the app. See [Configure deployment settings](../azure-functions/flex-consumption-how-to.md#configure-deployment-settings).
237
+
238
+
After the storage accounts used by your app are updated, you can update the Flex Consumption plan to be zone-redundant using Bicep or ARM templates. The Azure portal and Azure CLI don't currently support making zone redundancy updates to the plan.
232
239
233
240
#### [Azure portal](#tab/azure-portal)
234
241
Not currently supported.
@@ -247,17 +254,65 @@ Not currently supported.
247
254
-->
248
255
#### [Bicep template](#tab/bicep)
249
256
250
-
Follow the same instructions as in [Create a zone-redundant Flex Consumption app](#create-a-zone-redundant-flex-consumption-plan) to add the `zoneRedundant` property to the plan definition.
257
+
You can use this Bicep file to add the `zoneRedundant` property to `true` in an existing plan definition:
In this file, replace `<YOUR_PLAN_NAME>` and `<YOUR_REGION_NAME>` with the name of your plan and region, respectively. To learn how to deploy a Bicep file, see [Deploy your template](../azure-functions/functions-infrastructure-as-code.md#deploy-your-template).
251
281
252
282
#### [ARM template](#tab/arm-template)
253
-
Follow the same instructions as in [Create a zone-redundant Flex Consumption app](#create-a-zone-redundant-flex-consumption-plan) to add the `zoneRedundant` property to the plan definition.
283
+
284
+
You can use this ARM template fragment to set the `zoneRedundant` property to `true` in an existing plan definition:
In this template, replace `<YOUR_PLAN_NAME>` and `<YOUR_REGION_NAME>` with the name of your plan and region, respectively. To learn how to deploy an ARM template, see [Deploy your template](../azure-functions/functions-infrastructure-as-code.md#deploy-your-template).
254
311
255
312
---
256
-
313
+
257
314
::: zone-end
258
315
::: zone pivot="premium-plan"
259
-
### Create a zone-redundant Premium plan and function app
260
-
261
316
There are currently two ways to deploy a zone-redundant Premium plan and function app. You can use either the [Azure portal](https://portal.azure.com) or an ARM template.
0 commit comments