我有一个带有 CosmosDBTrigger 的 Azure 函数,用于使用 Application Insights 监控的消费游戏。正在监控的集合有500,000
插入更改提要中。消费计划将实例数量扩大到15
几分钟之内,但只有第一个实例能够处理任何更改。
我认为这是因为租约是由第一个实例保留的。我基本上是在支付14
实例不执行任何操作。
我注意到您应该能够在 CosmosDBTrigger 上设置一个名为LeaseOptions
但目前每当我尝试时都会收到错误:"Error CS0655 'LeaseOptions' is not a valid named attribute argument because it is not a valid attribute parameter type"
有没有办法扩展 CosmosDBTrigger Azure Function 以便可以通过以下方式处理它:10, 20
甚至200
一次实例?
是的,他们确实揭露了那些LeaseOptions
正如您所注意到的,在属性上,但基本的 .NET 101 规则禁止自定义复杂类型,例如ChangeFeedHostOptions
在编译时存储在属性上,因此会出现编译时错误。如果您使用的是 WebJob,则可以在启动作业主机时手动配置这些设置,但它在 Azure Function 模型下无法寻址。
也就是说,当您不配置它时,它会在幕后使用默认值创建,如下所示:
CheckpointFrequency null
FeedPollDelay 00:00:05
LeaseAcquireInterval 00:00:13
LeaseExpirationInterval 00:01:00
LeasePrefix null
LeaseRenewInterval 00:00:17
所以,考虑到这一点,我会expect您应该看到单个函数实例保留整个分区的最长时间是17s
因为每个13s
客户端应该检查请求工作的主机(在本例中为函数实例)的数量并重新平衡它们之间的分区。事实上你没有看到这一点......令人困惑。 ????
免责声明:我个人没有与CosmosDbChangeTrigger
以此身份;我只是查看标记的代码3.0.0-beta4
在 GitHub 存储库中了解他们如何在函数扩展的实现中将所有这些连接起来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)