Azure Functions 提供了连接到 更改反馈的最简单方法。 在 Azure Cosmos DB 容器的更改提要中,每次有新事件时,您可以创建自动触发的小型反应式 Azure Functions。
使用 Azure Cosmos DB 的 Azure Functions 触发器,可以利用 变更馈送处理器的 缩放和可靠事件检测功能,而无需维护任何 工作器基础结构。 只需专注于 Azure Function 的逻辑,而无需担心事件溯源管道的其余部分。 甚至可以将触发器与其他任何 Azure Functions 绑定混合使用。
注释
目前,适用于 Azure Cosmos DB 的 Azure Functions 触发器仅支持与 API for NoSQL 配合使用。
更改馈送模式
适用于 Azure Cosmos DB 的 Azure Functions 触发器支持这两种更改源模式:
- 最新版本模式 (默认值):触发器仅接收每个已更改项的最新版本。 此模式适用于所有Azure Functions编程模型和语言。
- 所有版本和删除模式:触发器接收每个更改的完整记录,包括中间更新和删除。 此模式适用于 .NET 隔离工作器模型,只需使用 Microsoft.Azure.Functions.Worker.Extensions.CosmosDB >= 4.16.1。
若要使用“所有版本和删除”模式,Azure Cosmos DB 帐户必须启用 连续备份,并启用 “所有版本和删除”更改源功能。 有关 SDK 和编程模型之间的兼容性的详细信息,请参阅 更改源模式。
要求
若要实现基于无服务器事件的流,需要:
- 受监视的容器:受监视的容器是正在被监视的 Azure Cosmos DB 容器,它存储用于生成更改提要的数据。 对受监视容器的任何插入或更新都反映在容器的更改馈送中。
-
租约容器:租约容器在多个和动态无服务器 Azure 函数实例之间保持状态,并启用动态缩放。 可以使用 Azure Cosmos DB 的 Azure Functions 触发器自动创建租约容器。 还可以手动创建租约容器。 若要自动创建租约容器,请在配置中设置 CreateLeaseContainerIfNotExists 属性。 分区租约容器需要具有
/id分区键定义。
为 Azure Cosmos DB 创建 Azure Functions 触发器
现在,所有 Azure Functions IDE 和 CLI 集成都支持使用 Azure Cosmos DB 的 Azure Functions 触发器创建 Azure Function:
Visual Studio 用户的 Visual Studio 扩展
Visual Studio Code 用户的扩展插件
用于跨平台 IDE 无关体验的核心 CLI 工具
在本地运行触发器
可以使用 Azure Cosmos DB 模拟器在本地运行 Azure Function,以创建和开发无服务器事件流,而无需 Azure 订阅或产生任何费用。
后续步骤
现在,可以在以下文章中继续了解有关更改源的详细信息: