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.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Starting with Azure Functions version 2.x, the functions runtime only includes HTTP and timer triggers by default. Other [triggers and bindings](./functions-triggers-bindings.md) are available as separate packages.
11
+
The Azure Functions runtime natively runs HTTP and timer triggers. Other supported [triggers and bindings](./functions-triggers-bindings.md) are available as separate NuGet extension packages.
11
12
12
-
.NET class library functions apps use bindings that are installed in the project as NuGet packages. Extension bundles allow non-.NET functions apps to use the same bindings without having to deal with the .NET infrastructure.
13
-
14
-
The following table indicates when and how you register bindings.
15
-
16
-
| Development environment |Registration<br/> in Functions 1.x |Registration<br/> in Functions 2.x or later |
|Non-.NET languages|Automatic|Use [extension bundles](#extension-bundles) (recommended) or [explicitly install extensions](#explicitly-install-extensions)|
20
-
|C# class library using Visual Studio|[Use NuGet tools](functions-develop-vs.md#add-bindings)|[Use NuGet tools](functions-develop-vs.md#add-bindings)|
21
-
|C# class library using Visual Studio Code|N/A|[Use .NET Core CLI](functions-develop-vs-code.md?tabs=csharp#install-binding-extensions)<br/>[Use the C# Dev Kit](https://code.visualstudio.com/docs/csharp/package-management#_add-a-package)|
22
-
23
-
<sup>*</sup> Portal uses extension bundles, including C# script.
13
+
::: zone pivot="programming-language-csharp"
14
+
.NET class library projects use binding extensions that are installed in the project as NuGet packages.
15
+
::: zone-end
16
+
::: zone pivot="programming-language-python,programming-language-java,programming-language-javascript,programming-language-typescript,programming-language-powershell,programming-language-other"
17
+
Extension bundles allow non-.NET apps to use binding extensions without having to interact with .NET infrastructure.
By default, extension bundles provide binding support for functions in these languages:
28
-
29
-
+ Java
30
-
+ JavaScript
31
-
+ PowerShell
32
-
+ Python
33
-
+ C# script
34
-
+ Other (custom handlers)
35
-
36
-
In rare cases where extension bundles can't be used, you can explicitly install binding extensions with your function app project. Extension bundles are supported for version 2.x and later version of the Functions runtime.
37
-
38
-
Extension bundles are a way to add a pre-defined set of compatible binding extensions to your function app. Extension bundles are versioned. Each version contains a specific set of binding extensions that are verified to work together. Select a bundle version based on the extensions that you need in your app.
21
+
Extension bundles add a predefined set of compatible binding extensions to your function app. Extension bundles are versioned. Each version contains a specific set of binding extensions that are verified to work together. Select a bundle version based on the extensions that you need in your app.
39
22
40
23
When you create a non-.NET Functions project from tooling or in the portal, extension bundles are already enabled in the app's *host.json* file.
41
24
42
-
An extension bundle reference is defined by the `extensionBundle` sectionin a *host.json* as follows:
25
+
You define an extension bundle reference in the *host.json* project file by adding an `extensionBundle` section, as in this example:
@@ -52,18 +35,23 @@ The following table lists the currently available version ranges of the default
52
35
| 2.x |`[2.*, 3.0.0)`| See [extensions.json](https://github.com/Azure/azure-functions-extension-bundles/blob/main-v2/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) used to generate the bundle. |
53
36
| 1.x |`[1.*, 2.0.0)`| See [extensions.json](https://github.com/Azure/azure-functions-extension-bundles/blob/v1.x/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) used to generate the bundle. |
54
37
38
+
Keep these considerations in mind when working with extension bundles:
55
39
56
-
> [!NOTE]
57
-
> Even though host.json supports custom ranges for `version`, you should use a version range value from this table, such as `[4.0.0, 5.0.0)`. To ensure optimal performance and access to the latest features, it is <b>recommended to use the latest version range</b>. For a complete list of extension bundle releases and extension versions in each release, see the [extension bundles release page](https://github.com/Azure/azure-functions-extension-bundles/releases).
58
-
59
-
## Explicitly install extensions
40
+
+ When possible, you should set a `version` range value in *host.json* from this table, such as `[4.0.0, 5.0.0)`, instead of defining a custom range.
41
+
+ Use the latest version range to obtain optimal app performance and access to the latest features.
60
42
61
-
For compiled C# class library projects ([in-process](functions-dotnet-class-library.md) and [isolated worker process](dotnet-isolated-process-guide.md)), you install the NuGet packages for the extensions that you need as you normally would. For examples see either the [Visual Studio Code developer guide](functions-develop-vs-code.md?tabs=csharp#install-binding-extensions) or the [Visual Studio developer guide](functions-develop-vs.md#add-bindings). See the [extension bundles release page](https://github.com/Azure/azure-functions-extension-bundles/releases) to review combinations of extension versions that are verified compatible.
43
+
For a complete list of extension bundle releases and extension versions in each release, see the [extension bundles release page](https://github.com/Azure/azure-functions-extension-bundles/releases).
44
+
::: zone-end
62
45
63
-
For non-.NET languages and C# script, when you can't use extension bundles you need to manually install required binding extensions in your local project. The easiest way is to use Azure Functions Core Tools. For more information, see [func extensions install](functions-core-tools-reference.md#func-extensions-install).
46
+
## Explicitly install extensions
47
+
::: zone pivot="programming-language-csharp"
48
+
For compiled C# class library projects ([in-process](functions-dotnet-class-library.md) and [isolated worker process](dotnet-isolated-process-guide.md)), you install the NuGet packages for the extensions that you need as you normally would. For examples, see either the [Visual Studio Code developer guide](functions-develop-vs-code.md?tabs=csharp#install-binding-extensions) or the [Visual Studio developer guide](functions-develop-vs.md#add-bindings). See the [extension bundles release page](https://github.com/Azure/azure-functions-extension-bundles/releases) to review combinations of extension versions that are verified compatible.
49
+
::: zone-end
50
+
::: zone pivot="programming-language-python,programming-language-java,programming-language-javascript,programming-language-typescript,programming-language-powershell,programming-language-other"
51
+
When you can't use extension bundles you instead must manually install any required binding extensions in your local project. The easiest way to generate the correct C# project is to use Azure Functions Core Tools. For more information, see [func extensions install](functions-core-tools-reference.md#func-extensions-install).
64
52
65
53
For portal-only development, you need to manually create an extensions.csproj file in the root of your function app. To learn more, see [Manually install extensions](functions-how-to-use-azure-function-app-settings.md#manually-install-extensions).
66
-
54
+
::: zone-end
67
55
## Next steps
68
56
> [!div class="nextstepaction"]
69
57
> [Azure Function trigger and binding example](./functions-bindings-example.md)
0 commit comments