Skip to content

Commit 8f0aba9

Browse files
committed
Adding some Flex Consumption notes to Networking; updating Premium regions scale numbers
1 parent bd88751 commit 8f0aba9

File tree

4 files changed

+28
-29
lines changed

4 files changed

+28
-29
lines changed

articles/azure-functions/flex-consumption-plan.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ In Flex Consumption, many of the standard application settings and site configur
128128

129129
Keep these other considerations in mind when using Flex Consumption plan during the current preview:
130130

131+
+ **VNet Integration** Ensure that the `Microsoft.App` Azure resource provider is enabled for your subscription by [following these instructions](https://learn.microsoft.com/azure/azure-resource-manager/management/resource-providers-and-types#register-resource-provider). The subnet delegation required by Flex Consumption apps is `Microsoft.App/environments`.
131132
+ **Triggers**: All triggers are fully supported except for Kafka, Azure SQL, and SignalR triggers. The Blob storage trigger only supports the [Event Grid source](./functions-event-grid-blob-trigger.md). Non-C# function apps must use version `[4.0.0, 5.0.0)` of the [extension bundle](./functions-bindings-register.md#extension-bundles), or a later version.
132133
+ **Regions**: Not all regions are currently supported. To learn more, see [View currently supported regions](flex-consumption-how-to.md#view-currently-supported-regions).
133134
+ **Deployments**: These deployment-related features aren't currently supported:

articles/azure-functions/functions-networking-options.md

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,7 @@ ms.author: cachai
1313

1414
This article describes the networking features available across the hosting options for Azure Functions. All the following networking options give you some ability to access resources without using internet-routable addresses or to restrict internet access to a function app.
1515

16-
The hosting models have different levels of network isolation available. Choosing the correct one helps you meet your network isolation requirements.
17-
18-
You can host function apps in several ways:
19-
20-
* You can choose from plan options that run on a multitenant infrastructure, with various levels of virtual network connectivity and scaling options:
21-
* The [Consumption plan](consumption-plan.md) scales dynamically in response to load and offers minimal network isolation options.
22-
* The [Premium plan](functions-premium-plan.md) also scales dynamically and offers more comprehensive network isolation.
23-
* The Azure [App Service plan](dedicated-plan.md) operates at a fixed scale and offers network isolation similar to the Premium plan.
24-
* You can run functions in an [App Service Environment](../app-service/environment/intro.md). This method deploys your function into your virtual network and offers full network control and isolation.
25-
26-
## Matrix of networking features
16+
The [hosting models](functions-scale.md) have different levels of network isolation available. Choosing the correct one helps you meet your network isolation requirements.
2717

2818
[!INCLUDE [functions-networking-features](../../includes/functions-networking-features.md)]
2919

@@ -50,7 +40,7 @@ The following features let you filter inbound requests to your function app.
5040

5141
You can use access restrictions to define a priority-ordered list of IP addresses that are allowed or denied access to your app. The list can include IPv4 and IPv6 addresses, or specific virtual network subnets using [service endpoints](#use-service-endpoints). When there are one or more entries, an implicit "deny all" exists at the end of the list. IP restrictions work with all function-hosting options.
5242

53-
Access restrictions are available in the [Premium](functions-premium-plan.md), [Consumption](consumption-plan.md), and [App Service](dedicated-plan.md).
43+
Access restrictions are available in the [Flex Consumption plan](flex-consumption-plan.md), [Elastic Premium](functions-premium-plan.md), [Consumption](consumption-plan.md), and [App Service](dedicated-plan.md).
5444

5545
> [!NOTE]
5646
> With network restrictions in place, you can deploy only from within your virtual network, or when you've put the IP address of the machine you're using to access the Azure portal on the Safe Recipients list. However, you can still manage the function using the portal.
@@ -112,7 +102,7 @@ To learn how to set up virtual network integration, see [Enable virtual network
112102

113103
:::image type="content" source="./media/functions-networking-options/vnet-int-add-vnet-function-app.png" alt-text="Select the VNet":::
114104

115-
* The Functions Premium Plan only supports regional virtual network integration. If the virtual network is in the same region, either create a new subnet or select an empty, pre-existing subnet.
105+
* The Functions Flex Consumption and Elastic Premium plans only supports regional virtual network integration. If the virtual network is in the same region, either create a new subnet or select an empty, pre-existing subnet.
116106

117107
* To select a virtual network in another region, you must have a virtual network gateway provisioned with point to site enabled. Virtual network integration across regions is only supported for Dedicated plans, but global peerings work with regional virtual network integration.
118108

@@ -141,9 +131,15 @@ When you use regional virtual network integration, you can use the following Azu
141131
>
142132
> Regional virtual network integration isn't able to use port 25.
143133
134+
For the Flex Consumption plan:
135+
1. Ensure that the `Microsoft.App` Azure resource provider is enabled for your subscription by [following these instructions](https://learn.microsoft.com/azure/azure-resource-manager/management/resource-providers-and-types#register-resource-provider). The subnet delegation required by Flex Consumption apps is `Microsoft.App/environments`.
136+
1. The subnet delegation required by Flex Consumption apps is `Microsoft.App/environments`. This is a change from Elastic Premium and App Service which have a different delegation requirement.
137+
1. You can plan for 40 IP addresses to be used at the most for one function app, even if the app scales beyond 40. For example, if you have fifteen Flex Consumption function apps that will be VNet integrated into the same subnet, you can plan for 15x40 = 600 IP addresses used at the most. This limit is subject to change, and is not enforced.
138+
1. The subnet can't already be in use for other purposes (like private or service endpoints, or [delegated](https://learn.microsoft.com/azure/virtual-network/subnet-delegation-overview) to any other hosting plan or service). While you can share the same subnet with multiple Flex Consumption apps, the networking resources will be shared across these function apps and this can lead to one function app impacting the performance of others on the same subnet.
139+
144140
There are some limitations with using virtual network:
145141

146-
* The feature is available from all App Service deployments in Premium V2 and Premium V3. It's also available in Standard but only from newer App Service deployments. If you are on an older deployment, you can only use the feature from a Premium V2 App Service plan. If you want to make sure you can use the feature in a Standard App Service plan, create your app in a Premium V3 App Service plan. Those plans are only supported on our newest deployments. You can scale down if you desire after that.
142+
* The feature is available from Flex Consumption, Elastic Premium, and App Service Premium V2 and Premium V3. It's also available in Standard but only from newer App Service deployments. If you are on an older deployment, you can only use the feature from a Premium V2 App Service plan. If you want to make sure you can use the feature in a Standard App Service plan, create your app in a Premium V3 App Service plan. Those plans are only supported on our newest deployments. You can scale down if you desire after that.
147143
* The integration subnet can be used by only one App Service plan.
148144
* The feature can't be used by Isolated plan apps that are in an App Service Environment.
149145
* The feature requires an unused subnet that's a /28 or larger in an Azure Resource Manager virtual network.
@@ -154,7 +150,7 @@ There are some limitations with using virtual network:
154150

155151
### Subnets
156152

157-
Virtual network integration depends on a dedicated subnet. When you provision a subnet, the Azure subnet loses five IPs from the start. One address is used from the integration subnet for each plan instance. When you scale your app to four instances, then four addresses are used.
153+
Virtual network integration depends on a dedicated subnet. When you provision a subnet, the Azure subnet loses five IPs from the start. For the Elastic Premium and App Service plans, one address is used from the integration subnet for each plan instance. When you scale your app to four instances, then four addresses are used. For Flex Consumption this does not apply and instances share IP addresses.
158154

159155
When you scale up or down in size, the required address space is doubled for a short period of time. This affects the real, available supported instances for a given subnet size. The following table shows both the maximum available addresses per CIDR block and the effect this has on horizontal scale:
160156

@@ -166,7 +162,7 @@ When you scale up or down in size, the required address space is doubled for a s
166162

167163
<sup>*</sup>Assumes that you need to scale up or down in either size or SKU at some point.
168164

169-
Since subnet size can't be changed after assignment, use a subnet that's large enough to accommodate whatever scale your app might reach. To avoid any issues with subnet capacity for Functions Premium plans, you should use a /24 with 256 addresses for Windows and a /26 with 64 addresses for Linux. When creating subnets in Azure portal as part of integrating with the virtual network, a minimum size of /24 and /26 is required for Windows and Linux respectively.
165+
Since subnet size can't be changed after assignment, use a subnet that's large enough to accommodate whatever scale your app might reach. To avoid any issues with subnet capacity for Functions Elastic Premium plans, you should use a /24 with 256 addresses for Windows and a /26 with 64 addresses for Linux. When creating subnets in Azure portal as part of integrating with the virtual network, a minimum size of /24 and /26 is required for Windows and Linux respectively.
170166

171167
When you want your apps in another plan to reach a virtual network that's already connected to by apps in another plan, select a different subnet than the one being used by the pre-existing virtual network integration.
172168

@@ -197,7 +193,7 @@ After your app integrates with your virtual network, it uses the same DNS server
197193
198194
When you create a function app, you must create or link to a general-purpose Azure Storage account that supports Blob, Queue, and Table storage. You can replace this storage account with one that is secured with service endpoints or private endpoints.
199195

200-
This feature is supported for all Windows and Linux virtual network-supported SKUs in the Dedicated (App Service) plan and for the Premium plans. The Consumption plan isn't supported. To learn how to set up a function with a storage account restricted to a private network, see [Restrict your storage account to a virtual network](configure-networking-how-to.md#restrict-your-storage-account-to-a-virtual-network).
196+
This feature is supported for all Windows and Linux virtual network-supported SKUs in the Dedicated (App Service) plan and for the Elastic Premium plans, as well as the Flex Consumption plan. The Consumption plan isn't supported. To learn how to set up a function with a storage account restricted to a private network, see [Restrict your storage account to a virtual network](configure-networking-how-to.md#restrict-your-storage-account-to-a-virtual-network).
201197

202198
## Use Key Vault references
203199

@@ -210,11 +206,11 @@ If virtual network integration is configured for the app, [Key Vault references]
210206
Currently, you can use non-HTTP trigger functions from within a virtual network in one of two ways:
211207

212208
+ Run your function app in an [Elastic Premium plan](./functions-premium-plan.md) and enable virtual network trigger support.
213-
+ Run your function app in an App Service plan or App Service Environment.
209+
+ Run your function app in a Flex Consumption, App Service plan or App Service Environment.
214210

215-
### Premium plan with virtual network triggers
211+
### Elastic Premium plan with virtual network triggers
216212

217-
The [Premium plan](functions-premium-plan.md) lets you create functions that are triggered by services inside a virtual network. These non-HTTP triggers are known as _virtual network triggers_.
213+
The [Elastic Premium plan](functions-premium-plan.md) lets you create functions that are triggered by services inside a virtual network. These non-HTTP triggers are known as _virtual network triggers_.
218214

219215
By default, virtual network triggers don't cause your function app to scale beyond their pre-warmed instance count. However, certain extensions support virtual network triggers that cause your function app to scale dynamically. You can enable this _dynamic scale monitoring_ in your function app for supported extensions in one of these ways:
220216

@@ -283,9 +279,9 @@ To learn more, see the [App Service documentation for Hybrid Connections](../app
283279
284280
## Outbound IP restrictions
285281

286-
Outbound IP restrictions are available in a Premium plan, App Service plan, or App Service Environment. You can configure outbound restrictions for the virtual network where your App Service Environment is deployed.
282+
Outbound IP restrictions are available in a Flex Consumption plan, Elastic Premium plan, App Service plan, or App Service Environment. You can configure outbound restrictions for the virtual network where your App Service Environment is deployed.
287283

288-
When you integrate a function app in a Premium plan or an App Service plan with a virtual network, the app can still make outbound calls to the internet by default. By integrating your function app with a virtual network with Route All enabled, you force all outbound traffic to be sent into your virtual network, where network security group rules can be used to restrict traffic.
284+
When you integrate a function app in an Elastic Premium plan or an App Service plan with a virtual network, the app can still make outbound calls to the internet by default. By integrating your function app with a virtual network with Route All enabled, you force all outbound traffic to be sent into your virtual network, where network security group rules can be used to restrict traffic. For Flex Consumption all trafic is already routed through the virtual network and Route All is not needed.
289285

290286
To learn how to control the outbound IP using a virtual network, see [Tutorial: Control Azure Functions outbound IP with an Azure virtual network NAT gateway](functions-how-to-use-nat-gateway.md).
291287

articles/azure-functions/functions-premium-plan.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ These are the currently supported maximum scale-out values for a single plan in
263263
|Jio India West| 100 | 20 |
264264
|Korea Central| 100 | 20 |
265265
|Korea South| 40 | 20 |
266+
|Mexico Central| 20 | 20 |
266267
|North Central US| 100 | 20 |
267268
|North Europe| 100 | 100 |
268269
|Norway East| 100 | 20 |
@@ -271,6 +272,7 @@ These are the currently supported maximum scale-out values for a single plan in
271272
|South Central US| 100 | 100 |
272273
|South India | 100 | Not Available |
273274
|Southeast Asia| 100 | 20 |
275+
|Spain Central| 20 | 20 |
274276
|Switzerland North| 100 | 20 |
275277
|Switzerland West| 100 | 20 |
276278
|UAE North| 100 | 20 |

includes/functions-timeout-duration.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ The following table shows the default and maximum values (in minutes) for specif
1616
| Plan | Default | Maximum<sup>1</sup> |
1717
|------|---------|---------|---------|
1818
| **[Consumption plan](../articles/azure-functions/consumption-plan.md)** | 5 | 10 |
19-
| **[Flex Consumption plan](../articles/azure-functions/flex-consumption-plan.md)** | 30 | Unlimited<sup>3</sup> |
20-
| **[Premium plan](../articles/azure-functions/functions-premium-plan.md)** | 30<sup>2</sup> | Unlimited<sup>3</sup> |
21-
| **[Dedicated plan](../articles/azure-functions/dedicated-plan.md)** | 30<sup>2</sup> | Unlimited<sup>3</sup> |
19+
| **[Flex Consumption plan](../articles/azure-functions/flex-consumption-plan.md)** | 30 | Unlimited<sup>2</sup> |
20+
| **[Premium plan](../articles/azure-functions/functions-premium-plan.md)** | 30<sup>3</sup> | Unlimited<sup>3</sup> |
21+
| **[Dedicated plan](../articles/azure-functions/dedicated-plan.md)** | 30<sup>4</sup> | Unlimited<sup>3</sup> |
2222

23-
<sup>1</sup> Regardless of the function app timeout setting, 230 seconds is the maximum amount of time that an HTTP triggered function can take to respond to a request. This is because of the [default idle timeout of Azure Load Balancer](../articles/app-service/faq-availability-performance-application-issues.yml#why-does-my-request-time-out-after-230-seconds-). For longer processing times, consider using the [Durable Functions async pattern](../articles/azure-functions/durable/durable-functions-overview.md#async-http) or [defer the actual work and return an immediate response](../articles/azure-functions/performance-reliability.md#avoid-long-running-functions).
24-
<sup>2</sup> The default timeout for version 1.x of the Functions runtime is _unlimited_.
25-
<sup>3</sup> Guaranteed for up to 60 minutes. [OS and runtime patching](../articles/app-service/overview-patch-os-runtime.md), vulnerability patching, and [scale in behaviors](../articles/azure-functions/event-driven-scaling.md#scale-in-behaviors) can still cancel function executions so [ensure to write robust functions](../articles/azure-functions/functions-best-practices.md#write-robust-functions).
26-
<sup>4</sup> In a Flex Consumption plan, the host doesn't enforce an execution time limit. However, there are currently no guarantees because the platform might need to terminate your instances during scale-in, deployments, or to apply updates.
23+
<sup>1</sup> Regardless of the function app timeout setting, 230 seconds is the maximum amount of time that an HTTP triggered function can take to respond to a request. This is because of the [default idle timeout of Azure Load Balancer](../articles/app-service/faq-availability-performance-application-issues.yml#why-does-my-request-time-out-after-230-seconds-). For longer processing times, consider using the [Durable Functions async pattern](../articles/azure-functions/durable/durable-functions-overview.md#async-http) or [defer the actual work and return an immediate response](../articles/azure-functions/performance-reliability.md#avoid-long-running-functions).
24+
<sup>2</sup> In a Flex Consumption plan, the host doesn't enforce an execution time limit. However, there are currently no guarantees as the platform might need to terminate your instances during scale-in, deployments, or to apply updates.
25+
<sup>3</sup> The default timeout for version 1.x of the Functions runtime is _unlimited_.
26+
<sup>4</sup> Guaranteed for up to 60 minutes. [OS and runtime patching](../articles/app-service/overview-patch-os-runtime.md), vulnerability patching, and [scale in behaviors](../articles/azure-functions/event-driven-scaling.md#scale-in-behaviors) can still cancel function executions so [ensure to write robust functions](../articles/azure-functions/functions-best-practices.md#write-robust-functions).

0 commit comments

Comments
 (0)