Azure function service bus trigger: How to stop batches of data from event stream and only allow one message from the queue at a time?

Set maxConcurrentCalls to 1 in the host.json. You also could get answer from host.json reference for Azure Functions

maxConcurrentCalls 16 The maximum number of concurrent calls to the callback that the message pump should initiate. By default, the Functions runtime processes multiple messages concurrently. To direct the runtime to process only a single queue or topic message at a time, set maxConcurrentCalls to 1


In case someone stumbles on this question in the future, for function apps 2.0 you need to to update the host.json like this:

{
  "version": "2.0",
  ...
  "extensions": {
    "serviceBus": {
      "messageHandlerOptions": {
        "maxConcurrentCalls": 1
      }
    }
  }
}