Azure Functions v3

With General Release of Azure Functions v3 imminent it’s always a good time to review the feature set and start to consider when to use them.

What is supported in Azure Functions v3?

v3 opens up the latest versions of .net and node to developers whilst maintaining support for Java, Python and Powershell.

C#GA (.NET Framework 4.7)GA (.NET Core 2.2)GA (.NET Core 3.1)
JavaScriptGA (Node 6)GA (Node 8 & 10)GA (Node 10 & 12)
F#GA (.NET Framework 4.7)GA (.NET Core 2.2)GA (.NET Core 3.1)
JavaN/AGA (Java 8)GA (Java 8)
PowerShellN/AGA (PowerShell Core 6)GA (PowerShell Core 6)
PythonN/AGA (Python 3.6 & 3.7)GA (Python 3.6 & 3.7)
Azure Function Supported Frameworks

The same triggers are supported in v3 as v2, but you just have to make sure you install the extensions.

Breaking Changes

All upgrades have meant there are changes to the code, but version 3 seems to be mostly the same as version 2, except higher run times. Whilst reviewing the breaking changes document I personally couldn’t find anything in the .net changes that I thought would be an issue to developers following best practice. Obviously, I recommend you review the document yourself before upgrading!

How do I upgrade to Azure Functions v3?

After you’ve review the breaking changes document and addressed any issues you found, upgrading the .net Functions is simple. Just update the packages and update the Target Framework as detailed in the table above. It’s that simple. Just make sure you update your ARM templates for your Azure CI/CD to reflect the runtime is now v3 or else it might not deploy correctly.

Do I have to upgrade?

Not at all. v1 and v2 are still supported and receiving appropriate security updates so there is no rush at all. Eventually, Microsoft will choose to retire v1 and/or v2 but the standard policy is that you will get a years notice before this happens so that you can plan accordingly. That said, if you’re starting something new it is always a good idea to start with the latest stable version, i.e. v3, rather than risking starting v1 and it being retired shortly after.