适用于 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# 模式:

函数在独立的 C# 工作进程中执行。 若要了解详细信息,请参阅有关在独立工作进程中运行 C# Azure Functions 的指南

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

通过安装 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# 函数在独立于运行时的进程中运行。

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

独立工作进程中早期版本的扩展仅支持绑定到可 JSON 序列化类型。 扩展 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 不适用 应用中所有函数要使用的租用前缀。

后续步骤