Azure Functions - Ignite 2023 update
Published Nov 15 2023 08:00 AM 6,694 Views
Microsoft

It is exciting to have Microsoft Ignite happening this week and the team wanted to give an update on the latest releases of Azure Functions since the previous update in May Azure Functions – May update for Microsoft build. There have been a lot of features that were released based on your feedback that hopefully will make your experience using Azure Functions better as you build out your serverless applications.

 

General availability announcements:

The following capabilities are now generally available for all Functions customers.

 

.NET 8 support in Azure Functions

Azure Functions now supports .NET 8 for applications using the isolated worker model. Support is available for Windows and Linux on the Consumption, Elastic Premium, and App Service plan hosting options. .NET 8 on the isolated worker model is the new recommended default for .NET function apps, and this will be reflected in tooling updates released after this announcement.

If you want to upgrade your existing Function applications to .NET 8, you can use the .NET Upgrade Assistant or follow the documentation at https://aka.ms/af-dotnet-isolated-migration.

 

EamonOReilly_0-1700060492068.png

 

 

Support for .NET 8 does not currently extend to applications using the in-process model. See the August 2023 roadmap update for more information regarding support timelines.

For more information about .NET 8 on the isolated worker model, see https://aka.ms/af-dotnet-isolated-net8.

 

Isolated worker model improvements when running .NET

The isolated worker model has received several key updates that make it now the best way to author Azure Functions using .NET. These improvements include:

  • Support for ASP.NET Core integration – Apps can now be written to use familiar types from ASP.NET Core such as HttpRequest, HttpResponse, and IActionResult. This makes it easier for function authors to leverage their existing skills from ASP.NET Core and existing in-process Functions projects. The update also provides greater control over the request and response, enabling larger message sizes and streaming content types.
  • Support for binding to SDK types – Function apps on the isolated worker model can now leverage an expanded range of types, such as those from the Azure SDK for .NET. For example, a .NET function in an isolated worker process could start with a BlobClient passed into it. Using that type, the function can stream data incrementally and process larger blobs than it could before.
  • Support for Service Bus trigger message settlement – Azure Service Bus offers features for managing the transfer state of messages through settlement actions such as completion, deferral, and dead-lettering. .NET function apps using the isolated worker model can now perform these actions against messages that triggered the function.
  • Support for Application Insights from the worker – You can now fully control the emission of telemetry using standard controls available from the Application Insights SDK. For example, through registration in your application startup, you can configure custom filtering rules, adjust log levels, and more.
  • Support for Durable Functions – Apps using the isolated worker model can use Durable Functions to author stateful workflows and entities. These concepts enable application patterns like event aggregation, fan out and fan in, asynchronous APIs, and more.
  • Performance optimizations – New defaults for projects and function app configuration allow isolated workers to achieve higher throughput and lower cold start time.

To learn more about the isolated worker model and how to integrate these features, see https://aka.ms/af-dotnet-isolated-guide.

 

Azure Functions v4 Programming model for Node.js

The v4 programming model for Azure Functions using Node.js is now generally available. This programming model is part of Azure Function’s larger effort to provide flexible and intuitive experience for all supported languages.

With the v4 programming model, customers will benefit from:

  • Flexible folder structure that allows you to organize triggers in a way that makes sense to your Function App
  • Simplified trigger configuration that provides the ability to define functions in your code
  • HTTP request and response types are adjusted to be a subset of the fetch standard instead of types unique to Azure Functions
  • Support for IntelliSense for JavaScript, and improvements to IntelliSense for TypeScript.

To learn more about the Node,js v4 programming model, read our blog post

 

Higher default value for Azure Functions Event Hubs max batch size

Starting with version 6.0.0 of the Azure Functions Event Hubs extension, a higher default value of 100 will be used for the maxEventBatchSize configuration setting.

This setting represents the maximum number of events from Event Hubs that the function can receive when it's invoked. This matches the defaults of the Azure SDK for Event Hubs and will apply starting with version 6.0.0 of the Event Hubs extension.

This change will be beneficial to the average scenario by helping to improve performance as well as lower costs due to fewer function executions. We recommend testing to ensure no breaking changes are introduced to your function app before updating existing applications to version 6.0.0 or newer of the Event Hubs extension, especially if you have code that was written to expect 10 as the max event batch size.

Learn more.

 

Application Insights enhanced distributed tracing for Java Function applications.

Use the application map for a more complete view of end-to-end transactions to better diagnose issues and interactions within your function application and external systems.

Learn more

 

Support for Python 3.11 in Azure Functions

You can now use the latest Python 3.11 to build your applications. See the supported versions of Python in the documentation

 

Durable Functions for Python v2 Programming Model

Support of Durable Functions with the Azure Functions v2 programming model for development in Python is now Generally Available. Durable apps can now be organized in a manner more idiomatic to Python developers.

To learn more and try out durable with the v2 programming model for Python today, see Create your first durable function in Azure using Python

 

Azure Functions support on Apple Silicon Macs 

Azure Functions support for local development on Apple Silicon Macs is now generally available for Node.js, .NET, PowerShell, Python 3.8+, and Java 11 & 17. This means you can natively develop Azure Functions using Core Tools on Apple Silicon Macs. To get started, upgrade your Core Tools version to 4.0.5455 or above, and try it out!

 

Kubernetes Event-driven Autoscaling (KEDA) add-on

Kubernetes Event-driven Autoscaling (KEDA) is a single-purpose and lightweight component that strives to make application autoscaling simple and is a CNCF Graduate project.

It applies event-driven autoscaling to scale your application to meet demand in a sustainable and cost-efficient manner with scale-to-zero. You can learn more about this release on the blog.

The KEDA add-on makes it even easier by deploying a managed KEDA installation, providing you with a rich catalog of Azure KEDA scalers that you can scale your applications with on your Azure Kubernetes Services (AKS) cluster. To learn more about using KEDA with Azure Functions in AKS, please visit the documentation.

 

Public and early access preview announcements:

The following capabilities are now in preview for Functions customers.

 

Azure Functions Flex Consumption: sign up for early access.

We are excited to introduce Flex Consumption, a new Azure Functions hosting option that offers more flexibility and customizability without compromising on available features. It introduces private networking, instance size selection, and fast and large scale out features on a serverless model.

Flex Consumption will be the best choice for event-driven serverless functions. We are currently in early access preview and need your feedback to help shape this feature.

EamonOReilly_1-1700060492088.png

 

Click here to sign up for early access.

 

Azure Functions Support for Node.js 20

You can now develop functions using Node.js 20 locally and deploy them to all Azure Functions plans on Linux and Windows.

Learn more about upgrading your Function Apps to Node.js 20.

 

Dapr extension for Azure Functions

We are pleased to announce the public preview launch of the Dapr extension and the seamless integration with Azure Functions for cloud-native services hosted on Azure Container Apps. These capabilities enable functions to seamlessly interact with Dapr, facilitating the development of cloud-native applications. Azure Functions on Azure Container Apps was launched in public preview in May 2023 which enables you to quickly build event driven, cloud-native apps, with the flexibility to run Functions along with other microservices, APIs, websites, workflows or any container hosted components.  With this seamless integration, cloud native microservices can leverage DAPR to simplify the development of distributed applications by abstracting away the challenges in building resilient, scalable, and secure cloud-native systems. You can learn more about the preview on the Tech Community blog.

The DAPR extension for Azure Functions is optimized for  Azure Functions on  Azure  container apps plans. In addition, the extension can also be used in other environments that supports Dapr and Azure Functions like AKS, Kubernetes or self-hosted mode.

Learn more

 

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.

 

EamonOReilly_2-1700060492096.png

 

 

Thanks for all your feedback from the Azure Functions Team.

 

Co-Authors
Version history
Last update:
‎Nov 15 2023 02:22 PM
Updated by: