你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍了扩展捆绑如何使函数代码能够使用 Azure Functions 支持的所有触发器和绑定。 此外,还可以了解使用扩展捆绑包时应用的支持级别和策略。
本文仅适用于使用 non-.NET 语言的 Azure Functions 开发人员。 若要了解如何将绑定扩展直接添加到 C# 函数应用,请参阅 注册 Azure Functions 绑定扩展。
Overview
使用扩展捆绑包可将一组预定义的兼容绑定扩展添加到函数应用。 捆绑包包含 Functions 当前支持的所有绑定扩展。 扩展捆绑已进行版本控制。 每个版本都包含一组特定的绑定扩展版本,这些扩展版本经过验证可以协同工作。
应尽可能在应用中使用最新的捆绑包版本。
从 non-.NET 模板创建 Azure Functions 项目时,扩展捆绑包已在应用 host.json 文件中启用。
定义扩展包引用
在host.json项目文件中通过添加extensionBundle节来定义扩展包引用,如以下示例所示:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
在此示例中,version 值 [4.0.0, 5.0.0) 指示 Functions 主机使用不低于 4.0.0 但低于 5.0.0 的捆绑包版本,其中包括所有可能的 4.x 版本。 此表示法可有效地将应用维护在 v4.x 扩展捆绑包的最新可用次要版本上。
extensionBundle 中提供了以下属性:
| Property | Description |
|---|---|
id |
Azure Functions 扩展捆绑的命名空间。 |
version |
要安装的捆绑包的版本范围。 Azure Functions 运行时始终选择版本范围或间隔定义的允许的最大版本。 例如, version 值范围 [4.0.0, 5.0.0) 允许所有捆绑版本从 4.0.0 到(但不包括)5.0.0。 有关详细信息,请参阅用于指定版本范围的间隔表示法。 |
小窍门
你可能还会看到 host.json 中定义的版本范围为 [4.*, 5.0.0),其解释与 [4.0.0, 5.0.0) 相同。
捆绑包版本
下表列出了所有 Microsoft.Azure.Functions.ExtensionBundle 版本和当前支持状态:
| 捆绑版本 | host.json 中的版本 | 支持状态* |
|---|---|---|
| 4.x | [4.0.0, 5.0.0)[4.*, 5.0.0) |
Active |
| 3.x | [3.3.0, 4.0.0) |
已弃用 |
| 2.x | [2.*, 3.0.0) |
已弃用 |
| 1.x | [1.*, 2.0.0) |
已弃用 |
* 弃用的捆绑包版本可以包括已弃用的绑定扩展版本。 为了获得最佳可支持性和可靠性,应 升级到捆绑版本 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 的函数应用时,扩展将被更新。
- 本地项目:当 Core Tools 启动时,无论是从
扩展捆绑包支持策略
当扩展包中包含的某个绑定扩展发生重大变更更新时,可能会发布扩展包的主要版本。 这些扩展重大更改需要对捆绑包进行更新,以保持与底层 Azure SDK 的兼容。 升级捆绑包可确保应用程序继续获得新功能、性能改进和完整的产品支持。
注释
由于扩展包的更新由底层 Azure SDK 中的更新驱动,因此扩展包的支持周期通常遵循底层 Azure SDK 的支持策略。
当扩展包或绑定扩展版本被弃用时,Microsoft 会通知你。 这些通知可能会出现在 Functions 体验的不同部分,例如主机日志、Application Insights 表或 Azure 门户中。 遇到这些通知时,必须开始规划并将函数应用升级到最新支持的扩展包版本。
扩展包的支持周期遵循以下不同阶段:
| Phase | Description |
|---|---|
| 预览 | 特定绑定扩展的预发布版本在预览扩展捆绑包 (Microsoft.Azure.Functions.ExtensionBundle.Preview) 中维护。 您可以使用此预览扩展捆绑包,在现有扩展中体验预览扩展和新行为的优势,提前于它们推出正式版。 有关详细信息,请参阅“使用预览扩展捆绑包”。 |
| 积极 | 扩展包的最新主要版本被视为活动版本。 我们建议将此版本用于您的函数应用程序。 |
| 弃用 | 该捆绑包版本已被较新版本取代,并且现已弃用。 捆绑包被弃用后,只会在有限的重叠期内收到关键的错误修复和安全更新。 这种重叠期通常至少持续 12 个月,这让你有时间计划、测试和将应用升级到最新的捆绑包版本。 继续使用已弃用捆绑包的函数应用仍可在平台上运行。 但是,为了确保访问新功能、性能改进、安全修补程序和完全支持,必须将函数应用升级到受支持的捆绑包版本。 |
可以在 Azure Functions 扩展捆绑包存储库中查看扩展捆绑包版本及其包含的扩展。 还可以查看所有 Functions 扩展清单的 Azure SDK 发布页。 可以在 NuGet.org 上查找单个 .NET 包。
使用预览扩展捆绑包
选择使用非 GA 扩展捆绑包时,请记住以下注意事项:
- 预览版捆绑包可以包括仍在开发中但尚未准备好用于生产的功能。 它们用于在非生产环境中进行评估和测试。
- 预览版之间发生中断性变更,无需事先通知。 它们可以包括对以下内容的更改:
- 触发器和绑定定义。
- 预览中包含的扩展。
- 性能特性和稳定性。
- 安全更新可能需要升级版本。
- 必须在非生产环境中完全测试预览捆绑包,并避免在生产环境中使用预览捆绑包。 在生产环境中必须使用预览捆绑包时,请采取以下额外预防措施:
- 将捆绑包固定到经过良好测试的特定捆绑包版本而不是范围。 固定可防止在非生产环境中验证更新之前自动升级捆绑包版本。
- 在完全支持的捆绑包版本中提供该功能后,将应用移动到使用 GA 捆绑包版本。
- 若要随时了解捆绑更新,包括从预览版迁移到正式版,应:
相关内容
- 若要了解有关绑定扩展的详细信息,请参阅 注册 Azure Functions 绑定扩展。