Azure Function 本地调试 - 如何将其限制为单线程或消息?

tub*_*aya 5 local azureservicebus azure-functions azure-functions-core-tools azure-function-async

我有一个 Azure 服务总线触发了 Azure 函数。当我在本地运行 Azure Function 时,它会启动 16 个线程并在每个线程中获取 16 条消息。我如何配置它,使其只运行一条消息,以便我可以调试它,而不会在同一个断点上命中 16 次?

我尝试在 host.json 文件中设置配置(如下所示),以便一次仅从 Azure 服务总线拾取 1 条消息,但这没有帮助。

{
  "version": "2.0",
  "extensions": {
    "serviceBus": {
      "prefetchCount": 100,
      "messageHandlerOptions": {
        "autoComplete": false,
        "maxConcurrentCalls": 1,
        "maxAutoRenewDuration": "00:55:00"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑 1:我目前所做的是通过包含正文中消息输入的 http 请求触发函数的管理端点。这样做的问题是,http 请求正文必须包含 {"input":"{}"} 并且我每次都必须花时间使用转义双引号创建有效的 json。如果我能够将函数配置为从服务总线主题一次运行单个消息,就会容易得多。

ana*_*ust 0

对于队列触发的函数,host.json 应该是:

{
  "version": "2.0",
  "extensions": {
    "queues": {
      "batchSize": 1
    }
  }
}
Run Code Online (Sandbox Code Playgroud)