Skip to content

Commit cf5e31c

Browse files
Merge pull request #285354 from ggailey777/patch-3
[Functions] Flex updates and clean-up
2 parents 760fd1e + c024321 commit cf5e31c

File tree

3 files changed

+49
-10
lines changed

3 files changed

+49
-10
lines changed

articles/azure-functions/flex-consumption-how-to.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Create and manage function apps in a Flex Consumption plan
33
description: "Learn how to create function apps hosted in the Flex Consumption plan in Azure Functions and how to modify specific settings for an existing function app."
4-
ms.date: 05/21/2024
4+
ms.date: 08/21/2024
55
ms.topic: how-to
66
ms.custom: build-2024, devx-track-azurecli, devx-track-extended-java, devx-track-js, devx-track-python, devx-track-ts
77
zone_pivot_groups: programming-languages-set-functions
@@ -494,7 +494,7 @@ az functionapp scale config always-ready set --resource-group <RESOURCE_GROUP> -
494494
To remove always ready instances, use the [`az functionapp scale config always-ready delete`](/cli/azure/functionapp/scale/config/always-ready#az-functionapp-scale-config-always-ready-delete) command, as in this example that removes all always ready instances from both the HTTP triggers group and also a function named `hello_world`:
495495

496496
```azurecli
497-
az functionapp scale config always-ready delete --resource-group <RESOURCE_GROUP> --name <APP_NAME> --setting-names http hello_world
497+
az functionapp scale config always-ready delete --resource-group <RESOURCE_GROUP> --name <APP_NAME> --setting-names http function:hello_world
498498
```
499499

500500
### [Azure portal](#tab/azure-portal)

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Functions Flex Consumption plan hosting
33
description: Running your function code in the Azure Functions Flex Consumption plan provides virtual network integration, dynamic scale (to zero), and reduced cold starts.
44
ms.service: azure-functions
55
ms.topic: concept-article
6-
ms.date: 07/26/2024
6+
ms.date: 08/22/2024
77
ms.custom: references_regions, build-2024
88
# Customer intent: As a developer, I want to understand the benefits of using the Flex Consumption plan so I can get the scalability benefits of Azure Functions without having to pay for resources I don't need.
99
---
@@ -64,7 +64,15 @@ Concurrency is a key factor that determines how Flex Consumption function apps s
6464

6565
This _per-function scaling_ behavior is a part of the hosting platform, so you don't need to configure your app or change the code. For more information, see [Per-function scaling](event-driven-scaling.md#per-function-scaling) in the Event-driven scaling article.
6666

67-
In per function scaling, HTTP, Blob (Event Grid), and Durable triggers are special cases. All HTTP triggered functions in the app are grouped and scale together in the same instances, and all Durable triggered functions (Orchestration, Activity, or Entity triggers) are grouped and scale together in the same instances, and all Blob (Event Grid) functions are grouped and scale together in the same instances. All other functions in the app are scaled individually into their own instances.
67+
In per-function scaling, decisions are made for certain function triggers based on group aggregations. This table shows the defined set of function scale groups:
68+
69+
| Scale groups | Triggers in group | Settings value |
70+
| ---- | ---- | --- |
71+
| HTTP triggers |[HTTP trigger](functions-bindings-http-webhook-trigger.md)<br/>[SignalR trigger](functions-bindings-signalr-service-trigger.md) | `http` |
72+
| Blob storage triggers<br/>(Event Grid-based) | [Blob storage trigger](functions-bindings-storage-blob-trigger.md) | `blob`|
73+
| Durable Functions | [Orchestration trigger](./durable/durable-functions-bindings.md#orchestration-trigger)<br/>[Activity trigger](./durable/durable-functions-bindings.md#activity-trigger)<br/>[Entity trigger](./durable/durable-functions-bindings.md#entity-trigger) | `durable` |
74+
75+
All other functions in the app are scaled individually in their own set of instances, which are referenced using the convention `function:<NAMED_FUNCTION>`.
6876

6977
## Always ready instances
7078

@@ -129,7 +137,7 @@ In Flex Consumption, many of the standard application settings and site configur
129137
Keep these other considerations in mind when using Flex Consumption plan during the current preview:
130138

131139
+ **VNet Integration** Ensure that the `Microsoft.App` Azure resource provider is enabled for your subscription by [following these instructions](/azure/azure-resource-manager/management/resource-providers-and-types#register-resource-provider). The subnet delegation required by Flex Consumption apps is `Microsoft.App/environments`.
132-
+ **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.
140+
+ **Triggers**: All triggers are fully supported except for Kafka and Azure SQL 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.
133141
+ **Regions**:
134142
+ Not all regions are currently supported. To learn more, see [View currently supported regions](flex-consumption-how-to.md#view-currently-supported-regions).
135143
+ There is a temporary limitation where App Service quota limits for creating new apps are also being applied to Flex Consumption apps. If you see the following error "This region has quota of 0 instances for your subscription. Try selecting different region or SKU." please raise a support ticket so that your app creation can be unblocked.

articles/azure-functions/functions-infrastructure-as-code.md

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Automate function app resource deployment to Azure
33
description: Learn how to build, validate, and use a Bicep file or an Azure Resource Manager template to deploy your function app and related Azure resources.
44
ms.assetid: d20743e3-aab6-442c-a836-9bcea09bfd32
55
ms.topic: conceptual
6-
ms.date: 07/16/2024
6+
ms.date: 08/22/2024
77
ms.custom: fasttrack-edit, devx-track-bicep, devx-track-arm-template, linux-related-content
88
zone_pivot_groups: functions-hosting-plan
99
---
@@ -1682,15 +1682,17 @@ In a Flex Consumption plan, you configure your function app in Azure with two ty
16821682
| Application configuration | `functionAppConfig` |
16831683
| Application settings | `siteConfig.appSettings` collection |
16841684

1685-
These configurations are maintained in `functionAppConfig`:
1685+
These application configurations are maintained in `functionAppConfig`:
16861686

16871687
| Behavior | Setting in `functionAppConfig`|
16881688
| --- | --- |
1689+
| [Always ready instances](flex-consumption-plan.md#always-ready-instances) | `scaleAndConcurrency.alwaysReady` |
1690+
| [Deployment source](#deployment-sources) | `deployment` |
1691+
| [Instance memory size](flex-consumption-plan.md#instance-memory) | `scaleAndConcurrency.instanceMemoryMB` |
1692+
| [HTTP trigger concurrency](functions-concurrency.md#http-trigger-concurrency) | `scaleAndConcurrency.triggers.http.perInstanceConcurrency` |
16891693
| [Language runtime](functions-app-settings.md#functions_worker_runtime) | `runtime.name` |
16901694
| [Language version](supported-languages.md) | `runtime.version` |
16911695
| [Maximum instance count](event-driven-scaling.md#flex-consumption-plan) | `scaleAndConcurrency.maximumInstanceCount` |
1692-
| [Instance memory size](flex-consumption-plan.md#instance-memory) | `scaleAndConcurrency.instanceMemoryMB` |
1693-
| [Deployment source](#deployment-sources) | `deployment` |
16941696

16951697
The Flex Consumption plan also supports these application settings:
16961698

@@ -1831,7 +1833,36 @@ These application settings are required for container deployments:
18311833
::: zone-end
18321834

18331835
Keep these considerations in mind when working with site and application settings using Bicep files or ARM templates:
1834-
::: zone pivot="consumption-plan,premium-plan,dedicated-plan"
1836+
::: zone pivot="flex-consumption-plan"
1837+
+ The optional `alwaysReady` setting contains an array of one or more `{name,instanceCount}` objects, with one for each [per-function scale group](flex-consumption-plan.md#per-function-scaling). These are the scale groups being used to make always-ready scale decisions. This example sets always-ready counts for both the `http` group and a single function named `helloworld`, which is of a non-grouped trigger type:
1838+
### [Bicep](#tab/bicep)
1839+
```bicep
1840+
alwaysReady: [
1841+
{
1842+
name: 'http'
1843+
instanceCount: 2
1844+
}
1845+
{
1846+
name: 'function:helloworld'
1847+
instanceCount: 1
1848+
}
1849+
]
1850+
```
1851+
### [ARM template](#tab/json)
1852+
```json
1853+
"alwaysReady": [
1854+
{
1855+
"name": "http",
1856+
"instanceCount": 2
1857+
},
1858+
{
1859+
"name": "function:helloworld",
1860+
"instanceCount": 1
1861+
}
1862+
]
1863+
```
1864+
::: zone-end
1865+
::: zone pivot="consumption-plan,premium-plan,dedicated-plan"
18351866
+ There are important considerations for when you should set `WEBSITE_CONTENTSHARE` in an automated deployment. For detailed guidance, see the [`WEBSITE_CONTENTSHARE`](functions-app-settings.md#website_contentshare) reference.
18361867
::: zone-end
18371868
::: zone pivot="container-apps,azure-arc,premium-plan,dedicated-plan"

0 commit comments

Comments
 (0)