适用于 Azure Functions 的 Azure 表绑定

Azure Functions 通过触发器和绑定Azure 表集成。 通过与 Azure 表集成,可以使用 Azure Cosmos DB for TableAzure Table Storage 生成用于读取和写入数据的函数。

操作 类型
读取函数中的表数据 输入绑定
允许函数写入表数据 输出绑定

安装扩展

你安装的扩展 NuGet 包取决于你在函数应用中使用的 C# 模式:

函数在与函数主机相同的进程中执行。 若要了解详细信息,请参阅使用 Azure Functions 开发 C# 类库函数

在此模型的变体中,可以使用 C# 脚本运行 Functions,该脚本主要用于 C# 门户编辑。 若要更新在门户中运行的 C# 脚本应用程序的现有绑定扩展,而无需重新发布函数应用,请参阅更新扩展

安装扩展的过程因扩展版本的不同而异:

本节介绍如何使用类库。 对于 C# 脚本,需要改为安装扩展捆绑包版本 4.x。

此版本引入了使用标识而不是机密进行连接的功能。 有关使用托管标识配置函数应用的教程,请参阅使用基于标识的连接创建函数应用教程

此版本允许绑定到 Azure.Data.Tables 中的类型。 它还引入了使用 Azure Cosmos DB for Table 的功能。

通过将 Microsoft.Azure.WebJobs.Extensions.Tables NuGet 包安装到使用 Blob队列扩展的 5.x 或更高版本的项目,可以使用此扩展。

使用 .NET CLI:

# Install the Azure Tables extension
dotnet add package Microsoft.Azure.WebJobs.Extensions.Tables

# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.WebJobs.Extensions.Storage

备注

Azure Blob、Azure 队列和 Azure 表现在使用单独的扩展并单独进行引用。 例如,若要在 .NET 进程内应用中为所有三个服务使用触发器和绑定,应将以下包添加到项目:

以前,这些扩展作为 Microsoft.Azure.WebJobs.Extensions.Storage 版本 4.x 一同交付。 此包还有一个 5.x 版本,该版本仅引用 Blob 和队列的拆分包。 因此,在从旧版本升级包引用时,可能需要额外引用新的 Microsoft.Azure.WebJobs.Extensions.Tables NuGet 包。 此外,在引用这些较新的拆分包时,请确保不要引用旧版组合存储包,否则会导致相同绑定的两种定义发生冲突。

安装捆绑包

Azure 表绑定是在 host.json 项目文件中指定的扩展捆绑包的一部分。 你可能需要修改此捆绑包以更改绑定的版本,或者如果尚未安装捆绑包。 若要了解详细信息,请参阅扩展捆绑包

此版本引入了使用标识而不是机密进行连接的功能。 有关使用托管标识配置函数应用的教程,请参阅使用基于标识的连接创建函数应用教程

可以通过在 host.json 文件中添加或替换以下代码,从扩展捆绑包 v3 添加该扩展的这一版本:

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

绑定类型

.NET 支持的绑定类型取决于扩展版本和 C# 执行模式,可以是以下类型之一:

进程内类库是编译的 C# 函数,该函数在与 Functions 运行时相同的进程中运行。

请选择一个版本来查看模式和版本的绑定类型详细信息。

Azure 表扩展支持下表所示的参数类型。

绑定方案 参数类型
表输入(单个实体) 派生自 ITableEntity 的类型
表输入(查询中的多个实体) IEnumerable<T>,其中 T 派生自 ITableEntity
TableClient
表输出(单个实体) 派生自 ITableEntity 的类型
表输出(多个实体) TableClient
ICollector<T>IAsyncCollector<T>,其中 T 实现 ITableEntity

后续步骤