注册 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 文件。 若要了解详细信息,请参阅手动安装扩展

后续步骤