I have a simple function app in Python v2. The plan is to process millions of images, but right I just want to make the scaffolding right, i.e. no image processing, just dummy data. So I have two functions:
-
process
with an HTTP trigger @app.route
, this inserts 3 random image URLs to the Azure Queue Storage,
-
process_image
with a Queue trigger @app.queue_trigger
, that processes one image URL from above (currently only logs the event).
I trigger the first one with curl
request and as expected, I can see the invocation in the Azure portal in the function's invocation section and I can see the items in the Storage Explorer's queue.
But unexpectedly, I do not see any invocations for the second function, even though after a few seconds the items disappear from the images
queue and end up in the images-poison
queue. So this means that something did run with the queue items 5 times. I see the following warning in the application insights checking traces
and exceptions
:
Message has reached MaxDequeueCount of 5. Moving message to queue 'case-images-deduplication-poison'.
Can anyone help with what's going on? Here's the gist of the code.