Skip to content

Commit 46138e9

Browse files
Merge pull request #265163 from mattchenderson/langver
updating version upgrade guidance for .NET
2 parents b5cd815 + 8982516 commit 46138e9

6 files changed

+47
-28
lines changed

articles/azure-functions/dotnet-isolated-in-process-differences.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ recommendations: false
1111
#Customer intent: As a developer, I need to understand the differences between running in-process and running in an isolated worker process so that I can choose the best process model for my functions.
1212
---
1313

14-
# Differences between isolated worker model and in-process model .NET Azure Functions
14+
# Differences between the isolated worker model and the in-process model for .NET on Azure Functions
1515

16-
There are two process models for .NET functions:
16+
There are two execution models for .NET functions:
1717

1818
[!INCLUDE [functions-dotnet-execution-model](../../includes/functions-dotnet-execution-model.md)]
1919

2020
This article describes the current state of the functional and behavioral differences between the two models. To migrate from the in-process model to the isolated worker model, see [Migrate .NET apps from the in-process model to the isolated worker model][migrate].
2121

22-
## Execution mode comparison table
22+
## Execution model comparison table
2323

2424
Use the following table to compare feature and functional differences between the two models:
2525

articles/azure-functions/dotnet-isolated-process-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ There are a few requirements for running .NET functions in the isolated worker m
643643
### [Linux](#tab/linux)
644644

645645
+ [FUNCTIONS_WORKER_RUNTIME](functions-app-settings.md#functions_worker_runtime) must be set to a value of `dotnet-isolated`.
646-
+ [`linuxFxVersion`](./functions-app-settings.md#linuxfxversion) must be set to the [correct base image](update-language-versions.md?tabs=azure-cli%2Clinux&pivots=programming-language-csharp#update-the-language-version), like `DOTNET-ISOLATED|8.0`.
646+
+ [`linuxFxVersion`](./functions-app-settings.md#linuxfxversion) must be set to the [correct base image](update-language-versions.md?tabs=azure-cli%2Clinux&pivots=programming-language-csharp#update-the-stack-configuration), like `DOTNET-ISOLATED|8.0`.
647647

648648
---
649649

articles/azure-functions/language-support-policy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ To learn more about specific language version support policy timeline, visit the
5050

5151
|Language | Configuration guides |
5252
|-----------------------------------------|-----------------|
53-
|C# (in-process model) |[link](./functions-dotnet-class-library.md#supported-versions)|
5453
|C# (isolated worker model) |[link](./dotnet-isolated-process-guide.md#supported-versions)|
55-
|Java |[link](./update-language-versions.md#update-the-language-version)|
54+
|C# (in-process model) |[link](./functions-dotnet-class-library.md#supported-versions)|
55+
|Java |[link](./update-language-versions.md#update-the-stack-configuration)|
5656
|Node |[link](./functions-reference-node.md#setting-the-node-version)|
5757
|PowerShell |[link](./functions-reference-powershell.md#changing-the-powershell-version)|
5858
|Python |[link](./functions-reference-python.md#python-version)|

articles/azure-functions/update-language-versions.md

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,45 @@ ms.date: 12/06/2023
77
zone_pivot_groups: programming-languages-set-functions
88
---
99

10-
# Update language versions in Azure Functions
10+
# Update language stack versions in Azure Functions
1111

12-
The Azure Functions supports specific versions of each native language. This support changes based on the support of specific versions of each language or language stack. As these supported versions change, you need to update your function app to stay on a supported version. You might also want to update your apps to take advantage of features in newer supported versions of your language. For more information about supported versions, see [Languages](functions-versions.md#languages).
12+
The support for any given language stack in Azure Functions is limited to [specific versions](functions-versions.md#languages). As new versions become available, you might want to update your apps to take advantage of their features. Support in Functions may also end for older versions, typically aligned to the community end-of-support timelines. See the [Language runtime support policy](./language-support-policy.md) for details. To ensure your apps continue to receive support, you should follow the instructions outlined in this article to update them to the latest available versions.
1313

1414
The way that you update your function app depends on:
1515

16-
+ The language of your functions; make sure to choose your function language at the [top](#top) of the article.
16+
+ The language you use to author your functions; make sure to choose your programming language at the [top](#top) of the article.
1717
+ The operating system on which your app runs in Azure: Windows or Linux.
1818
+ The [hosting plan](./functions-scale.md).
1919

2020
::: zone pivot="programming-language-csharp"
21-
This article shows you have to update your version of .NET when your app runs in an [isolated worker process](dotnet-isolated-process-guide.md). Apps that run [on .NET 6 in-process](functions-dotnet-class-library.md) can't yet be updated to .NET 8. To migrate your app from in-process to the isolated worker process model, see [Migrate .NET apps from the in-process model to the isolated worker model](migrate-dotnet-to-isolated-model.md).
21+
This article shows you how to update the .NET version of an app using the [isolated worker model](dotnet-isolated-process-guide.md). Apps that run on [the in-process model](functions-dotnet-class-library.md) can't yet be updated to .NET 8 without switching to the isolated worker model. To migrate to the isolated worker model, see [Migrate .NET apps from the in-process model to the isolated worker model](migrate-dotnet-to-isolated-model.md). For information about .NET 8 plans, including future options for the in-process model, see the [Azure Functions Roadmap Update post](https://aka.ms/azure-functions-dotnet-roadmap).
2222
::: zone-end
23-
2423

2524
## Prepare to update
2625

27-
Before you update the language version in Azure, you should complete these tasks:
26+
Before you update the stack configuration for your function app in Azure, you should complete these tasks:
2827

2928
### 1. Verify your functions locally
3029

31-
Before upgrading the language version used by your function app in Azure, make sure that you test and verify your function code locally on the new target language version.
30+
Make sure that you test and verify your function code locally on the new target version.
31+
32+
::: zone pivot="programming-language-csharp"
33+
Use these steps to update the project on your local computer:
34+
35+
1. Ensure you have [installed the target version of the .NET SDK](https://dotnet.microsoft.com/download/dotnet).
36+
37+
1. Update your references to the latest stable versions of: [Microsoft.Azure.Functions.Worker](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/) and [Microsoft.Azure.Functions.Worker.Sdk](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/).
38+
39+
1. Update your project's target framework to the new version. For C# projects, you must update the `<TargetFramework>` element in the `.csproj` file. See [Target frameworks](/dotnet/standard/frameworks) for specifics related to the chosen version.
40+
41+
1. Make any updates to your project code that are required by the new .NET version. Check the version's release notes for specifics. You can also use the [.NET Upgrade Assistant](/dotnet/core/porting/upgrade-assistant-overview) to help you update your code in response to changes across major versions.
42+
43+
After you've made those changes, rebuild your project and test it to confirm your app runs as expected.
44+
::: zone-end
3245

3346
### 2. Move to the latest Functions runtime
3447

35-
Before updating your language version, make sure your function app is running on the latest version of the Functions runtime (version 4.x). You can determine the runtime version either in the Azure portal or by using the Azure CLI.
48+
Make sure your function app is running on the latest version of the Functions runtime (version 4.x). You can determine the runtime version either in the Azure portal or by using the Azure CLI.
3649

3750
### [Azure portal](#tab/azure-portal)
3851

@@ -55,22 +68,22 @@ The `FUNCTIONS_EXTENSION_VERSION` setting sets the runtime version. A value of `
5568

5669
---
5770

58-
If you need to first update your function app to version 4.x, see [Migrate apps from Azure Functions version 3.x to version 4.x](./migrate-version-3-version-4.md). You should follow the instructions in that article rather than just changing the `FUNCTIONS_EXTENSION_VERSION` setting.
71+
If you need to first update your function app to version 4.x, see [Migrate apps from Azure Functions version 1.x to version 4.x](./migrate-version-1-version-4.md) or [Migrate apps from Azure Functions version 3.x to version 4.x](./migrate-version-3-version-4.md). You should follow the instructions in those articles rather than just changing the `FUNCTIONS_EXTENSION_VERSION` setting.
5972

6073
## Publish app updates
6174

62-
If you updated your app to run correctly on the new language version, publish the app updates before you update the language version in your function app.
75+
If you updated your app to run correctly on the new version, publish the app updates before you update the stack configuration for your function app.
6376

6477
> [!TIP]
6578
> To simplify the update process, minimize downtime for your functions, and provide a potential for rollback, you should publish your updated app to a staging slot. For more information, see [Azure Functions deployment slots](functions-deployment-slots.md#add-a-slot).
6679
6780
When publishing your updated app to a staging slot, make sure to follow the slot-specific update instructions in the rest of this article. You later swap the updated staging slot into production.
6881

69-
## Update the language version
82+
## Update the stack configuration
7083

71-
The way that you update the language or language-stack version depends on whether you're running on Windows or on Linux in Azure.
84+
The way that you update the stack configuration depends on whether you're running on Windows or on Linux in Azure.
7285

73-
When using a [staging slot](functions-deployment-slots.md), make sure to target your updates to the correct slot.
86+
When using a [staging slot](functions-deployment-slots.md), make sure to target your updates to the correct slot.
7487

7588
### [Windows](#tab/windows/azure-portal)
7689

@@ -79,7 +92,7 @@ When using a [staging slot](functions-deployment-slots.md), make sure to target
7992
### [Linux](#tab/linux/azure-portal)
8093

8194
> [!NOTE]
82-
> You can only use the Azure portal to update function apps on Linux hosted in a [Premium plan](./functions-premium-plan.md) or a [Dedicated (App Service) plan](./dedicated-plan.md). For apps on Linux hosted in a [Consumption plan](./consumption-plan.md), you must instead use the [Azure CLI](update-language-versions.md?tabs=azure-cli#update-the-language-version).
95+
> You can only use the Azure portal to update function apps on Linux hosted in a [Premium plan](./functions-premium-plan.md) or a [Dedicated (App Service) plan](./dedicated-plan.md). For apps on Linux hosted in a [Consumption plan](./consumption-plan.md), you must instead use the [Azure CLI](update-language-versions.md?tabs=azure-cli#update-the-stack-configuration).
8396
8497
[!INCLUDE [functions-update-language-version-portal](../../includes/functions-update-language-version-portal.md)]
8598

@@ -104,7 +117,7 @@ Python apps aren't supported on Windows. Select the **Linux** tab instead.
104117
First, use the [`az functionapp list-runtimes`](/cli/azure/functionapp#az-functionapp-list-runtimes) command to view the supported version values for your language. Then, run the [`az functionapp config set`](/cli/azure/functionapp/config#az-functionapp-config-set) command to update the language version of your function app:
105118
::: zone-end
106119
::: zone pivot="programming-language-csharp"
107-
First, use the [`az functionapp list-runtimes`](/cli/azure/functionapp#az-functionapp-list-runtimes) command to view the supported version values for your language stack (.NET). Then, run the [`az functionapp config set`](/cli/azure/functionapp/config#az-functionapp-config-set) command to update the .NET version of your function app:
120+
Run the [`az functionapp list-runtimes`](/cli/azure/functionapp#az-functionapp-list-runtimes) command to view the supported version values for .NET on the isolated worker model:
108121
::: zone-end
109122
::: zone pivot="programming-language-java"
110123
```azurecli
@@ -113,12 +126,18 @@ az functionapp list-runtimes --os "windows" --query "[?runtime == 'java'].{Versi
113126
az functionapp config set --java-version "<VERSION>" --name "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
114127
```
115128
::: zone-end
116-
::: zone pivot="programming-language-csharp"
129+
::: zone pivot="programming-language-csharp"
130+
117131
```azurecli
118132
az functionapp list-runtimes --os "windows" --query "[?runtime == 'dotnet-isolated'].{Version:version}" --output table
133+
```
119134

120-
az functionapp config set --net-framework-version "<VERSION>" --name "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
135+
Run the [`az functionapp config set`](/cli/azure/functionapp/config#az-functionapp-config-set) command to update the .NET version of your function app:
136+
137+
```azurecli
138+
az functionapp config set --net-framework-version "v<VERSION>.0" --name "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
121139
```
140+
122141
::: zone-end
123142
::: zone pivot="programming-language-javascript,programming-language-typescript"
124143
First, use the [`az functionapp list-runtimes`](/cli/azure/functionapp#az-functionapp-list-runtimes) command to view the supported version values for your language stack (Node.js). Then, run the [`az functionapp config set`](/cli/azure/functionapp/config#az-functionapp-config-set) command to update the Node.js version of your function app:
@@ -189,7 +208,7 @@ In this example, replace `<APP_NAME>` and `<RESOURCE_GROUP>` with the name of yo
189208

190209
---
191210

192-
Your function app restarts after you update the version. To learn more about Functions support policies for native languages, see [Language runtime support policy](language-support-policy.md).
211+
Your function app restarts after you update the version.
193212

194213
## Swap slots
195214

includes/functions-dotnet-execution-model.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.date: 07/19/2022
66
ms.author: glenga
77
---
88

9-
| Execution mode | Description |
9+
| Execution model | Description |
1010
| --- | --- |
1111
| **Isolated worker model**| Your function code runs in a separate .NET worker process. Use with [supported versions of .NET and .NET Framework](../articles/azure-functions/dotnet-isolated-process-guide.md#supported-versions). To learn more, see [Develop .NET isolated worker process functions](../articles/azure-functions/dotnet-isolated-process-guide.md). |
1212
| **In-process model**| Your function code runs in the same process as the Functions host process. Supports only [Long Term Support (LTS) versions of .NET](../articles/azure-functions/functions-dotnet-class-library.md#supported-versions). To learn more, see [Develop .NET class library functions](../articles/azure-functions/functions-dotnet-class-library.md). |

includes/functions-supported-languages.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ ms.custom:
99
- ignite-2023
1010
---
1111
::: zone pivot="programming-language-csharp"
12-
The following table shows the runtime and language versions supported for C# functions. Select your preferred development language at the top of the article.
12+
The following table shows the .NET versions supported by Azure Functions. Select your preferred development language at the top of the article.
1313

14-
The supported version of .NET depends on both your Functions runtime version and your chosen .NET worker process model:
14+
The supported version of .NET depends on both your Functions runtime version and your chosen execution model:
1515

1616
### [Isolated worker model](#tab/isolated-process)
1717

@@ -45,7 +45,7 @@ For more information, see [Develop C# class library functions using Azure Functi
4545

4646
| Supported version | Support level<sup>1</sup> | Expected community EOL date |
4747
| ---- | ---- |--- |
48-
| .NET 8 | GA | [See policy][dotnet-policy] |
48+
| .NET 8 | GA | [November 10, 2026][dotnet-policy] |
4949
| .NET 7 | GA | [May 14, 2024][dotnet-policy] |
5050
| .NET 6 | GA | [November 12, 2024][dotnet-policy] |
5151
| .NET Framework 4.8 | GA | [See policy][dotnet-framework-policy] |

0 commit comments

Comments
 (0)