How do the functions work without a connected storage account, even though the docs say it's required?
-App Service Plan functions can technically start without AzureWebJobsStorage
, especially for HTTP triggers or Service Bus (without checkpointing).
-You might see unreliable behavior (e.g., no checkpointing, duplicate messages).
-V4 isolated process, App Service Plan, no bindings needing state = technically allowed but unsupported for certain bindings.
-Follow the MS doc1, doc2 for better understanding.
After deploying a Python Azure Function that listens to a Service Bus Queue, the function wouldn’t trigger even though messages were successfully sent to the queue.
The issue was due to an incorrect application setting. Instead of using the correct Service Bus connection string, only the queue name was set. Also, the storage connection string was initially misconfigured using AzureWebJobsStorage__accountName
.
repro-function/
├── host.json
└── ServiceBusTrigger/
├── __init__.py
└── function.json
I made sure the AzureWebJobsStorage
app setting was configured using:
az functionapp config appsettings set --name FuncName --resource-group RsrGrpNme --settings AzureWebJobsStorage="StorageConnectionString"
Then, added the AzureWebJobsServiceBus
setting with the primary connection string of the Service Bus:
az functionapp config appsettings set --name FuncNme --resource-group RsrGrpNme --settings AzureWebJobsServiceBus="PrimaryConnectionString"
Confirm your function.json
matches the actual queue name:
{
"bindings": [
{
"name": "msg",
"type": "serviceBusTrigger",
"direction": "in",
"queueName": "repro-queue",
"connection": "AzureWebJobsServiceBus"
}
]
}
Then restart and retest
az functionapp restart --name FunctionNme --resource-group RsrGrpNme
enter image description here enter image description here Follow the MS Doc1 , Doc2 , Doc3 for better understanding.