With Ignite and .NET Conf completed, the team wanted to give an update on the latest releases in Azure Functions to enable customers to build event driven serverless applications. The team has been extremely busy working with customers over the last few months to invest in the developer's experience in Functions as well as platform improvements.
The following capabilities are now generally available for all Functions customers.
General availability announcements
Azure Functions runtime 4.0
Azure Functions runtime 4.0 is now generally available, supporting the following language/runtime versions:
Azure Functions support for .NET 6.0 is now generally available in Azure Functions runtime 4.0. .NET 6.0 is the latest Long Term Support (LTS) version of .NET. Both the in-process and isolated models are supported in .NET 6.0 Azure Functions.
Create a new C# Function app in .NET 6.0 in Visual Studio 2022
Build and deploy full-stack .NET 6.0 apps with backend APIs with Azure Static Web Apps
Azure Static Web Apps now supports building and deploying full-stack .NET 6.0 applications. .NET 6.0 is the latest Long Term Support (LTS) version of .NET.
For your app’s frontend, Static Web Apps can now automatically build and deploy .NET 6.0 Blazor WebAssembly apps, including those that use advanced .NET 6.0 features like ahead-of-time (AOT) compilation.
For backend APIs, you can build and deploy .NET 6.0 Azure Functions with your static web apps. Both in-process and isolated .NET 6.0 function apps are supported.
Availability zones for Azure Functions premium and dedicated app service plans
Customers who are looking for enhanced reliability of their function apps can now enable availability zones on their functions running in Azure Functions elastic premium and dedicated app service plans. This gives customers the ability to ensure that your function app is available on unique datacenters within the Azure region to help keep your app running even if a data center is down for a period. You can learn more about Zone redundancy in the documentation.
Azure Functions extensions for Blobs, Queues, Event Hubs, Service Bus, and Event Grid with identity based connection support
A set of Azure Functions triggers and bindings based on the latest Azure SDKs is now generally available. This covers:
Identity-based connections allow you to connect with these services using an identity rather than a connection string secret that must be managed. This identity could be the managed identity of your hosted app or, when running locally, your own developer identity.
.NET applications can now also be written with the latest types from the Azure SDKs. These replace some of the older types exposed by the triggers and bindings. To take advantage of these, you may also need to update some packages and `using` statements. Please see the binding reference for each service you wish to connect to.
The OpenAPI extension is now generally available for your .Net Azure Functions applications and renders Swagger UI, and OpenAPI v2 and v3 documents on-the-fly. You can learn more about the extension on the GitHub repo.
Public preview announcements
We have also recently released the following capabilities into public preview. We would love to get feedback on these features while we work to make them generally availability.
PowerShell on Linux in Azure Functions
Azure Functions support for PowerShell on Linux OS is now available in public preview for Consumption and Elastic Premium SKUs. You can now develop Azure Functions PowerShell apps locally and deploy them to Azure Functions on Linux OS.
To get started with Azure Functions PowerShell, please read this article.
Node.js 16 in Azure Functions
Azure Functions support for Node.js 16.x is now in public preview in Azure Functions runtime 4.0.
Node.js 16.13.0, the current LTS version, is available on Linux function apps. Windows function apps currently support version 16.9.1 and will be updated to an LTS version in December 2021.
This feature allows you to automatically determine optimal per trigger concurrency settings for your workloads.
In addition, dynamic concurrency can improve the performance of your applications by optimizing the throughput for each instance and make real-time adjustments to your concurrency settings as your load patterns change over time.
The preview currently supports Service Bus triggers. If you encounter any issues or have feedback, please file an issue on the Github repo.
Learn more about the benefits of dynamic concurrency and how to use concurrency.
Distributed tracing for Java apps on Azure Functions Linux
Azure Monitor application insights Java integration with Azure Functions on Linux allows you to view richer data from your functions applications, including, requests, dependencies, logs, and metrics. Application monitoring for Azure Functions can be enabled directly from Azure portal.
Azure Functions offers built-in integration with Azure Application Insights to monitor functions apps. For languages other than .NET and .NET Core additional language-specific workers/extensions are needed to get the full benefits of distributed tracing, this is the functionality that Azure Monitor application insights integration with Azure Functions covers.
The additional data also lets you see and diagnose end-to-end transactions and see the application map, which aggregates many transactions to show a topological view of how the systems interact, and what the average performance and error rates are.
The end-to-end diagnostics and the application map provide visibility into one single transaction/request. Together these two features are very helpful for finding the root cause of reliability issues and performance bottlenecks on a per request basis.
Azure Functions can now interact with SQL databases through input and output bindings for Azure SQL. The library to enable this functionality is in public preview and is available fromNuGet as Microsoft.Azure.WebJobs.Extensions.Sql. With Azure SQL bindings, data can be input from a database to the function with an input binding and data can be output from the function to the database. Configuring these bindings is accomplished with a small number of parameters, including specification of the database query or table and the connection string.
To learn more about developing Azure Functions with the Azure SQL bindings for Azure Functions, visit thedocumentation. The library is open source and is available onGitHub.
We would love to hear feedback on these new capabilities and your overall experience with Functions so we can make sure we meet all your needs. You can click on the “Send us your feedback” button from the overview page of your function app.
Thanks for all your feedback from the Azure Functions Team.