0
votes

What is the best practice for using runtime version given that the runtime introduced breaking changes, and using specific version will cause issue given that runtime will be removed regularly. https://github.com/Azure/app-service-announcements-discussions/issues/90

Please let me explain below:

Scenario 1:

When below is used,

FUNCTIONS_EXTENSION_VERSION =~2

Our code broke with the latest runtime. Because ~2 means it uses the latest version. https://github.com/Azure/azure-functions-host/issues/4203

Scenario 2:

However, when below is used,

FUNCTIONS_EXTENSION_VERSION = specific version

Our code brok again with the latest runtime. Because the specified runtime is removed by Azure Functions, and the latest runtime with breaking changes is used instead, https://github.com/Azure/app-service-announcements-discussions/issues/90

Again, what is the better way to reduce the error?

Updates

In terms of time frame, how a latest runtime works when it is publicly downloadable and it is rolled out on Azure Functions? For example, how advance is the runtime available before it is rolled out to Azure fucntions?

How long will an old runtime be kept for on Azure Functions after latest runtime rollout? Based on what factors are an old runtime decided to be deteled?

1

1 Answers

0
votes

The best and recommended practice is to use the latest. It is a rare occurrence, but unfortunately, a regression was introduced with a new release impacting your app.

If you want to perform validation on new versions, the recommendation is to:

  • Subscribe to new release notifications at https://github.com/Azure/app-service-announcements/issues

  • Pin yourself to the current release you've validated against

  • As a new version is introduced, update a test environment to adopt that new version (or have a test environment that auto updates, using ~2). If you have a test environment set with auto-updates and automated tests, this makes the process significantly simpler.

  • Once validated, update the production environment to that new version

  • If you find an issue, reporting allows us to ensure we don't remove
    the version that works.

We always maintain the newly deployed version and the previous release, and, aside from hotfixes and small ad-hoc deployments, the release cadence is ~2 weeks. Anything that has been flagged as a version that needs to be kept due to issues intruduced by a release (forcing customers to pin) is also kept.