Azure Functions Runtime 2.0 Overview

Fabio Cavalcante edited this page Jan 17, 2018 · 1 revision

The next major version of the Azure Functions runtime, Azure Functions runtime 2.0, brings a series of enhancements, changes and new features. This document outlines the most significant ones, contrasting them with 1.0 where appropriate.

Key features and changes

  • .NET Core/Cross platform support: The runtime has been ported to run on .NET Core 2.0, allowing it to run on all platforms supported by .NET Core (Windows, macOS, Linux, etc.). This enables cross platform development and hosting scenarios not previously supported.

  • Binding extensibility: Binding extensibility has been added to the WebJobs SDK and is now supported by the Azure Functions runtime, enabling:

    • Third party binding extensions support
    • A lighter runtime/execution environment, where only the bindings in use are known and loaded by the runtime.
    • Decoupling between the runtime and bindings, also reducing the number of fixed dependencies and allowing extensions to be versioned and released independently. Users can, for example, opt to upgrade to a version of an extension that relies on a newer of an underlying SDK.

All built-in Azure Functions bindings have adopted this model and (with the exception of the Timer trigger and the HTTP trigger) are no longer included by default. Those bindings will be automatically installed when creating functions through tools like Visual Studio or through the portal.

  • Language extensibility: A new language extensibility model has been introduced, bringing the following benefits/differences:
    • Facilitates language integration with Azure Functions
    • Uses an out-of-process function execution model
    • Decouples language implementations from the runtime

Initially, JavaScript and Java are taking advantage of this new model. Azure Functions 1.0 experimental languages have been removed and will also use this model when support is added (based on demand and feasibility).

Currently, the following languages are supported in version 2.0 of the runtime:

  • C# (pre-compiled and scripting)
  • F# (pre-compiled)
  • JavaScript
  • Java (preview)
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.