Azure Functions – 2022 update
Published Oct 11 2022 03:56 PM 15K Views
Microsoft

Azure Functions – 2022 update

With Microsoft Build completed, and Ignite happening now, the team wanted to give an update on the latest releases this year in Azure Functions since the previous Fall update in November.

We have been getting great feedback from customers and the community and I wanted to thank everyone for the continued growth of Functions and making the product better together.

 

General availability announcements

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

 

Azure Functions .NET Framework support in the isolated worker model

You can now build production Serverless Apps with Azure Functions v4 in the isolated worker model with .NET Framework 4.8. This allows apps with .NET Framework dependencies to take advantage of the latest versions of Azure Functions host. 

If you are on .NET Framework on Functions v1, it is recommended to migrate to .NET 6 or .NET 7 of the v4 host. If your apps have .NET Framework dependencies, please migrate to .NET framework on v4 and provide feedback on our Azure Functions .NET Worker GitHub repository.

Apps built using this capability will follow the same patterns as any isolated .NET worker project in Functions, but they will specify .NET Framework 4.8 as the target framework. Please provide feedback through the Azure Functions .NET Worker GitHub repository.

Learn more

 

PowerShell on Linux OS support

Azure Functions support for PowerShell on Linux OS is now generally available in Azure Functions runtime 4.0 on all hosting plans. You can now develop Azure Functions PowerShell apps locally and deploy them to Azure Functions on Linux OS. This also makes it possible to run your PowerShell apps when running Functions in Kubernetes.

 

Azure Functions support for PowerShell 7.2

Azure Functions support for PowerShell 7.2 enables developing and deploying Azure Function Apps for production scenarios using the latest version of PowerShell. Azure Functions PowerShell 7.2 requires your Functions App to be on the Functions runtime version 4.

Follow this guide to upgrade existing Function Apps to PowerShell 7.2

Learn more about what’s new on PowerShell 7.2

Learn more about supported languages by runtime. 

 

Azure Functions custom OpenID support

Apps can be configured with any OpenID provider as a custom identity provider for the App Service Authentication feature.  You can learn more about this capability on Configure an OpenID Connect provider.

 

Node.js 16 support

Node.js 16.x is the latest long-term support (LTS) release of the Node.js runtime and includes features such as a new version of the V8 JavaScript engine. Azure Functions support for Node.js 16 follows the Node.js lifecycle. Please refer to the Node.js Releases page for its planned end-of-life date.

Learn how to use Azure Functions in Visual Studio and Visual Studio code

 

New regions available for Azure Functions

Azure Functions is also now available in the follow regions. You can see a full list of supported regions on the Azure region site for Functions.

 

Windows Consumption, Linux Premium and Windows Premium 

France South, Korea South, Qatar Central, Sweden Central, Sweden South

 

Linux Consumption 

Canada Central, Jio India West, South Africa North, Sweden Central, West Central US

 

Azure Functions Linux Elastic Premium plan increased maximum scale-out limits

Maximum scale-out limits for Azure Functions on Linux Elastic Premium plans have been increased in the following regions:

Regions                 New scale-out limit

Australia East                     40

Central US                          100

East US                               100

East US 2                            100

North Europe                     80

South Central US               60

UK South                            60

West Europe                      100

West US                             40

You can learn more about these region expansions in the documentation.

 

Azure Functions Kafka trigger support

The Kafka extension for Azure Functions enables you to detect and respond to real time messages streaming into Kafka topics or write to a Kafka topic through the output binding. You can now focus on your Azure Function’s logic without worrying about the event-sourcing pipeline or maintaining infra to host the extension. This extension is supported when hosting functions in the Premium plan.

Learn more about the Kafka extension in the documentation.

 

Dynamic concurrency in Azure Functions

Dynamic concurrency automatically determines optimal per trigger concurrency settings for your workloads and adjusts as your load patterns change over time. Using dynamic concurrency can provide the following benefits to your function apps:

  • Increased throughput
  • Simplified concurrency configuration
  • Dynamic adjustments to changing load patterns
  • Instance health protection

This feature currently supports Service Bus, Azure Blob, and Azure Queue triggers.

Learn more about the benefits of dynamic concurrency and how to optimize concurrency. 

 

Azure Functions extension for Event Grid blob trigger

The Event Grid blob trigger handles events raised by a storage account and is now generally available.

The extension allows you to reduce latency by triggering on an event subscription to the same blob container. The event subscription uses Event Grid to forward changes in the blob container as events for your function to consume.

Learn more.

 

Azure Functions retry policy for Event Hubs and timer triggers

You can now set a retry policy using Event Hubs or timer triggers that re-executes a function until successful execution or the maximum number of retries occur.

Learn more.

 

Durable Functions for Node.js

This version has significant performance and robustness advantage over the old version. 

To get a sense of improvement, consider this simple fan-out-fan-in orchestration over 15k activities.

A fan-out-fan-in benchmark

Here we use Durable Functions Extension version 2.6.1 and run this benchmark on the Azure Functions Consumption plan for Windows. We then compare the performance of this benchmark between the npm package `durable-functions` version `1.5.4` and version `2.0.0`. See results below.

EamonOReilly_0-1665416353183.png

 

This new major release reduces orchestration time by more than 50%. Your improvement may vary, but we expect most workloads to experience increased runtime performance from this release, especially for high-scale workloads.

This release makes use of new features in the Durable Functions Extension to prevent race-conditions that cause orchestrations to get stuck in large fan-out-fan-in scenarios, especially when durable timers are involved.

Try it out by installing version 2.0.0, or later, of the SDK.

Important Note: There are a few breaking changes in this release for certain edge use cases. For details, please see our release notes

 

Linux portal editing for applications

Azure Functions now supports developing and editing applications, running on Linux, to be created and edited within the Azure portal.

Learn more about developing Functions in the portal: Create your first function in the Azure portal.

 

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.

 

Announcing the .NET 7 support for Azure functions in an isolated process

You can now build your serverless applications with .NET 7 in Azure Functions using the .NET Isolated Worker model, which provides an isolation model that decouples your function process from the Azure Functions runtime, bringing the flexibility needed to target different versions of .NET, more efficiently manage dependencies and service registration.

 

You can provide feedback about this preview feature and your use cases via the Azure Functions .NET language worker Github repository.

See the announcement for .NET 7 support for Azure functions in an isolated process.

Learn more.

 

Durable functions support for isolated .NET worker process

Durable functions now support running in the isolated .NET worker process in Azure Functions. You can now use the isolated .NET worker process to develop your applications.

Additional resources: 

 

Durable Functions for Java

Durable Functions, an extension to Azure Functions that lets you define stateful serverless workflows in code, now supports Java. You can use Durable Functions to implement complex function orchestration that would otherwise require writing lots of boilerplate code for state management.

In this preview, you can leverage existing Durable Functions patterns such as "function chaining", "fan out/fan in", "async http APIs", "monitor", and "human interaction". The sample below shows a simple durable function that is triggered by an http request and invokes tasks in a sequence.

EamonOReilly_1-1665416353223.jpeg

 

Read the documentation for more patterns supported by Durable Functions. To get started with Java Durable Functions, try the quickstart.

 

JavaScript and Python support in Azure SQL bindings

Azure SQL bindings for Azure Functions is now expanded to include support for JavaScript and Python functions. 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 in C#, JavaScript, and Python, visit the documentation. The library is open source and is available on GitHub.

 

Java 17 Support in Azure Functions

Azure Functions now supports Java 17 in preview on dedicated, consumption, and premium plans for Windows and Linux.

Learn more about Java 17
More information about Support Languages

 

Node.js 18 in Azure Functions

Azure Functions support for Node.js 18 is now in public preview. This version of Node.js is supported by Functions runtime v4.x

Node.js 18 is currently in the initial release stage. You can download it or find more information on the Node.js releases page.

Learn how to use Azure Functions in Visual Studio Code.

 

KEDA add-on for AKS

KEDA is a Kubernetes-based Event Driven Autoscaler. With KEDA, you can drive the scaling of any container in Kubernetes based on the number of events needing to be processed. This scaler can be used with Azure Functions open source runtime to scale functions.

KEDA can be added to your Azure Kubernetes Service (AKS) cluster by enabling the KEDA add-on using the Azure CLI. The add-on provides a fully supported installation of KEDA that is integrated with AKS. 

Learn more. 

 

App Configuration references for App Service and Azure Functions

App Service and Azure Functions now support referencing configuration key-values from the Azure App Configuration service. App Configuration provides central management of configuration key-values that can span resources and deployment environments. When defining an application setting or connection string within App Service and Azure Functions, instead of providing a direct value, you can now specify a key-value in an external Azure App Configuration store. The app uses its managed identity to resolve the value from the store and expose it as an environment variable to your application.

This initial preview does not yet include support for network-restricted configuration stores or for resolution of configuration store references to Key Vault. Referenced key-values are not yet refreshed automatically, and new values will only be pulled in when the app restarts as the result of another config change such as modifying an app setting.

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. Also you can learn more about cloud-native at Ignite at the following blog.

 

EamonOReilly_2-1665416353232.png

 

Thanks for all your feedback from the Azure Functions Team.

 

1 Comment
Co-Authors
Version history
Last update:
‎Oct 11 2022 12:07 PM
Updated by: