Compartir a través de

Azure Functions 扩展捆绑包

本文介绍了扩展捆绑如何使函数代码能够使用 Azure Functions 支持的所有触发器和绑定。 此外,还可以了解使用扩展捆绑包时应用的支持级别和策略。

本文仅适用于使用 non-.NET 语言的 Azure Functions 开发人员。 若要了解如何将绑定扩展直接添加到 C# 函数应用,请参阅 注册 Azure Functions 绑定扩展

概述

扩展捆绑包将预定义的兼容绑定扩展集添加到函数应用。 捆绑包包含 Functions 当前支持的所有绑定扩展。 扩展捆绑已进行版本控制。 每个版本都包含一组特定的绑定扩展版本,这些扩展版本经过验证可以协同工作。

应尽可能在应用中使用最新的捆绑包版本。

从 non-.NET 模板创建 Azure Functions 项目时,扩展捆绑包已在应用 host.json 文件中启用。

定义扩展包引用

你可以在host.json项目文件中通过添加extensionBundle节来定义扩展捆绑包引用,如以下示例所示:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

extensionBundle 中提供了以下属性:

资产 DESCRIPTION
id Azure Functions 扩展捆绑的命名空间。
版本 要安装的捆绑包的版本。 Functions 运行时始终选取由版本范围或间隔定义的可允许最高版本。 上述版本值允许从 3.3.0 到(但不包括)4.0.0 的所有捆绑包版本。 有关详细信息,请参阅用于指定版本范围的间隔表示法

捆绑包版本

下表列出了所有 Microsoft.Azure.Functions.ExtensionBundle 版本和当前支持状态

捆绑版本 host.json 中的版本 支持状态*
4.x [4.0.0, 5.0.0)
[4.*, 5.0.0)
活跃
3.x [3.3.0, 4.0.0) Deprecated
2.x [2.*, 3.0.0) Deprecated
1.x [1.*, 2.0.0) Deprecated

* 弃用的捆绑包版本可以包括已弃用的绑定扩展版本。 为了获得最佳可支持性和可靠性,应 升级到捆绑版本 4.x

默认情况下,扩展捆绑包是通过版本范围定义的,这可以保证使用最新的次要捆绑包版本。 选择表中的版本链接以查看定义该主版本的最新捆绑包的 extensions.json 文件。

扩展捆绑包的注意事项

使用扩展捆绑包时,请记住以下注意事项:

  • 如果可能,应在 version 上表中选择一个范围值 host.json ,例如 [4.0.0, 5.0.0),而不是定义一个自定义范围。
  • 使用最新版本范围获取最佳的应用性能和对最新功能的访问权限。
  • 在不太可能使用扩展捆绑包的情况下,需要改为 显式安装扩展
  • 更新已部署的应用使用的扩展时,Functions 会从 cdn.functions.azure.com 终结点下载新的扩展版本。 为了成功更新扩展,cdn.functions.azure.com 终结点必须对您的函数应用可访问。

升级扩展捆绑包

请务必将版本号更新至最新版本,以便应用可以继续支持新功能、安全补丁和性能优化。

若要将应用升级到最新的捆绑包,请在应用项目的根目录中编辑 host.json 文件。 将值 extensionBundle.version 设置为 [4.0.0,5.0.0),host.json 文件中应如下所示:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

升级应用使用的扩展捆绑包版本时,请记住以下注意事项:

  • 始终可以在 存储库的此发布页上找到最新的 4.x 捆绑包的内容。
  • 查看应用程序所使用扩展的参考文档,以查找版本之间的任何兼容性变更。 有关默认捆绑包中包含的扩展版本的列表,请参阅extension.json中链接的 项目文件。 可以查看捆绑软件仓库中的捆绑包版本页面,了解具体的捆绑包版本标签。
  • 请始终在升级捆绑包版本后在本地验证应用,以确保与更新的扩展兼容。 可以使用 Visual Studio 或 Visual Studio Code 中的 Azure Functions Core Tools 或 F5 中的 func start 命令在本地运行函数应用。
  • 根据对 host.json 文件中捆绑包版本的更改触发扩展更新的方式取决于应用环境:
    • 本地项目:当 Core Tools 启动时(从 func start 命令启动或在开发工具中调试时),会本地更新扩展。
    • 函数应用:将更新的 host.json 文件部署到 Azure 中的函数应用时,将更新扩展。

扩展捆绑包支持策略

当扩展包中包含的某个绑定扩展发生重大变更更新时,可能会发布扩展包的主要版本。 这些扩展重大更改需要对捆绑包进行更新,以保持与底层 Azure SDK 的兼容。 升级捆绑包可确保应用程序继续获得新功能、性能改进和完整的产品支持。

注释

由于扩展包的更新由底层 Azure SDK 中的更新驱动,因此扩展包的支持周期通常遵循底层 Azure SDK 的支持策略

当扩展包或绑定扩展版本被弃用时,Microsoft 会通知你。 这些通知可能会出现在 Functions 体验的不同部分,例如主机日志、Application Insights 表或 Azure 门户中。 遇到这些通知时,必须开始规划并将函数应用升级到最新支持的扩展包版本。

扩展包的支持周期遵循以下不同阶段:

阶段 DESCRIPTION
预览 特定绑定扩展的预发布版本在预览扩展捆绑包 (Microsoft.Azure.Functions.ExtensionBundle.Preview) 中维护。 可以使用此预览版本扩展捆绑包,在现有扩展中利用预览版的扩展和新行为,抢先于正式发布(GA)之前进行体验。 有关详细信息,请参阅“使用预览扩展捆绑包”。
积极 扩展包的最新主要版本被视为活动版本。 推荐这个版本用于您的函数应用。
弃用 该捆绑包版本已被较新版本取代,并且现已弃用。 捆绑包被弃用后,只会在有限的重叠期内收到关键的错误修复和安全更新。 这种重叠期通常至少持续 12 个月,这让你有时间计划、测试和将应用升级到最新的捆绑包版本。

继续使用已弃用捆绑包的函数应用仍可在平台上运行。 但是,为了确保访问新功能、性能改进、安全修补程序和完全支持,必须将函数应用升级到受支持的捆绑包版本。

可以在 Azure Functions 扩展捆绑包存储库中查看扩展捆绑包版本及其包含的扩展。 还可以查看所有 Functions 扩展清单的 Azure SDK 发布页。 可以在 NuGet.org 上查找单个 .NET 包。

使用预览扩展捆绑包

选择使用非 GA 扩展捆绑包时,请记住以下注意事项:

  • 预览版捆绑包可以包括仍在开发中但尚未准备好用于生产的功能。 它们用于在非生产环境中进行评估和测试。
  • 预览版之间可能发生重大更改,不会事先通知。 它们可以包括对以下内容的更改:
    • 触发器和绑定定义。
    • 预览中包含的扩展。
    • 性能特性和稳定性。
  • 安全更新可能需要升级版本。
  • 必须在非生产环境中完全测试预览捆绑包,并避免在生产环境中使用预览捆绑包。 在生产环境中必须使用预览捆绑包时,请采取以下额外预防措施:
    • 将捆绑包固定到经过良好测试的特定捆绑包版本而不是范围。 固定可防止在非生产环境中验证更新之前自动升级捆绑包版本。
    • 在完全支持的捆绑包版本中提供该功能后,将应用移动到使用 GA 捆绑包版本。
  • 若要随时了解捆绑更新,包括从预览版迁移到正式版,应:
    • 查看扩展捆绑包发布页上的预览捆绑包版本。
    • 监控扩展专用参考文档。
    • 查看正在使用的特定预览版扩展的 NuGet 包版本。
    • 跟踪每个预览扩展 NuGet.org 上发布的更改日志中的重大更新或更改。