繁体   English   中英

无法为 Azure 服务总线队列设置 maxMessageBatchSize

[英]Not able to set maxMessageBatchSize for Azure Service Bus Queue

我有一个 Azure Function 来使用 ServiceBusTrigger 处理来自服务总线队列的消息。 已部署带有设置“maxMessageBatchSize”的 host.json 文件:5 但是它以某种方式被忽略并且日志记录表明它使用的是默认值 1000。无论我做了什么我都无法更改此值。

这是 function 代码的片段

[FunctionName("SomeFunction")]
    public async Task Run(
            [ServiceBusTrigger("queue-name", Connection = "ServiceBusConnectionString")]
            ServiceBusReceivedMessage[] messages,
            ILogger log)                     
    {
        log.LogInformation("Executing Function {}", messages.Length);
        var options = new Microsoft.Azure.WebJobs.ServiceBus.ServiceBusOptions();
        log.LogInformation($" MaxMessageBatchSize: {options.MaxMessageBatchSize}");

和 host.json 在此处根据 Extensions 5.x+ 文档部署,我也尝试了 Functions 2.x+ 来确定,但也没有帮助。

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "extensions": {
    "serviceBus": {
      "prefetchCount": 0,
      "maxConcurrentCalls": 5,
      "maxConcurrentSessions": 5,
      "maxMessageBatchSize": 5
    }
  }
}
  • 这是 VS 2022 中的 .NET 6 项目,
  • Microsoft.Azure.Functions.Extensions 1.1.0
  • Microsoft.Azure.WebJobs,Extensions.ServiceBus 5.8.1
  • Microsoft.NET.Sdk.Functions 4.0.1
  • ServiceBus 会话设置为禁用
  • 消耗模式下的横向扩展设置 = 1

您如何确定未使用 5? 当您在 function 主体中构造一个新的选项实例时,该实例将具有该属性的默认值,但这并不意味着扩展不遵守您在 host.json 中指定的值。

在本地启动时,如果您传递详细标志,您将能够看到正在使用的 host.json 选项,即:

func host start --verbose

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM