@Bin Jin (Forestay) Thanks for reaching out. If there are messages that goes into the dead letter queue then to find the reason for dead letter queue please peek those messages from dead letter queue using service bus explorer to know the reason why the messages were moved to the dead letter queue as there can be multiple reason as mentioned here.
Looking into the configured most probably the reason for those message moved to the dead letter queue would be MaxDeliveryCountExceeded reason as the messages was not consumed by your client application i.e. Azure function.
If I look into the configuration, then I can see you have define the prefetchCount as 10 so that means 10 messages will be prefetched at the client buffer in one call so there could be chances that the client was not able to process those messages within the lock duration as the client application would be in high utilization. I will suggest you to first set the maximum lock duration as 5 minutes in your entity (i.e. queue) and set the maxAutoLockRenewalDuration to 4 minutes and decrease the prefetchCount to some other value or remove it as per your load.
To know more details on the prefetch please refer to this document and to know more about service bus lock please refer to this documenation.
Feel free to get back to me if you have any queries or concerns.