(2021-Feb-22) With more applications and services being placed into a vendor cloud environment, it does require almost no effort to manage and maintain the infrastructure these applications and services are running on. Little did I know that my Azure Function App with Durable Functions required additional maintenance work, and recent interaction with the Microsoft support team showed me that maintenance or upgrade work was still required for some elements of the Azure Function App ecosystem.
- Using Azure Functions in Azure Data Factory
- Using Durable Functions in Azure Data Factory - Support for long-running processes
- Using Azure Durable Functions with Azure Data Factory - HTTP Long Polling
Recently, my function app was using extension bundles version 1.6.0, which included Durable Functions extension version 1.8.7, and this required some upgrades.
You can check the Durable Function extension version through the Azure Portal. From the overview page for my function app, I needed to navigate to the "Diagnose and Solve Problems" blade and search for the "Durable Functions" diagnostic. That diagnostic will show me information related specifically to the durable functions, including the extension version.
Similarly, the extension bundle version is recorded in the host.json of the Azure Function App solution. That change below will upgrade the extension bundles version to 2.0.0, and Durable Functions extension version 2.3.3. It isn’t the latest version of the extension, but it is the latest extension bundle (which is 2.4.0, and comes with Durable Function extension version 2.4.1).
There is a way to explicitly install the Durable Function extension version to get the latest version, but that means I can’t use extension bundles at all and need to do some additional work. Here’s the documentation on how to do that. There is a recommendation to check the release notes for the extension first, to see if version 2.4.0 or 2.4.1 of the Durable Functions extension has any additions you would like or think would be helpful for your function app.
The extension bundles contain more than the Durable Functions extension, for example, the Event Hub and Cosmos DB extension as well. Each of these extensions is developed at a different rate and occasionally new extensions are added to the bundles as well. Extension bundles were also added as a feature to Azure Functions version 2.x. These factors combined result in different version numbers for the extension bundles and the extensions they contain.
Another warning message appeared after upgrading to the higher version of the Durable Function Extension:
With Durable Functions extension v2.x, this warning can be ignored as a task hub name is generated based on the function app name. If I had multiple Durable Function apps pointing to the same storage account, that would cause conflicts and errors in execution. The v2.x of the extension creates a default task hub name based on the function app's name, so it's possible to point multiple durable function apps to the same storage account; basically, nothing to worry about.
At the end of the day, my Azure Function App extension was upgraded. All credits to guide me in this process and writing this blog post goes to the Microsoft Support team, thank you!
Helpful information links: