Skip to content

Commit 08f0a02

Browse files
authored
Merge pull request #314543 from ggailey777/pr-128326-dotnet10-fix
[Functions] Customer PR and other versions fixes
2 parents ffc5089 + ca972e9 commit 08f0a02

5 files changed

Lines changed: 53 additions & 69 deletions

File tree

articles/azure-functions/functions-scale.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,27 @@ This table shows operating system support for the hosting options.
6464

6565
[!INCLUDE [functions-linux-consumption-retirement](../../includes/functions-linux-consumption-retirement.md)]
6666

67-
[!INCLUDE [Timeout Duration section](../../includes/functions-timeout-duration.md)]
67+
## <a name="timeout"></a>Function app timeout duration
68+
69+
The `functionTimeout` property in the [host.json](functions-host-json.md#functiontimeout) project file sets the timeout duration for functions in a function app. This property applies specifically to function executions. After the trigger starts function execution, the function needs to return or respond within the timeout duration. When an execution exceeds this duration, a timeout error occurs and the language worker process restarts. For C# apps running in-process, the host process itself restarts. To avoid timeouts and subsequent process restarts, it's important to [write robust functions](functions-best-practices.md#write-robust-functions). For more information, see [Improve Azure Functions performance and reliability](performance-reliability.md#make-sure-background-tasks-complete).
70+
71+
The following table shows the default and maximum values (in minutes) for specific plans:
72+
73+
| Plan | Default | Maximum<sup>1</sup> |
74+
| ------ | --------- | --------- |
75+
| **[Flex Consumption plan](flex-consumption-plan.md)** | 30 | Unbounded<sup>2</sup> |
76+
| **[Premium plan](functions-premium-plan.md)** | 30<sup>4</sup> | Unbounded<sup>2</sup> |
77+
| **[Dedicated plan](dedicated-plan.md)** | 30<sup>4</sup> | Unbounded<sup>3</sup> |
78+
| **[Container Apps](../container-apps/functions-overview.md)** | 30 | Unbounded<sup>5</sup> |
79+
| **[Consumption plan](consumption-plan.md)** | 5 | 10 |
80+
81+
1. 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 limit exists because of the [default idle timeout of Azure Load Balancer](../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](durable-functions/durable-functions-http-features.md#async-operation-tracking) or [defer the actual work and return an immediate response](performance-reliability.md#avoid-long-running-functions).
82+
2. There's no maximum execution timeout duration enforced. However, the grace period given to a function execution is 60 minutes [during scale in](event-driven-scaling.md#scale-in-behaviors) for the Flex Consumption and Premium plans, and a grace period of 10 minutes is given during platform updates.
83+
3. Requires the App Service plan be set to [Always On](/azure/azure-functions/dedicated-plan#always-on). A grace period of 10 minutes is given during platform updates.
84+
4. The default timeout for version 1.x of the Functions host runtime is _unbounded_.
85+
5. When the [minimum number of replicas](../container-apps/scale-app.md#scale-definition) is set to zero, the default timeout depends on the specific triggers used in the app.
86+
87+
These values assume that the Azure Functions host process starts and runs correctly. There's a maximum timeout of 60 seconds for the language-specific worker process to also start. The worker process startup timeout isn't currently configurable.
6888

6989
## Language support
7090

articles/azure-functions/functions-versions.md

Lines changed: 30 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,53 @@ title: Compare Azure Functions Runtime Versions
33
description: Learn how Azure Functions supports multiple versions of the runtime, and understand the differences between them and how to choose the one that's right for you.
44
ms.topic: concept-article
55
ms.custom: devx-track-extended-java, devx-track-js, devx-track-python, ignite-2023, devx-track-ts
6-
ms.date: 03/19/2026
6+
ms.date: 04/09/2026
77
zone_pivot_groups: programming-languages-set-functions
88
---
99

1010
# Compare Azure Functions runtime versions
1111

12-
<a name="top"></a>Azure Functions currently supports two versions of the runtime host. The following table details the currently supported runtime versions, their support level, and when they should be used:
12+
::: zone pivot="programming-language-csharp"
13+
Azure Functions currently supports two versions of the runtime host. The following table details the currently supported runtime versions, their support level, and when to use them:
1314

1415
| Version | Support level | Description |
1516
| --- | --- | --- |
1617
| 4.x | GA | **_Recommended runtime version for functions in all languages._** Check out [Supported language versions](#languages). |
17-
| 1.x | GA ([support ends September 14, 2026](https://aka.ms/azure-functions-retirements/hostv1)) | Supported only for C# apps that must use .NET Framework. This version is in maintenance mode, with enhancements provided only in later versions. **Support will end for version 1.x on September 14, 2026.** We highly recommend you [migrate your apps to version 4.x](migrate-version-1-version-4.md?pivots=programming-language-csharp), which supports .NET Framework 4.8, .NET 8, .NET 9, and .NET 10 Preview.|
18+
| 1.x | GA<sup>*</sup> | Supported only for C# apps that must use .NET Framework. This version is in maintenance mode, with enhancements provided only in later versions. **Support ends for version 1.x on September 14, 2026.** [Migrate your apps to version 4.x](migrate-version-1-version-4.md?pivots=programming-language-csharp). For more information, see [supported language versions](#languages). |
1819

20+
<sup>*</sup> Support ends September 14, 2026. For more information, see [the version 1.x support announcement](https://aka.ms/azure-functions-retirements/hostv1).
21+
::: zone-end
22+
::: zone pivot="programming-language-java,programming-language-javascript,programming-language-typescript,programming-language-powershell,programming-language-python"
23+
Azure Functions currently supports only version 4.x of the runtime host.
24+
25+
::: zone-end
1926
> [!IMPORTANT]
2027
> Versions 2.x and 3.x of the Azure Functions runtime are no longer supported. For more information, see [Retired versions](#retired-versions).
2128
22-
This article details some of the differences between supported versions, how you can create each version, and how to change the version on which your functions run.
29+
[Migrate apps from Azure Functions version 3.x to version 4.x](migrate-version-3-version-4.md).
2330

2431
## Levels of support
2532

2633
[!INCLUDE [functions-support-levels](../../includes/functions-support-levels.md)]
2734

2835
## Languages
2936

30-
All functions in a function app must share the same language. You choose the language of functions in your function app when you create the app. The language of your function app is maintained in the [FUNCTIONS\_WORKER\_RUNTIME](functions-app-settings.md#functions_worker_runtime) setting, and can't be changed when there are existing functions.
37+
All functions in a function app must share the same language. Choose the language of functions in your function app when you create the app. The language of your function app is maintained in the [FUNCTIONS\_WORKER\_RUNTIME](functions-app-settings.md#functions_worker_runtime) setting, and can't be changed when there are existing functions.
3138

3239
[!INCLUDE [functions-supported-languages](../../includes/functions-supported-languages.md)]
3340

34-
For information about the language versions of previously supported versions of the Functions runtime, see [Retired runtime versions](language-support-policy.md#language-support-related-resources).
41+
For information about language versions of previously supported Functions runtime versions, see [Retired runtime versions](language-support-policy.md#language-support-related-resources).
3542

3643
## <a name="creating-1x-apps"></a>Run on a specific version
3744

38-
The version of the Functions runtime used by published apps in Azure is dictated by the [`FUNCTIONS_EXTENSION_VERSION`](functions-app-settings.md#functions_extension_version) application setting. In some cases and for certain languages, other settings can apply.
45+
The [`FUNCTIONS_EXTENSION_VERSION`](functions-app-settings.md#functions_extension_version) application setting determines the version of the Functions runtime that published apps use in Azure. In some cases and for certain languages, other settings might apply.
3946

40-
By default, function apps created in the Azure portal, by the Azure CLI, or from Visual Studio tools are set to version 4.x. You can modify this version if needed. You can only downgrade the runtime version to 1.x after you create your function app but before you add any functions. Updating to a later major version is allowed even with apps that have existing functions.
47+
By default, function apps created in the Azure portal, by the Azure CLI, or from Visual Studio tools are set to version 4.x. You can modify this version if needed. You can only downgrade the runtime version to 1.x after you create your function app but before you add any functions. You can update to a later major version even with apps that have existing functions.
4148

4249
### Migrate existing function apps
4350

4451
[!INCLUDE [functions-migrate-apps](../../includes/functions-migrate-apps.md)]
45-
52+
::: zone pivot="programming-language-csharp"
4653
### Change the version of apps in Azure
4754

4855
The following major runtime version values are used:
@@ -54,6 +61,7 @@ The following major runtime version values are used:
5461

5562
>[!IMPORTANT]
5663
> Don't arbitrarily change this app setting, because other app setting changes and changes to your function code might be required. For existing function apps, follow the [migration instructions](#migrate-existing-function-apps).
64+
::: zone-end
5765

5866
### Pin to a specific minor version
5967

@@ -66,9 +74,9 @@ Older minor versions are periodically removed from Functions. For the latest new
6674
::: zone pivot="programming-language-csharp"
6775
There's technically not a correlation between binding extension versions and the Functions runtime version. However, starting with version 4.x, the Functions runtime enforces a minimum version for all trigger and binding extensions.
6876

69-
If you receive a warning about a package not meeting a minimum required version, you should update that NuGet package to the minimum version as you normally would. The minimum version requirements for extensions used in Functions v4.x can be found in [the linked configuration file](https://github.com/Azure/azure-functions-host/blob/dev/src/WebJobs.Script/extensionrequirements.json).
77+
If you receive a warning about a package not meeting a minimum required version, you should update that NuGet package to the minimum version as you normally would. Find the minimum version requirements for extensions used in Functions v4.x in [the linked configuration file](https://github.com/Azure/azure-functions-host/blob/dev/src/WebJobs.Script/extensionrequirements.json).
7078

71-
For C# script, update the extension bundle reference in the *host.json* as follows:
79+
For C# script, update the extension bundle reference in the *host.json*:
7280

7381
```json
7482
{
@@ -82,7 +90,7 @@ For C# script, update the extension bundle reference in the *host.json* as follo
8290

8391
::: zone-end
8492
::: zone pivot="programming-language-java,programming-language-javascript,programming-language-typescript,programming-language-powershell,programming-language-python"
85-
There's technically not a correlation between extension bundle versions and the Functions runtime version. However, starting with version 4.x the Functions runtime enforces a minimum version for extension bundles.
93+
There's technically not a correlation between extension bundle versions and the Functions runtime version. However, starting with version 4.x, the Functions runtime enforces a minimum version for extension bundles.
8694

8795
If you receive a warning about your extension bundle version not meeting a minimum required version, update your existing extension bundle reference in the *host.json* as follows:
8896

@@ -103,28 +111,28 @@ To learn more about extension bundles, see [Extension bundles](extension-bundles
103111

104112
[!INCLUDE [functions-runtime-1x-retirement-note](../../includes/functions-runtime-1x-retirement-note.md)]
105113

106-
These versions of the Functions runtime reached the end of extended support on December 13, 2022.
114+
These versions of the Functions runtime reached end of extended support on December 13, 2022.
107115

108116
| Version | Current support level | Previous support level |
109117
| --- | --- | --- |
110118
| 3.x | Out of support | GA |
111119
| 2.x | Out of support | GA |
112120

113-
As soon as possible, you should migrate your apps to version 4.x to obtain full support. For a complete set of language-specific migration instructions, see [Migrate apps to Azure Functions version 4.x](migrate-version-3-version-4.md).
114-
115-
Apps using versions 2.x and 3.x can still be created and deployed from your CI/CD DevOps pipeline, and all existing apps continue to run without breaking changes. However, your apps aren't eligible for new features, security patches, and performance optimizations. You can only get related service support after you upgrade your apps to version 4.x.
121+
Migrate your apps to version 4.x as soon as possible to get full support. For a complete set of language-specific migration instructions, see [Migrate apps to Azure Functions version 4.x](migrate-version-3-version-4.md).
116122

117-
Versions 2.x and 3.x are no longer supported due to the end of support for .NET Core 3.1, which was a core dependency. This requirement affects all [languages supported by Azure Functions](supported-languages.md).
123+
Apps using versions 2.x and 3.x can still be created and deployed from your CI/CD DevOps pipeline, and all existing apps continue to run without breaking changes. But your apps aren't eligible for new features, security patches, and performance optimizations. You can only get related service support after you upgrade your apps to version 4.x.
118124

125+
Versions 2.x and 3.x are no longer supported because .NET Core 3.1, a core dependency, reached end of support. This requirement affects all [languages supported by Azure Functions](supported-languages.md).
126+
::: zone pivot="programming-language-csharp"
119127
## Locally developed application versions
120128

121-
You can make the following updates to function apps to locally change the targeted versions.
129+
Make the following updates to function apps to locally change the targeted versions.
122130

123131
### Visual Studio runtime versions
124132

125133
In Visual Studio, you select the runtime version when you create a project. Azure Functions tools for Visual Studio supports the two major runtime versions. The correct version is used when debugging and publishing based on project settings. The version settings are defined in the *.csproj* file in the following properties:
126134

127-
# [Version 4.x](#tab/v4)
135+
#### [Version 4.x](#tab/v4)
128136

129137
```xml
130138
<TargetFramework>net8.0</TargetFramework>
@@ -134,11 +142,12 @@ In Visual Studio, you select the runtime version when you create a project. Azur
134142
If you're using the [isolated worker model](dotnet-isolated-process-guide.md), you can choose, `net9.0`, `net8.0`, or `net48` as the target framework. You can also choose to use [preview support](./dotnet-isolated-process-guide.md#preview-net-versions) for `net10.0`. If you're using the [in-process model](./functions-dotnet-class-library.md), you can choose `net8.0` or `net6.0`, and you must include the `Microsoft.NET.Sdk.Functions` extension set to at least `4.4.0`. .NET 10 isn't supported by the in-process model; if you are on the in-process model and wish to use .NET 10, [migrate your app to the isolated worker model](./migrate-dotnet-to-isolated-model.md).
135143

136144
.NET 6 was previously supported on the isolated worker model and the in-process model, but it reached the end of official support on [November 12, 2024][dotnet-policy].
145+
137146
.NET 7 was previously supported on the isolated worker model but reached the end of official support on [May 14, 2024][dotnet-policy].
138147

139148
[dotnet-policy]: https://dotnet.microsoft.com/platform/support/policy/dotnet-core#lifecycle
140149

141-
# [Version 1.x](#tab/v1)
150+
#### [Version 1.x](#tab/v1)
142151

143152
```xml
144153
<TargetFramework>net48</TargetFramework>
@@ -151,22 +160,7 @@ If you're using the [isolated worker model](dotnet-isolated-process-guide.md), y
151160
[Azure Functions Core Tools](functions-run-local.md) is used for command-line development and also by the [Azure Functions extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions) for Visual Studio Code. For more information, see [Install the Azure Functions Core Tools](functions-run-local.md#install-the-azure-functions-core-tools).
152161

153162
For Visual Studio Code development, you might also need to update the user setting for the `azureFunctions.projectRuntime` to match the version of the tools installed. This setting also updates the templates and languages used during function app creation.
154-
155-
## Bindings
156-
157-
Starting with version 2.x, the runtime uses a new [binding extensibility model](https://github.com/Azure/azure-webjobs-sdk-extensions/wiki/Binding-Extensions-Overview) that offers these advantages:
158-
159-
* Support for non-Microsoft binding extensions.
160-
161-
* Decoupling of runtime and bindings. This change allows binding extensions to be versioned and released independently. You can, for example, opt to upgrade to a version of an extension that relies on a newer version of an underlying SDK.
162-
163-
* A lighter execution environment, where only the bindings in use are known and loaded by the runtime.
164-
165-
Except for HTTP and timer triggers, all bindings must be explicitly added to the function app project, or registered in the portal. For more information, see [Azure Functions binding expression patterns](./functions-bindings-expressions-patterns.md).
166-
167-
[!INCLUDE [Full bindings table](../../includes/functions-bindings.md)]
168-
169-
[!INCLUDE [Timeout Duration section](../../includes/functions-timeout-duration.md)]
163+
::: zone-end
170164

171165
## Related content
172166

articles/azure-functions/migrate-version-1-version-4.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,7 @@ This section details changes made after version 1.x in both trigger and binding
554554

555555
Starting with version 2.x, you must install the extensions for specific triggers and bindings used by the functions in your app. The only exception for this HTTP and timer triggers, which don't require an extension. For more information, see [Register and install binding extensions](functions-bindings-register.md).
556556

557-
There are also a few changes in the *function.json* or attributes of the function between versions. For example, the Event Hubs `path` property is now `eventHubName`. See the [existing binding table](functions-versions.md#bindings) for links to documentation for each binding.
557+
There are also a few changes in the *function.json* or attributes of the function between versions. For example, the Event Hubs `path` property is now `eventHubName`. See the [existing binding table](functions-triggers-bindings.md#supported-bindings) for links to documentation for each binding.
558558

559559
### Changes in features and functionality
560560

0 commit comments

Comments
 (0)