If you are using Azure Functions, take note of these points to update. 🔍🧐

Si estás utilizando Azure Functions, tome nota de estos puntos para actualizar. 🔍🧐

Durante mi exploración, descubriendo las facilidades y posibilidades de las funciones de azure (Azure Function), por sobre todo, facilitando la integración a sistemas externos desde código AL, encontré algunos puntos a considerar que merecen nuestra atención y posterior actualización.

Runtime

El 14 de septiembre de 2026, finalizará la compatibilidad con la versión runtime 1.x de Azure Functions. Aún podrás usar esta versión después de esa fecha, pero ya no será compatible ni recibirá actualizaciones de software o seguridad.

Además, recuerda que a partir del 13 de diciembre de 2022, las aplicaciones que se ejecutan en las versiones runtime 2.x y 3.x de Azure Functions han llegado al final del soporte extendido.

Entre los principales beneficios de migrar a la versión runtime 4.x se encuentran la compatibilidad con versiones de .NET Framework 4.8, .NET 6 y .NET 7., la capacidad para trabajar con los SDK de Azure más recientes y opciones de monitoreo mejoradas, entre otras.

Execution model

A partir del 10 de noviembre de 2026, el modelo en proceso (in-process) para aplicaciones .NET en Azure Functions ya no será compatible. Puedes seguir usando tus aplicaciones .NET con el modelo en proceso (in-process) después del 10 de noviembre de 2026, pero ya no recibirás actualizaciones de seguridad y funciones de Microsoft.

Para garantizar que las aplicaciones que usan este modelo sigan siendo compatibles, deberás realizar la transición al modelo de trabajador aislado (isolate worker) antes de esa fecha.

Entre las principales diferencias tenemos que su código de función se ejecuta en un proceso de trabajo .NET independiente. Su aislamiento de las actividades del ciclo de vida de la plataforma, entre otros.

Script de Powershell para identificar las funciones de Azure a actualizar

Y luego vamos a recorrer todas las funciones de Azure e identificamos a través de sus propiedades:

  • FUNCTIONS_EXTENSION_VERSION: Las que sean diferentes a » ~4″
  • FUNCTIONS_WORKER_RUNTIME: Las que sean diferentes a «dotnet-isolated»
#Working with Az.Functions
Find-Module -Name Az.Functions  | Install-Module
Import-Module -Name Az.Functions 

#Connect to Azure Account
Connect-AzAccount

#Get subscriptions
Get-AzSubscription

#Set subscription to analyze
Set-AzContext -Subscription "93b362a9-d2c4-451f-a722-157683c6eb34" 

#Identify function apps to migrate (Runtime Version)
$functionRuntime=@{l="FunctionRuntimeVersion";e={(Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName)["FUNCTIONS_EXTENSION_VERSION"]}}
(Get-AzFunctionApp | Where-Object { $(if ((Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName) -eq $null) {""} else {(Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName)["FUNCTIONS_EXTENSION_VERSION"]}) -ne "~4" } ) | Select-Object Name,ResourceGroupname,$functionRuntime |Format-Table -AutoSize

#Identify function apps to migrate (Execution Model)
$functionRuntime=@{l="FunctionWorkerRuntime";e={(Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName)["FUNCTIONS_WORKER_RUNTIME"]}}
(Get-AzFunctionApp | Where-Object { $(if ((Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName) -eq $null) {""} else {(Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName)["FUNCTIONS_WORKER_RUNTIME"]}) -ne "dotnet-isolated" } ) | Select-Object Name,ResourceGroupname,$functionRuntime |Format-Table -AutoSize

Y planifiques estas actualizaciones para evitar en el futuro problemas con el correcto funcionamiento de las mismas. La recomendación es la de actualizar a .NET 8 en el modelo de isolated worker.

Espero que esta información te ayude.


If you are using Azure Functions, take note of these points to update. 🔍🧐

During my exploration, discovering the facilities and possibilities of Azure Functions, above all, facilitating integration to external systems from AL code, I found some points to consider that deserve our attention and subsequent update.

Runtime

On September 14, 2026, support for Azure Functions runtime version 1.x will end. You will still be able to use this version after that date, but it will no longer be supported or receive software or security updates.

Also, remember that as of December 13, 2022, applications running on Azure Functions runtime versions 2.x and 3.x have reached the end of extended support.

Key benefits of migrating to the 4.x runtime include support for .NET Framework 4.8, .NET 6, and .NET 7 versions, the ability to work with the latest Azure SDKs, and improved monitoring options , among other.

Execution model

Starting November 10, 2026, the in-process model for .NET apps in Azure Functions will no longer be supported. You can continue using your .NET applications with the in-process model after November 10, 2026, but you will no longer receive security and feature updates from Microsoft.

To ensure that applications that use this model remain supported, you will need to transition to the isolated worker model before then.

Among the main differences we have that its function code runs in a separate .NET worker process. Its isolation from platform lifecycle activities, among others.

Powershell script to identify Azure functions to update

And then we are going to loop through all the Azure functions and identify them through their properties:

  • FUNCTIONS_EXTENSION_VERSION: Those that have a different value than » ~4″
  • FUNCTIONS_WORKER_RUNTIME: Those that have a different value than «dotnet-isolated»
#Working with Az.Functions
Find-Module -Name Az.Functions  | Install-Module
Import-Module -Name Az.Functions 

#Connect to Azure Account
Connect-AzAccount

#Get subscriptions
Get-AzSubscription

#Set subscription to analyze
Set-AzContext -Subscription "93b362a9-d2c4-451f-a722-157683c6eb34" 

#Identify function apps to migrate (Runtime Version)
$functionRuntime=@{l="FunctionRuntimeVersion";e={(Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName)["FUNCTIONS_EXTENSION_VERSION"]}}
(Get-AzFunctionApp | Where-Object { $(if ((Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName) -eq $null) {""} else {(Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName)["FUNCTIONS_EXTENSION_VERSION"]}) -ne "~4" } ) | Select-Object Name,ResourceGroupname,$functionRuntime |Format-Table -AutoSize

#Identify function apps to migrate (Execution Model)
$functionRuntime=@{l="FunctionWorkerRuntime";e={(Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName)["FUNCTIONS_WORKER_RUNTIME"]}}
(Get-AzFunctionApp | Where-Object { $(if ((Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName) -eq $null) {""} else {(Get-AzFunctionAppSetting -Name $_.Name -ResourceGroupName $_.ResourceGroupName)["FUNCTIONS_WORKER_RUNTIME"]}) -ne "dotnet-isolated" } ) | Select-Object Name,ResourceGroupname,$functionRuntime |Format-Table -AutoSize

And plan these updates to avoid problems with their correct functioning in the future. The recommendation is to update to .NET 8 in the isolated worker model.

I hope this information helps you.


Más información / More information:

Deja un comentario