注册 Azure Functions 绑定扩展
从 Azure Functions 版本 2.x 开始,函数运行时默认情况下仅包括 HTTP 和计时器触发器。 其他触发器和绑定可作为单独的包提供。
.NET 类库函数应用使用以 NuGet 包的形式安装在项目中的绑定。 扩展捆绑包允许非 .NET 函数应用使用相同的绑定,而不必处理 .NET 基础结构。
下表指明了何时以及如何注册绑定。
开发环境 | 在 Functions 1.x 中注册 |
在 Functions 2.x 或更高版本中注册 |
---|---|---|
Azure 门户 | 自动 | 自动* |
非 .NET 语言 | 自动 | 使用扩展捆绑(推荐)或显式安装扩展 |
使用 Visual Studio 的 C# 类库 | 使用 NuGet 工具 | 使用 NuGet 工具 |
使用 Visual Studio Code 的 C# 类库 | 不适用 | 使用 .NET Core CLI 使用 C# 开发工具包 |
* 门户使用扩展捆绑包,包括 C# 脚本。
扩展捆绑包
默认情况下,扩展捆绑包为以下语言的函数提供绑定支持:
- Java
- JavaScript
- PowerShell
- Python
- C# 脚本
- 其他(自定义处理程序)
在无法使用扩展捆绑包的极少数情况下,你可以使用函数应用项目显式安装绑定扩展。 2.x 版和更高版本的 Functions 运行时支持扩展捆绑包。
使用扩展捆绑包可将一组预定义的兼容绑定扩展添加到函数应用。 扩展捆绑已进行版本控制。 每个版本都包含一组特定的绑定扩展,这些扩展经过验证,可协同工作。 根据应用中所需的扩展,选择捆绑版本。
通过工具或在门户中创建非 .NET Functions 项目时,扩展包已在应用程序的 host.json 文件中启用。
扩展包引用由 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 的所有捆绑包版本。 有关详细信息,请参阅用于指定版本范围的间隔表示法。 |
注意
3.x 版扩展捆绑包目前不包含表存储绑定。 目前,如果应用需要表存储,则需继续使用 2.x 版。
下表列出了默认 Microsoft.Azure.Functions.ExtensionBundle 捆绑的当前可用版本范围以及它们所包括的扩展的链接。
捆绑版本 | host.json 中的版本 | 已包含的扩展 |
---|---|---|
1.x | [1.*, 2.0.0) |
请参阅用于生成捆绑的 extensions.json。 |
2.x | [2.*, 3.0.0) |
请参阅用于生成捆绑的 extensions.json。 |
3.x | [3.3.0, 4.0.0) |
请参阅用于生成捆绑的 extensions.json。 |
4.x | [4.0.0, 5.0.0) |
请参阅用于生成捆绑的 extensions.json。 |
注意
即使 host.json 支持 version
的自定义范围,你也应该使用此表中的版本范围值,例如 [4.0.0, 5.0.0)
。 有关扩展捆绑包发行版以及每个发行版中的扩展版本的完整列表,请参阅扩展捆绑包发行版页面。
显式安装扩展
对于已编译的 C# 类库项目(进程内和独立工作进程),可以照常安装所需扩展的 NuGet 包。 有关示例,请参阅 Visual Studio Code 开发人员指南或 Visual Studio 开发人员指南。 请参阅扩展捆绑包发行版页面,查看已确认兼容的扩展版本组合。
对于非 .NET 语言和 C# 脚本,当无法使用扩展捆绑包时,则需要在本地项目中手动安装所需的绑定扩展。 最简单的方法是使用 Azure Functions Core Tools。 有关详细信息,请参阅 func extensions install。
对于仅限门户的开发,需要在函数应用的根目录中手动创建 extensions.csproj 文件。 若要了解详细信息,请参阅手动安装扩展。