Azure Functions 运行时本机运行 HTTP 和计时器触发器。 其他受支持的 触发器和绑定 可用作单独的 NuGet 扩展包。
.NET 类库项目使用作为 NuGet 包安装在项目中的绑定扩展。
扩展捆绑包允许 non-.NET 应用使用绑定扩展,而无需与 .NET 基础结构交互。
扩展捆绑包将预定义的兼容绑定扩展集添加到函数应用。 扩展捆绑已进行版本控制。 每个版本都包含一组特定的绑定扩展,这些扩展经过验证,可协同工作。 根据应用中所需的扩展,选择捆绑版本。
从 non-.NET 模板创建 Azure Functions 项目时,扩展捆绑包已在应用的 host.json 文件中启用。
通过添加节在 extensionBundle
项目文件中定义扩展捆绑包引用,如以下示例所示:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
extensionBundle
中提供了以下属性:
properties | 说明 |
---|---|
id | Azure Functions 扩展捆绑的命名空间。 |
版本 | 要安装的捆绑包的版本。 Functions 运行时始终选取由版本范围或间隔定义的可允许最高版本。 上述版本值允许从 3.3.0 到(但不包括)4.0.0 的所有捆绑包版本。 有关详细信息,请参阅用于指定版本范围的间隔表示法。 |
下表列出了当前已正式发布的默认 Microsoft.Azure.Functions.ExtensionBundle
捆绑包(正式版)。
捆绑版本 | host.json 中的版本 | 已包含的扩展 |
---|---|---|
4.x | [4.0.0, 5.0.0) |
请参阅用于生成捆绑的 extensions.json。 |
3.x | [3.3.0, 4.0.0) |
请参阅用于生成捆绑的 extensions.json。 |
2.x | [2.*, 3.0.0) |
请参阅用于生成捆绑的 extensions.json。 |
1.x | [1.*, 2.0.0) |
请参阅用于生成捆绑的 extensions.json。 |
默认扩展捆绑包是使用版本范围定义的,此表链接到捆绑包的扩展定义。 有关扩展捆绑包发行版以及每个发行版中的扩展版本的完整列表,请参阅扩展捆绑包发行版页面。
使用扩展捆绑包时,请记住以下注意事项:
- 如果可能,应在此表中host.json设置
version
范围值,例如[4.0.0, 5.0.0)
,而不是定义自定义范围。 - 使用最新版本范围获取最佳的应用性能和对最新功能的访问权限。
特定绑定扩展的预发行版经常在预览扩展捆绑包中提供。 这些具有 ID 的 Microsoft.Azure.Functions.ExtensionBundle.Preview
预览扩展捆绑包允许你在将其声明为 GA 之前利用新的扩展行为。 选择使用非 GA 扩展捆绑包时,请记住以下注意事项:
- 预览版捆绑包可以包括仍在开发中但尚未准备好用于生产的功能。
- 预览版之间发生中断性变更,但未事先通知,这可能包括对以下内容的更改:
- 触发器和绑定的定义
- 预览版中包含的扩展
- 性能特征和稳定性
- 安全更新可能需要升级版本。
- 必须在非生产环境中完全测试预览捆绑包,并避免在生产环境中使用预览捆绑包。 在生产环境中必须使用预览捆绑包时,请采取以下额外预防措施:
- 将捆绑包固定到经过测试的特定捆绑包版本,而不是固定到某个范围。 固定可防止在非生产环境中验证更新之前自动升级捆绑包版本。
- 在完全支持的捆绑包版本中提供该功能后,将应用移动到使用 GA 捆绑包版本。
- 若要随时了解捆绑更新,包括从预览版迁移到正式版,应:
- 在 扩展捆绑包发布页上监视预览捆绑包版本版本。 - Releases ·Azure/azure-functions-extension-bundles
- 监视 特定于扩展的参考文档。
- 查看正在使用的特定预览版扩展的 NuGet 包版本。
- 跟踪针对每个预览扩展 NuGet.org 发布的更改日志的重大更新或更改。
对于已编译的 C# 类库项目,可以像在应用中一样为所需的扩展安装 NuGet 包。 有关详细信息,请参阅 Visual Studio Code 开发人员指南 或 Visual Studio 开发人员指南。
请确保获取正确的包,因为命名空间因执行模型而异:
执行模型 | Namespace |
---|---|
独立工作进程 | Microsoft.Azure.Functions.Worker.Extensions.* |
进行中 | Microsoft.Azure.WebJobs.Extensions.* |
函数为 non-.NET 项目提供扩展捆绑包,其中包含一组已验证为兼容的绑定扩展。 如果在两个或多个绑定扩展之间遇到兼容性问题,请参阅 扩展捆绑包发布页 以查看扩展版本的兼容组合。
在某些情况下,无法使用扩展捆绑包,例如,需要使用特定扩展的特定预发行版版本。 在这些极少数情况下,必须在引用应用所需的特定扩展的 C# 项目文件(extensions.csproj)中手动安装任何必需的绑定扩展。
在本地项目中创建此 C# 文件的最简单方法是使用 Azure Functions Core Tools。 有关详细信息,请参阅 func extensions install 命令,该命令会为你生成此项目。
对于仅限门户的开发,需要在 Azure 中函数应用的根目录中手动创建 extensions.csproj 文件。 若要了解详细信息,请参阅手动安装扩展。