I am trying to deploy Azure functions using Azure DevOps.
I have used terraform to create the required resources(Azure functions app) in Azure portal.
As a next steps with the build and release pipeline I have deployed actual function code written in C#.
I am getting the below error:
Your app is pinned to an unsupported runtime version for ‘dotnet’. For better performance, we recommend using one of our supported versions instead: ~3.
But when I create a function manually from the Azure portal I am not getting any warning.In this case also I am using Azure devops.
My build pipeline have simple tasks like selecting .NET core sdk(6.0.X) then dot net build using a *.csproj and archive and publish. These artifacts I am deploying in a release pipeline using Azure function task and selected deployment option as Zip deploy.
I tried both Zip deploy and Auto detect but both the cases I am getting the warning.
Why I am getting the warning? But for linux function I am not getting this kind of warning
.csproj
code:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.0" />
</ItemGroup>
4
Answers
Your error message is related with the function runtime version. Currently, Azure Function runtime ~4 is recommended for running .NET 6.0 according to the docs.
You will need to specify the function runtime version
~4
in your Terraform manifest. This can be achieved usingfunctions_extension_version
argument for theazurerm_windows_function_app
resource.As of azurerm provider 3.11.0, default
functions_extension_version
argument already defaults to~4
. So, in case you are using the latest provider version, you can either remove the currentfunctions_extension_version = "~3"
setting or update it with the version~4
.I didn’t use Terraform, but found that after I used the Azure CLI to set the dotnet version, the message went away.
az functionapp config set --net-framework-version v6.0 -g <RESOURCE_GROUP_NAME> -n <APP_NAME>
Sounds like you need to add another entry in your azure web config
Credit: https://blog.sandro-pereira.com/2022/07/28/azure-function-app-issues-your-app-is-pinned-to-an-unsupported-runtime-version-for-dotnet-for-better-performance-we-recommend-using-one-of-our-supported-versions-instead-3/
I am using terraform, and the config files are here for you to see and the specific file is this.
As you can see the FUNCTIONS_EXTENSION_VERSION is assigned "~4".
And because of this I get the following message.
And the same image zoomed.
So I changed
to
Now this fixed this issues.