0

我希望使用更改源处理器 SDK来监视 Azure Cosmos DB 集合的更改,但是,我还没有看到有关主机是否可以作为 Azure Web 作业运行的明确文档。它可以?如果是,与将其作为控制台应用程序运行相比,是否存在任何已知问题或限制?

有很多关于使用 CFP SDK 的博客文章,但是,其中大多数都含糊地提到在 VM 上运行主机,并且没有一篇或任何将主机作为 azure web 作业运行的示例。

即使有可能,作为一个附带问题,如果这样的主机被部署为一个连续的 Web 作业,并且我将 Web 作业的“Scale”设置选择为多实例,那么使额外实例运行的方法或建议是什么使用 CFP SDK 需要的不同实例名称?

4

2 回答 2

1

根据我的研究,Cosmos db 触发器可以在 WebJob SDK 中实现。

static async Task Main()
{
    var builder = new HostBuilder();
    builder.ConfigureWebJobs(b =>
    {
        b.AddAzureStorageCoreServices();
        b.AddCosmosDB(a =>
        {
            a.ConnectionMode = ConnectionMode.Gateway;
            a.Protocol = Protocol.Https;
            a.LeaseOptions.LeasePrefix = "prefix1";

        });
    });
    var host = builder.Build();
    using (host)
    {
        await host.RunAsync();
    }
}

但似乎只有 Nuget for c# sdk 可以使用,没有其他语言的线索。所以,您可以参考比较函数和 WebJobs来平衡您的需求和成本。

在此处输入图像描述

于 2020-01-06T07:21:25.660 回答
1

Azure Functions的Cosmos DB 触发器实际上是一个 WebJobs 扩展:https ://github.com/Azure/azure-webjobs-sdk-extensions/tree/dev/src/WebJobs.Extensions.CosmosDB 它使用更改馈送处理器.

函数通过 WebJob 技术运行。所以要回答这个问题,是的,您可以在 WebJobs 上运行 Change Feed Processor,只需确保:

  1. 您的应用服务设置为始终开启
  2. 如果您计划使用多个实例,请确保相应地设置 InstanceName 而不是静态/固定值。可能是标识 WebJob 实例的东西。
于 2020-01-06T15:19:18.300 回答