Azure Logic Apps Standard now supports Azure Functions v4
Azure Logic Apps Standard can now run on the Azure Functions v4 runtime with the approaching end of v3 support
To run and deploy both locally and in the cloud, Azure Logic Apps Standard requires the Azure Functions runtime as a prerequisite. We've now enabled support for Functions v4 to provide customers transition time before support for Functions v3 ends in late 2022. New Standard logic app workflows now target the v4 runtime, and existing apps will be automatically upgraded.
Note: This upgrade is designed to have no runtime impact and requires no customer action unless you pinned your logic app to a specific bundle version, or if you deployed your logic app as a NuGet-based project. For how to upgrade, see the later sections in this article.
How do we plan to roll out the updates?
- In 2022, between October 17-31, we'll roll out an update that defaults new Standard logic app workflows to use Azure Functions v4.
- In 2022, between November 1- December 31, we'll automatically migrate existing Standard logic app workflows to use Azure Functions v4, unless they were deployed as NuGet-based projects, or their configurations were changed to pin a specific extension bundle version.
What about the Visual Studio Code extension?
Visual Studio Code extension support for Azure Functions V4 will be available by end of November 2022.
Try the v4 runtime now
We'll gradually upgrade existing logic apps, but if you want test the v4 runtime now, you can change your Standard logic app resource's FUNCTIONS_EXTENSION_VERSION app setting.
- In the Azure portal, on your logic app resource menu, under Settings, select Configuration.
- On the Configuration pane, find the app setting named FUNCTIONS_EXTENSION_VERSION (1), and change the value from ~v3 to ~v4.
- If your app has FUNCTIONS_WORKER_RUNTIME (2) set to node, make sure WEBSITE_NODE_DEFAULT_VERSION (3) is set to ~14
- Make sure FUNCTIONS_V2_COMPATIBILITY_MODE is set to false or removed from the settings.
Upgrade an app that’s pinned to a specific bundle version
If you pinned your Standard logic app to a specific bundle version, Functions v4 won't work because support was added to version 1.2.13 and later.
- In the Azure portal, on your logic app resource menu, under Settings, select Configuration.
- On the Configuration pane, find the app setting named AzureFunctionsJobHost__extensionBundle__version. If the value isn't set to the default version range [1.*, 2.0.0), the Functions v4 runtime won't work.
- To resolve this problem, reset the app setting's default version to [1.*, 2.0.0).
Upgrade a NuGet-based project
If you deployed your Standard logic app as a NuGet-based project, you must redeploy with the Microsoft.Azure.Workflows.WebJobs.Extension NuGet package, version 1.2.12 or later. Also make sure your set the TargetFraemwork to net6.0, AzureFunctionsVersion to v4. Here is a sample csproj file.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
<MSBuildWarningsAsMessages>MSB3246;$(MSBuildWarningsAsMessages)</MSBuildWarningsAsMessages>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.13"/>
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.Workflows.WebJobs.Extension" Version="1.2.*"/>
</ItemGroup>
<ItemGroup>
<None Update="Stateful1\**\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Update="Artifacts\**\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
Upgrade your ARM template
If your ARM template deployment includes the app setting named FUNCTIONS_EXTENSION_VERSION, WEBSITE_NODE_DEFAULT_VERSION and FUNCTIONS_V2_COMPATIBILITY_MODE are updated to the values specified above. Otherwise, your deployments will still point to Azure Functions v3.
Known Issues
-
Host ID Collisions
If your app name is longer than 32 characters and also if multiple apps use the same storage account, you may run into the host id collision. Please follow instructions here before you migrate your app.