gpt4 book ai didi

Azure Function CosmosDBTrigger 不可扩展

转载 作者:行者123 更新时间:2023-12-01 07:30:10 25 4
gpt4 key购买 nike

我有一个带有 CosmosDBTrigger 的 Azure 函数,用于使用 Application Insights 监控的消费游戏。正在监控的集合在更改源中有 500,000 插入。消耗计划在几分钟内将实例数量扩展到 15,但只有第一个实例能够处理任何更改。

我认为这是因为租约是由第一个实例保留的。我基本上是为 14 实例付费,但什么也不做。

我注意到您应该能够在 CosmosDBTrigger 上设置一个名为 LeaseOptions 的属性,但目前每当我尝试时都会收到错误:“错误 CS0655 'LeaseOptions' 不是有效的命名属性参数,因为它不是有效的属性参数类型”

有没有办法扩展 CosmosDBTrigger Azure Functions,以便一次可以由 10、20 甚至 200 实例处理?

最佳答案

是的,正如您所注意到的,他们确实在属性上公开了这些 LeaseOptions,但基本的 .NET 101 规则禁止将诸如 ChangeFeedHostOptions 之类的自定义复杂类型存储在以下位置的属性上:编译时间,因此会出现编译时错误。如果您使用的是 WebJob,则可以在启 Action 业主机时手动配置这些设置,但它在 Azure Function 模型下无法寻址。

也就是说,当您不配置它时,它会在幕后使用默认值创建,如下所示:

CheckpointFrequency      null 
FeedPollDelay 00:00:05
LeaseAcquireInterval 00:00:13
LeaseExpirationInterval 00:01:00
LeasePrefix null
LeaseRenewInterval 00:00:17

因此,考虑到这一点,我预计您应该看到单个函数实例保留整个分区的最长时间是17s,因为每13s code> 客户端应该检查请求工作的主机(在本例中为函数实例)的数量并重新平衡它们之间的分区。事实上你没有看到这一点......令人困惑。 🤔

免责声明:我个人并未以这种身份使用过CosmosDbChangeTrigger;我只是查看 GitHub 存储库中标记为 3.0.0-beta4 的代码,以了解它们如何在函数扩展的实现中将所有这些连接起来。

关于Azure Function CosmosDBTrigger 不可扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48392463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com