-
Notifications
You must be signed in to change notification settings - Fork 442
Platform upgrade from Azure Functions runtime V2 to V3
In order to keep all elements of the Azure Functions service patched and maintained with security updates moving forward, we will be rolling out a platform upgrade in October 2020 for V2 applications.
For more information on the upgrade, please refer to the GitHub announcement.
Azure Functions V2 apps will be upgraded to run on the V3 runtime. Azure Functions V3 is highly compatible with V2 and the vast majority of apps will be upgraded seamlessly.
Some .NET apps currently running in Azure Functions runtime V2 may be incompatible with an optimized .NET Core 3.1 host. For each affected app, you can either choose to opt-out of the platform upgrade, meaning the underlying runtime for your app will continue to run on as-is but no longer receive security updates, or make changes to your app to be compatible with the changes.
Azure Functions V2 apps target .NET Core 2.1 (by default) or 2.2, and V3 apps target .NET Core 3.1. If you are using any APIs that have changed in .NET Core 3.1, you will need to make modifications to your app. We have been running analysis over the past few weeks and will send a direct notification to subscription owners if we detect your app has incompatible changes. We will also make an effort to automatically opt these apps out of the upgrade. If you are currently running a V2 app that is not using one of the impacted .NET APIs, no action is required. Your app will continue to run on V2 and receive security and platform upgrades.
If your V2 app is using one of these APIs, we recommend upgrading to V3. The steps required to upgrade your application can be found in our documentation.
We recommend for anyone staying with the 2.x supported version upgrades to the 3.x version of core tools once the upgrade has completed. If you are opting out of the upgrade, you should remain on the 2.x version of the core tools.
For instructions on how to upgrade to the 3.x version of core tools, please refer to this page.
If you do not upgrade your app to Azure Functions runtime V3, you may “pin” your app to the version of Azure Functions v2 before the platform upgrade that will impact these APIs.
To pin your app to Azure Functions V2, update the application setting FUNCTIONS_EXTENSION_VERSION
to ~2.0
.
If you are running functions on the Linux Consumption plan, to opt out you will need to update update the application setting FUNCTIONS_EXTENSION_VERSION
to ~2.0
. If your LinuxFxVersion is empty, then please set that to your runtime and runtime version as well (Ex: For a Node 8 app, you can set LinuxFxVersion to NODE|8)
If you are running functions in a Linux Functions Premium or Linux App Service, to opt out you will need to update the site config: linuxFxVersion
to DOCKER|mcr.microsoft.com/azure-functions/dotnet:2.0.14786-appservice
.
UPDATE (Oct 5 2020): To prevent existing applications from being impacted, we will begin the process of automatically opting out apps that are still at risk for breaking that have not either upgraded to v3 or opted out already. We will opt the apps out by changing the FUNCTIONS_EXTENSION_VERSION
to ~2.0
. It is worth noting by redeploying from something like an ARM template users may inadvertently opt back in if they change that setting.
- Configuration Settings
- function.json
- host.json
- host.json (v2)
- Http Functions
- Function Runtime Versioning
- Official Functions developers guide
- Host Health Monitor
- Managing Connections
- Renaming a Function
- Retrieving information about the currently running function
- Site Extension Resolution
- Linux Consumption Regions
- Using LinuxFxVersion for Linux Function apps
- Out-of-proc Cancellation Tokens
- Assembly Resolution in Azure Functions
- ILogger
- Precompiled functions
- Official Functions C# developer reference
- Contributor Onboarding
- Development Process
- Deploying the Functions runtime as a private site extension
- Authoring & Testing Language Extensions
- Bindings in out-of-proc
- Language Extensibility
- Worker Capabilities
- Investigating and reporting issues with timer triggered functions not firing
- Sharing Your Function App name privately
- Azure Functions CLI release notes [moved here]
- Function App Zipped Deployment [deprecated]