簡體   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