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.
The following capabilities are now generally available for all Functions customers.
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.
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 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.
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.
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
Canada Central, Jio India West, South Africa North, Sweden Central, West Central US
Maximum scale-out limits for Azure Functions on Linux Elastic Premium plans have been increased in the following regions:
You can learn more about these region expansions in the documentation.
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 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:
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.
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.
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.
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.
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.
Azure Functions now supports developing and editing applications, running on Linux, to be created and edited within the Azure portal.
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.
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.
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.
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.
Azure Functions now supports Java 17 in preview on dedicated, consumption, and premium plans for Windows and Linux.
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 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.
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.
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.
Thanks for all your feedback from the Azure Functions Team.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.