I have a serious issue with Azure Functions. Let me sketch my scenario.
I have a workload for processing incoming data files in a blob container. Using a BlobTrigger my processing function picks up the file, processes it and removes it from the container. Everything for one single file within 2 minutes of processing on the consumption plan.
Everything ok there, so I'm happy. Now I want to scale things up and offer +/- 10 of these batches in the blob container. The runtime starts executing them in parallel, so still works as expected. But then: the parallel executions of these functions slow down apparently, so the processing time of a single workload exceeds the max. execution time of 10 minutes! That's (more than) a factor 5 slowing things down, dependent on the amount of jobs offered.
Am I missing the point here? This is what the functions were built for or is it just some toy or something? I resorted to annotating my function with [Singleton] for now, which completely discards any scaling benefits here? How on earth could it be that 'serverless' execution units interfere with one another?
I am very puzzled, any insights would be greatly appreciated.