适用于 Azure Functions 2.x 及更高版本的 Azure Cosmos DB 触发器和绑定概述

选择编程语言

此系列文章介绍如何在 Azure Functions 2.x 及更高版本中使用 Azure Cosmos DB 绑定。 Azure Functions 支持 Azure Cosmos DB 的触发器、输入和输出绑定。

操作 类型
创建或修改 Azure Cosmos DB 文档时运行函数 触发器
读取 Azure Cosmos DB 文档 输入绑定
保存对 Azure Cosmos DB 文档的更改 输出绑定

备注

此参考适用于 Azure Functions 2.x 及更高版本。 若要了解如何在 Functions 1.x 中使用这些绑定,请参阅适用于 Azure Functions 1.x 的 Azure Cosmos DB 绑定

此绑定最初名为 DocumentDB。 在 Azure Functions 2.x 及更高版本中,触发器、绑定和包均称为 Azure Cosmos DB。

受支持的 API

仅支持将 Azure Cosmos DB 绑定与 Azure Cosmos DB for NoSQL 配合使用。 从扩展 5.x 开始,通过使用表存储绑定来提供对 Azure Cosmos DB for Table 的支持。 对于所有其他的 Azure Cosmos DB API,应使用适用于 API 的静态客户端通过函数来访问数据库。API 包括 Azure Cosmos DB for MongoDBAzure Cosmos DB for CassandraAzure Cosmos DB for Apache Gremlin

安装扩展

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

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

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

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

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

使用触发器和绑定需要引用相应的 NuGet 包。 安装 NuGet 包版本 3.x。

安装捆绑包

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

由于 Azure Cosmos DB SDK 中的架构发生更改,Azure Cosmos DB 扩展的 4.x 版需要适用于 Java 函数的 azure-functions-java-library V3.0.0

可以通过注册扩展捆绑包版本 2.x 或 3.x 在函数应用中安装此版本的扩展。

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

绑定类型

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

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

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

早期版本的扩展公开了现已弃用的 Microsoft.Azure.Documents 命名空间中的类型。 Microsoft.Azure.Cosmos 中的较新类型专用于扩展 4.x 及更高版本

异常和返回代码

绑定 参考
Azure Cosmos DB Azure Cosmos DB 的 HTTP 状态代码

host.json 设置

本部分介绍版本 2.x 及更高版本中可用于此绑定的配置设置。 host.json 文件中的设置将应用于函数应用实例中的所有函数。 下面的示例 host.json 文件仅包含此绑定的 2.x 版及更高版本设置。 若要详细了解版本 2.x 及更高版本中的函数应用程序配置设置,请参阅 Azure Functions 的 host.json 参考

{
    "version": "2.0",
    "extensions": {
        "cosmosDB": {
            "connectionMode": "Gateway",
            "protocol": "Https",
            "leaseOptions": {
                "leasePrefix": "prefix1"
            }
        }
    }
}
属性 默认 说明
connectionMode Gateway 连接到 Azure Cosmos DB 服务时该函数使用的连接模式。 选项为 DirectGateway
protocol Https 连接到 Azure Cosmos DB 服务时该函数使用的连接协议。 请参阅此文,了解两种模式的说明。
leasePrefix 不适用 应用中所有函数要使用的租用前缀。

后续步骤