Updated Lambda lovers, rejoice! You can now, from this week, write your cloudy functions in pretty much any version of .NET Core you like.
Amazon has, understandably, been a little wary of Microsoft's relatively short-lived support for some versions of .NET Core, building the Long Term Support (LTS) editions of Redmond's framework into its serverless product.
Right now, that means the latest version of .NET Core built into Lambda is 2.1, which was emitted back last year. Microsoft has since sent version 2.2 and a preview of version 3.0 out into the world, but Lambda developers have been locked into version 2.1 until Redmond presses the button to make 2.2 the LTS edition.
Good news, however, for those that like to live on the bleeding edge. Thanks to the Custom Runtimes feature of Lambda, the
Amazon.Lambda.RuntimeSupport library is here to save the day.
Custom AWS Lambda Runtimes let developers implement Lambda functions in unsupported languages or runtimes. It’s up to the coder to ensure that the runtime handles invocations and events correctly. The
Amazon.Lambda.RuntimeSupport library leverages this functionality to give devs the ability to use pretty much any version of .NET Core they desire.
Amazon is, however quick to point out that sticking with the built-in .NET Core support (for 2.1 at present) makes sense on occasions where the short-term nature of non-LTS versions of the framework would not be appropriate.
If you like your functions to be written in Visual Studio, you are sadly out of luck this time around. Amazon states that the
lambda.CustomRuntimeFunction template is available only through the .NET Core CLI, although an update to the AWS Toolkit for Visual Studio will follow “soon”.
Microsoft flings open Azure FunctionsREAD MORE
AWS Custom Runtimes put in an appearance back in 2018, at Amazon’s re:Invent, and the company told developers that the Runtime API was how it intended to support new languages in the future.
As for Microsoft’s take, in the form of Azure Functions, the picture is a little murkier. Running the 2.x version of the Azure Functions runtime appears to deposit developers in the world of .NET Core 2.1, meaning coders wishing to use the latest and greatest from the .NET Core team might be better taking a closer look at AWS.
We’ve contacted Microsoft to find out if there are plans to let developers pick-and-choose their preferred .NET Core version, and will update this article with any response. ®
Updated to add
Fear not, we're assured .NET Core 2.2 is covered by Azure Functions, if you know where to look: it's in the Target Framework drop-down menu in Visual Studio.
"Azure Functions already runs on .NET core 2.2. Customers can write code that leverages .NET Core 2.2 APIs trivially by just updating their project in Visual Studio," a member of the Azure Functions team told The Register.
"The templates do not default to .NET Core 2.2 because this would potentially impact customers that have not installed the 2.2 SDK."