|
1 | 1 | ---
|
2 |
| -title: Azure Functions extension bundles |
| 2 | +title: Azure Functions Extension Bundles |
3 | 3 | description: Learn how to use extension bundles to make the correct set of Azure Functions trigger and binding extensions available in your non-.NET function code.
|
4 | 4 | ms.topic: concept-article
|
5 | 5 | ms.date: 05/30/2025
|
6 | 6 |
|
7 |
| -#Customer intent: I want to understand how to correctly install extension bundles so that the functionality implemented in the extensions are available to my functions in my preferred development language. |
| 7 | +#Customer intent: I want to understand how to correctly install extension bundles so that the functionality implemented in the extensions is available to my functions in my preferred development language. |
8 | 8 | ---
|
9 | 9 |
|
10 | 10 | # Azure Functions extension bundles
|
11 | 11 |
|
12 |
| -This article explains how extension bundles enable your function code use all of the [triggers and bindings supported by Azure Functions](./functions-triggers-bindings.md). You also learn about the various support levels and policies for your apps when using extension bundles. |
| 12 | +This article explains how extension bundles enable your function code to use all of the [triggers and bindings that Azure Functions supports](./functions-triggers-bindings.md). You also learn about the support levels and policies for your apps when you use extension bundles. |
13 | 13 |
|
14 |
| -This article applies only to Azure Functions developers using non-.NET languages. To learn how to add binding extensions directly to your C# function apps, see [Register Azure Functions binding extensions](functions-bindings-register.md). |
| 14 | +This article applies only to Azure Functions developers who use non-.NET languages. To learn how to add binding extensions directly to your C# function apps, see [Register Azure Functions binding extensions](functions-bindings-register.md). |
15 | 15 |
|
16 | 16 | ## Overview
|
17 | 17 |
|
18 |
| -Extension bundles adds 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 versions of the extensions that you need in your app. |
| 18 | +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 versions of the extensions that you need in your app. |
19 | 19 |
|
20 |
| -When you create an Azure Functions project from a non-.NET template, extension bundles are already enabled in the app's *host.json* file. |
| 20 | +When you create an Azure Functions project from a non-.NET template, extension bundles are already enabled in the app's `host.json` file. |
21 | 21 |
|
22 |
| -## Define an extension bundle reference |
| 22 | +## Defining an extension bundle reference |
23 | 23 |
|
24 |
| -You define an extension bundle reference in the *host.json* project file by adding an `extensionBundle` section, as in this example: |
| 24 | +You define an extension bundle reference in the `host.json` project file by adding an `extensionBundle` section, as in this example: |
25 | 25 |
|
26 | 26 | [!INCLUDE [functions-extension-bundles-json](../../includes/functions-extension-bundles-json.md)]
|
27 | 27 |
|
28 | 28 | ## Supported extension bundles
|
29 | 29 |
|
30 |
| -This table lists all `Microsoft.Azure.Functions.ExtensionBundle` bundle versions and the current [support state](#support-policy). |
| 30 | +This table lists all `Microsoft.Azure.Functions.ExtensionBundle` bundle versions and the current [support state](#support-policy): |
31 | 31 |
|
32 | 32 | | Bundle version | Version in host.json | Support state | End-of-support date |
|
33 | 33 | | --- | --- | --- | --- |
|
34 | 34 | | [4.x](https://github.com/Azure/azure-functions-extension-bundles/blob/main/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) | `[4.0.0, 5.0.0)` | Active | Not yet determined |
|
35 |
| -| [3.x](https://github.com/Azure/azure-functions-extension-bundles/blob/main-v3/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) | `[3.3.0, 4.0.0)` | Deprecated | 05/30/2026 | |
36 |
| -| [2.x](https://github.com/Azure/azure-functions-extension-bundles/blob/main-v2/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) | `[2.*, 3.0.0)` | Deprecated | 05/30/2026 | |
37 |
| -| [1.x](https://github.com/Azure/azure-functions-extension-bundles/blob/v1.x/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) | `[1.*, 2.0.0)` | Deprecated | 05/30/2026 | |
| 35 | +| [3.x](https://github.com/Azure/azure-functions-extension-bundles/blob/main-v3/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) | `[3.3.0, 4.0.0)` | Deprecated | May 30, 2026 | |
| 36 | +| [2.x](https://github.com/Azure/azure-functions-extension-bundles/blob/main-v2/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) | `[2.*, 3.0.0)` | Deprecated | May 30, 2026 | |
| 37 | +| [1.x](https://github.com/Azure/azure-functions-extension-bundles/blob/v1.x/src/Microsoft.Azure.Functions.ExtensionBundle/extensions.json) | `[1.*, 2.0.0)` | Deprecated | May 30, 2026 | |
38 | 38 |
|
39 |
| -The default extension bundles are defined using version ranges. Select the **Bundle version** to see the _extensions.json_ definition file used to generate the current major extension bundle version. |
| 39 | +The default extension bundles are defined via version ranges. To see the `extensions.json` definition file that generates the current bundle version for a major extension, select the link in the table. |
40 | 40 |
|
41 |
| -For more information, see [Support policy](#support-policy). |
| 41 | +## Considerations for extension bundles |
42 | 42 |
|
43 |
| -## Extension bundles considerations |
| 43 | +Keep these considerations in mind when you work with extension bundles: |
44 | 44 |
|
45 |
| -Keep these considerations in mind when working with extension bundles: |
| 45 | +- When possible, you should set a `version` range value in `host.json` from the preceding table, such as `[4.0.0, 5.0.0)`, instead of defining a custom range. |
| 46 | +- Use the latest version range to obtain optimal app performance and access to the latest features. |
| 47 | +- In the unlikely event that you can't use an extension bundle, you must instead [explicitly install extensions](./functions-bindings-register.md#explicitly-install-extensions). |
46 | 48 |
|
47 |
| -+ 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. |
48 |
| -+ Use the latest version range to obtain optimal app performance and access to the latest features. |
49 |
| -+ In the unlikely event you can't use an extension bundle, you must instead [explicitly install extensions](./functions-bindings-register.md#explicitly-install-extensions). |
| 49 | +## Previewing extension bundles |
50 | 50 |
|
51 |
| -## Preview extension bundles |
| 51 | +Prerelease versions of specific binding extensions are maintained in a preview extension bundle: `Microsoft.Azure.Functions.ExtensionBundle.Preview`. You can use this preview extension bundle to take advantage of preview extensions and new behaviors in existing extensions before they reach general availability (GA). |
52 | 52 |
|
53 |
| -Prerelease versions of specific binding extensions are made maintained in a preview extension bundle. The preview extension bundle (`Microsoft.Azure.Functions.ExtensionBundle.Preview`) allows you to take advantage of preview extensions and new behaviors in existing extensions before they're declared as GA. |
| 53 | +Keep these considerations in mind when you choose to use a non-GA extension bundle: |
54 | 54 |
|
55 |
| -Keep these considerations in mind when choosing to use a non-GA extension bundle: |
| 55 | +- Preview bundles can include features that are still under development and not yet ready for production use. They're intended for evaluation and testing in nonproduction environments. |
| 56 | +- Breaking changes occur between preview versions without prior notice. They can include changes to: |
| 57 | + - Trigger and binding definitions. |
| 58 | + - Extensions included in the preview. |
| 59 | + - Performance characteristics and stability. |
| 60 | +- Security updates might require you to upgrade versions. |
| 61 | +- You must completely test preview bundles in nonproduction environments and avoid using preview bundles in production. When you must use a preview bundle in production, take these extra precautions: |
| 62 | + - Pin your bundle to a specific, well-tested bundle version instead of to a range. Pinning prevents automatic upgrading of your bundle version before you have a chance to verify the update in a nonproduction environment. |
| 63 | + - Move your app to using a GA bundle version as soon as the functionality becomes available in a fully supported bundle release. |
| 64 | +- To stay informed about bundle updates, including moving from preview to GA, you should: |
| 65 | + - Monitor releases of preview bundle versions on the [release page for extension bundles](https://github.com/Azure/azure-functions-extension-bundles/releases). |
| 66 | + - Monitor [extension-specific reference documentation](./functions-triggers-bindings.md). |
| 67 | + - Review the NuGet package versions of specific preview extensions that you're using. |
| 68 | + - Track significant updates or changes in the change logs published on NuGet.org for each preview extension. |
56 | 69 |
|
57 |
| -+ Preview bundles can include features that are still under development and not yet ready for production use. They're intended for evaluation and testing in nonproduction environments. |
58 |
| -+ Breaking changes occur between preview versions without prior notice, which can include changes to: |
59 |
| - + Trigger and binding definitions |
60 |
| - + Extensions included in the preview |
61 |
| - + Performance characteristics and stability |
62 |
| -+ Security updates might require you to upgrade versions. |
63 |
| -+ You must completely test preview bundles in nonproduction environments and avoid using preview bundles in production. When you must use a preview bundle in production, take these extra precautions: |
64 |
| - + Pin your bundle to a specific well-tested bundle version instead of to a range. Pinning prevents automatic upgrading of your bundle version before you have a chance to verify the update in a nonproduction environment. |
65 |
| - + Move your app to using a GA bundle version as soon as the functionality becomes available in a fully supported bundle release. |
66 |
| -+ To stay informed about bundle updates, including moving from preview to GA, you should: |
67 |
| - + Monitor preview bundle version releases on the [extension bundles release page](https://github.com/Azure/azure-functions-extension-bundles/releases). - Releases · Azure/azure-functions-extension-bundles |
68 |
| - + Monitor [extension specific reference documentation](./functions-triggers-bindings.md). |
69 |
| - + Review the NuGet package versions of specific preview extensions you're using. |
70 |
| - + Track significant updates or changes on the change logs published on NuGet.org for each preview extension. |
| 70 | +## Support policy |
71 | 71 |
|
72 |
| -## Support policy |
73 |
| - |
74 |
| -Major version releases of extension bundles can occur when there are breaking changes or updates in the dependencies of the underlying binding extensions. These breaking changes, often introduced in Azure SDKs, require updates to the bundle to remain compatible. |
| 72 | +Major version releases of extension bundles can occur when there are breaking changes or updates in the dependencies of the underlying binding extensions. These breaking changes, often introduced in Azure SDKs, require updates to the bundle to remain compatible. |
75 | 73 |
|
76 | 74 | The support cycle of a GA extension bundle follows these distinct phases:
|
77 | 75 |
|
78 | 76 | | Phase | Description |
|
79 | 77 | | ----- | ----- |
|
80 |
| -| Active | The most recent major version of extension bundles is considered the active version and is recommended for your function apps. | |
81 |
| -| Notification| Microsoft provides advanced notice before retiring an extension bundle or binding extension version. When you receive such a notification, you should begin planning to upgrade your function apps to a latest supported extension bundle version. This upgrade ensures that your apps continue to access new features, performance improvements, and support. | |
82 |
| -| Deprecation | When a new major extension bundle version becomes generally available, the previous version enters a 12-month deprecation phase. This overlap period gives you time to plan, test, and upgrade your apps before the previous version is retired. | |
83 |
| -| Retirement | After the retirement of an extension bundle, function apps that reference that specific version aren’t eligible for new features, security patches, and performance optimizations. Function apps that use retired versions can still be created and deployed and are permitted to run on the platform. However, you must upgrade your functions app to a supported bundle version before you can receive support.| |
| 78 | +| Active | The most recent major version of extension bundles is considered the active version. We recommend this version for your function apps. | |
| 79 | +| Notification| Microsoft provides advanced notice before retiring an extension bundle or a binding extension version. When you receive such a notification, you should begin planning to upgrade your function apps to the latest version of a supported extension bundle. This upgrade helps ensure that your apps continue to access new features, performance improvements, and support. | |
| 80 | +| Deprecation | When a new bundle version for a major extension becomes generally available, the previous version enters a 12-month deprecation phase. This overlap period gives you time to plan, test, and upgrade your apps before the previous version is retired. | |
| 81 | +| Retirement | After the retirement of an extension bundle, function apps that reference that specific version aren't eligible for new features, security patches, and performance optimizations. Function apps that use retired versions can still be created and deployed and are permitted to run on the platform. However, you must upgrade your function app to a supported bundle version before you can receive support.| |
84 | 82 |
|
85 |
| -You can view the extension bundle versions and their included extensions in the [Azure Functions Extension Bundles GitHub repo](https://github.com/Azure/azure-functions-extension-bundles/releases). Individual .NET packages are found on [https://nuget.org](https://nuget.org). |
| 83 | +You can view the extension bundle versions and their included extensions in the [GitHub repo for Azure Functions extension bundles](https://github.com/Azure/azure-functions-extension-bundles/releases). You can find individual .NET packages on [NuGet.org](https://nuget.org). |
86 | 84 |
|
87 |
| -## Related articles |
| 85 | +## Related content |
88 | 86 |
|
89 |
| -To learn more about binding extensions, see [Register Azure Functions binding extensions](functions-bindings-register.md). |
| 87 | +- To learn more about binding extensions, see [Register Azure Functions binding extensions](functions-bindings-register.md). |
0 commit comments