The support for any given language stack in Azure Functions is limited to specific versions. 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 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.
The way that you update your function app depends on:
The language you use to author your functions; make sure to choose your programming language at the top of the article.
The operating system on which your app runs in Azure: Windows or Linux.
If you are targeting a preview version, consult the Functions guidance for preview .NET versions to ensure that the version is supported. Additional steps may be required for .NET previews.
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 for specifics related to the chosen version.
Changing your project's target framework might also require changes to parts of your toolchain, outside of project code. For example, in VS Code, you might need to update the azureFunctions.deploySubpath extension setting through user settings or your project's .vscode/settings.json file. Check for any dependencies on the framework version that may exist outside of your project code, as part of build steps or a CI/CD pipeline.
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 to help you update your code in response to changes across major versions.
After you've made those changes, rebuild your project and test it to confirm your app runs as expected.
2. Move to the latest Functions runtime
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.
Use these steps to determine your Functions runtime version:
In the Azure portal, locate your function app and select Configuration on the left-hand side under Settings.
Select the Function runtime settings tab and check the Runtime version value to see if your function app is running on version 4.x of the Functions runtime (~4).
az functionapp config appsettings list --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>"
The FUNCTIONS_EXTENSION_VERSION setting sets the runtime version. A value of ~4 means that your function app is already running on the latest minor version of the latest major version (4.x).
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.
Tip
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.
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.
Update the stack configuration
The way that you update the stack configuration depends on whether you're running on Windows or on Linux in Azure.
When using a staging slot, make sure to target your updates to the correct slot.
Use the following steps to update the Java version:
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update Java version to the desired version.
Select Save and when notified about a restart select Continue.
Use the following steps to update the .NET version:
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update .NET version to the desired version.
Select Save and when notified about a restart select Continue.
Use the following steps to update the Node.js version:
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update Node.js version to the desired version.
Select Save and when notified about a restart select Continue. This change updates the WEBSITE_NODE_DEFAULT_VERSION application setting.
Use the following steps to update the PowerShell version:
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update .NET version to the desired version.
Select Save and when notified about a restart select Continue.
Python apps aren't supported on Windows. Select the Linux tab instead.
Use the following steps to update the Java version:
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update Java version to the desired version.
Select Save and when notified about a restart select Continue.
Use the following steps to update the .NET version:
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update .NET version to the desired version.
Select Save and when notified about a restart select Continue.
Use the following steps to update the Node.js version:
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update Node.js version to the desired version.
Select Save and when notified about a restart select Continue. This change updates the WEBSITE_NODE_DEFAULT_VERSION application setting.
Use the following steps to update the PowerShell version:
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update .NET version to the desired version.
Select Save and when notified about a restart select Continue.
Python apps aren't supported on Windows. Select the Linux tab instead.
In the Azure portal, locate your function app and select Configuration on the left-hand side. When using a staging slot, make sure to first select the specific slot.
In the General settings tab, update Python version to the desired version.
Bemærk
You can't change the Python version when running in a Consumption plan.
Select Save and when notified about a restart select Continue.
Python apps aren't supported on Windows. Select the Linux tab instead.
az functionapp config set --net-framework-version "v<VERSION>.0" --name "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
First, use the az functionapp list-runtimes command to view the supported version values for your language stack (Node.js). Then, run the az functionapp config set command to update the Node.js version of your function app:
az functionapp list-runtimes --os "windows" --query "[?runtime == 'node'].{Version:version}" --output table
az functionapp config appsettings set --name "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --settings "WEBSITE_NODE_DEFAULT_VERSION=~<VERSION>" --slot "staging"
az functionapp list-runtimes --os "windows" --query "[?runtime == 'powershell'].{Version:version}" --output table
az functionapp config set --powershell-version "<VERSION>" --name "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
In this example, replace <APP_NAME> and <RESOURCE_GROUP> with the name of your function app and resource group, respectively. Also replace <VERSION> with the supported language version to which you're updating. If you aren't using a staging slot, remove the --slot parameter.
Bemærk
You can't change the Python version when running in a Consumption plan.
az functionapp list-runtimes --os linux --query "[?runtime == 'python'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'dotnet-isolated'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'node'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'python'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'powershell'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
Run the az functionapp config set command to update the site setting for the new language version of your function app:
Run the az functionapp config set command to update the site setting for the new stack version of your function app:
az functionapp config set --linux-fx-version "<LANGUAGE|VERSION>" --name "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
In this example, replace <APP_NAME> and <RESOURCE_GROUP> with the name of your function app and resource group, respectively. Also replace <LANGUAGE|VERSION> with the linuxFxVersion for your update. If you aren't using a staging slot, remove the --slot parameter.
Your function app restarts after you update the version.
Swap slots
If you have been performing your code project deployment and updating settings in a staging slot, you finally need to swap the staging slot into production. For more information, see Swap slots.
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.
This article shows you how to migrate your existing function apps running on version 3.x of the Azure Functions runtime to be able to run on version 4.x of the runtime.
Learn how to troubleshoot the event 'AZFD0013: The configured runtime does not match the worker runtime metadata found in the deployed function app artifacts' in Azure Functions.