You're correct in your understanding of how Azure Functions scale in relation to Event Hubs partitions. Here's a bit more detail to confirm and expand on your points:
Single Instance per Partition: Indeed, only one function instance processes events from a given partition at any one time. This ensures that the order of messages and offset integrity are maintained.
Maximum Concurrent Instances: The maximum number of concurrently running function instances is equal to the number of partitions in the Event Hub. Each partition is handled by a single instance to maintain the integrity of the event stream.
Increasing Parallel Processing: To increase parallel processing, you would need to increase the number of partitions in the Event Hub. This allows more function instances to run concurrently, each processing events from a different partition.
This scaling model is designed to ensure that the processing of events is both efficient and orderly. If you need to handle a higher volume of events, increasing the number of partitions is the recommended approach.
Hope this helps. Do let us know if you any further queries.