Function Runtime Versioning

David Ebbo edited this page Oct 28, 2016 · 7 revisions

The Functions runtime runs as a site extension to your Function App. In your app settings in the Functions portal, you'll find a version specifier for the runtime FUNCTIONS_EXTENSION_VERSION which is set to a major version specifier, e.g.:

That value ~0.4 indicates that your Function App will stay on the 0.4 major version train. It won't be moved forward to any new major versions (which likely contain breaking changes). You will however be moved forward to new minor versions containing bug fixes, new features, etc. This allows you to manage when you take breaking changes. For release notes (including breaking changes) for each release, see here.

When we deploy a new major version and make it public, the Functions Portal will give you the option to move yourself forward:

All this update button does is set the FUNCTIONS_EXTENSION_VERSION app setting to a new value (the next major version specifier). Knowing this allows you to perform upgrades yourself if you wish in advance of our public releases. Often we'll make a new version available before it becomes the new Portal default. We do this to allow us (and others) to test out the new build in production. All you have to do to move yourself forward to the new version is set FUNCTIONS_EXTENSION_VERSION to the new version. E.g. if we make it know that a new version 0.5 has been deployed you set your app setting to ~0.5. This will cause your Function App to restart and you'll then be on the new version. Note that you can roll back at any time by reverting the setting to the old value.

How to determine which exact version you are running

Right now, there is no easy way to know the exact runtime version you are using from the Portal. But there is a hard way! :)

  • Restart your Function App to make sure it binds to what matches your app settings
  • Function App Settings / Go To Kudu
  • Click the middle 'planet' icon
  • Go in the Config folder
  • Click edit to View applicationhost.config
  • In there, search for Functions. You'll see something like <virtualDirectory path="/" physicalPath="D:\Program Files (x86)\SiteExtensions\Functions\0.8.10564" />, which shows you the exact runtime version.