Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking thread: in-process model option for .NET 8 #9951

Closed
mattchenderson opened this issue Mar 26, 2024 · 6 comments
Closed

Tracking thread: in-process model option for .NET 8 #9951

mattchenderson opened this issue Mar 26, 2024 · 6 comments
Labels
.NET 8 Pull requests that update .net code

Comments

@mattchenderson
Copy link
Contributor

This issue thread will track updates relating to the in-process model option for .NET 8. Please see the latest comment for current status.

This issue will be locked so that updates from the team are not lost among other comments. For any questions, feedback, or other issues as the feature becomes available, please open a new issue.

@mattchenderson mattchenderson added the .NET 8 Pull requests that update .net code label Mar 26, 2024
@Azure Azure locked as resolved and limited conversation to collaborators Mar 26, 2024
@mattchenderson
Copy link
Contributor Author

We have posted a new roadmap update which includes information on how the in-process model option for .NET 8 will work: https://aka.ms/azure-functions-dotnet-roadmap/2024-03

@mattchenderson mattchenderson pinned this issue Mar 29, 2024
@satvu satvu unpinned this issue Apr 17, 2024
@satvu satvu pinned this issue Apr 17, 2024
@mattchenderson
Copy link
Contributor Author

Work is ongoing, and we've made good progress. The core artifacts needed are ready, so rollout is the next step. At this point we can now set an ETA: our current goal is to enable support on Windows in June. We have a few more details to figure out for Linux, but custom images should be supported at the same time as Windows.

@mattchenderson
Copy link
Contributor Author

mattchenderson commented Jun 17, 2024

Support is now available in public Azure for Windows apps not in App Service Environments. We are continuing to work on enabling Linux apps, App Service Environments, and sovereign clouds. At time of writing this post, the support does not yet appear in some of our tooling experiences, such as the Azure portal or the Functions Core Tools. Those changes are in the process of rolling out.

Official documentation will become available later today, and this comment will be edited to include a link to that. The following sections capture the main changes. (Edit: the documentation is available here.)

For any issues that you have with the setup, please open a new GitHub issue on this repository.

As a reminder, if you choose to exercise this option, you should still begin planning your migration to the isolated worker model in advance of support ending for the in-process model on November 10, 2026.

App configuration changes

The following are the main changes needed to an app in order to use .NET 8 on the in-process model:

  • The application setting FUNCTIONS_WORKER_RUNTIME must be set with the value "dotnet".
  • The application setting FUNCTIONS_EXTENSION_VERSION must be set with the value "~4".
  • The application setting FUNCTIONS_INPROC_NET8_ENABLED must be set with the value "1".
  • You must update the stack configuration to reference .NET 8.

For now, we recommend using the Azure CLI (also available through Cloud Shell in the portal) to set the stack configuration:

az functionapp config set -g <groupName> -n <appName> --net-framework-version v8.0

Local project changes

Due to the high degree of compatibility between .NET 6 and .NET 8, for many apps, you can perform the above configuration changes without needing to redeploy your code right away. However, it is a good idea to update any dependencies with specific framework targets, etc. To update your local project for .NET 8 on the in-process model, first make sure you are using the latest versions of local tools. Then ensure that the project references version 4.4.0 or later of Microsoft.NET.Sdk.Functions. You can then change your TargetFramework to "net8.0". You must also update local.settings.json to include both FUNCTIONS_WORKER_RUNTIME set to "dotnet" and FUNCTIONS_INPROC_NET8_ENABLED set to "1".

If you are using Visual Studio, make sure you have also updated to get the latest tools:

  1. Navigate to Tools > Options, choose Azure Functions under Projects and Solutions.
  2. Select Check for updates and install updates as prompted.

@mattchenderson
Copy link
Contributor Author

Support is now available in public Azure for Windows apps on App Service Environments. You can use the same instructions shared in the last update.

This means that all Windows apps in public Azure now support .NET 8 on the in-process model. We are continuing to work on enabling Linux apps.

@mattchenderson
Copy link
Contributor Author

Support is now available in public Azure for Linux apps. This applies whether or not the app is in an App Service Environment. At time of writing this post, the support does not yet appear in some of our tooling experiences, such as the Azure portal or the Functions Core Tools. Those changes are in the process of rolling out.

As a reminder, if you choose to exercise this option, you should still begin planning your migration to the isolated worker model in advance of support ending for the in-process model on November 10, 2026.

The setup instructions above apply, although the way you update the stack configuration is different on Linux.

App configuration changes for Linux

The following are the main changes needed to an app in order to use .NET 8 on the in-process model:

  • The application setting FUNCTIONS_WORKER_RUNTIME must be set with the value "dotnet".
  • The application setting FUNCTIONS_EXTENSION_VERSION must be set with the value "~4".
  • The application setting FUNCTIONS_INPROC_NET8_ENABLED must be set with the value "1".
  • You must update the stack configuration to reference .NET 8.

For now, we recommend using the Azure CLI (also available through Cloud Shell in the portal) to set the stack configuration:

az functionapp config set -g <groupName> -n <appName> --linux-fx-version "DOTNET|8.0"

@mattchenderson
Copy link
Contributor Author

Support is now available for sovereign clouds. With this, the scope of support tracked by this thread is complete, and the issue will now be closed.

This thread has not covered Air Gapped Clouds, nor was it intended to. Please follow standard support processes in those environments for any status inquiries.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
.NET 8 Pull requests that update .net code
Projects
None yet
Development

No branches or pull requests

1 participant