Azure Functions runtime versions overview

There are two major versions of the Azure Functions runtime: 1.x and 2.x. Only 1.x is approved for production use. This article explains what's new in 2.x, which is in preview.

Runtime Status
1.x Generally Available (GA)
2.x Preview*

*To receive important updates on version 2.x, including breaking changes announcements, watch the Azure App Service announcements repository.

Note

This article refers to the cloud service Azure Functions. For information about the product that lets you run Azure Functions on-premises, see the Azure Functions Runtime Overview.

Cross-platform development

Runtime 1.x supports development and hosting only in the portal or on Windows. Runtime 2.x runs on .NET Core, which means it can run on all platforms supported by .NET Core, including macOS and Linux. This enables cross-platform development and hosting scenarios that aren't possible with 1.x.

Languages

Runtime 2.x uses a new language extensibility model. Initially, JavaScript and Java are taking advantage of this new model. Azure Functions 1.x experimental languages haven't been updated to use the new model, so they are not supported in 2.x. The following table indicates which programming languages are supported in each runtime version.

Language 1.x 2.x
C# GA Preview
JavaScript GA Preview
F# GA Preview
Java N/A Preview
Python Experimental N/A
PHP Experimental N/A
TypeScript Experimental N/A
Batch (.cmd, .bat) Experimental N/A
Bash Experimental N/A
PowerShell Experimental N/A

For information about planned changes to language support, see Azure roadmap.

For more information, see Supported languages.

Bindings

Runtime 2.x uses a new binding extensibility model that offers these advantages:

  • Support for third-party binding extensions.
  • Decoupling of runtime and bindings. This allows binding extensions to be versioned and released independently. You can, for example, opt to upgrade to a version of an extension that relies on a newer version of an underlying SDK.
  • A lighter execution environment, where only the bindings in use are known and loaded by the runtime.

All built-in Azure Functions bindings have adopted this model and are no longer included by default, except for the Timer trigger and the HTTP trigger. Those extensions are automatically installed when you create functions through tools like Visual Studio or through the portal.

The following table indicates which bindings are supported in each runtime version.

The following table shows the bindings that are supported in the two major versions of the Azure Functions runtime.

Type 1.x 2.x Trigger Input Output
Blob Storage 1
Cosmos DB
Event Grid
Event Hubs
External File2
External Table2
HTTP 1
Microsoft Graph
Excel tables
Microsoft Graph
OneDrive files
Microsoft Graph
Outlook email
Microsoft Graph
Events
Microsoft Graph
Auth tokens
Mobile Apps
Notification Hubs
Queue storage 1
SendGrid
Service Bus
Table storage 1
Timer
Twilio
Webhooks

1 In 2.x, all bindings except HTTP, Timer, and Azure Storage must be registered. See Register binding extensions.

2 Experimental — not supported and might be abandoned in the future.

Known issues in 2.x

For more information about bindings support and other functional gaps in 2.x, see Runtime 2.0 known issues.

Next steps

For more information, see the following resources: