I’m using the Node.js v4 programming model for Azure Functions, and I have a Service Bus-triggered function with the following setup:
app.serviceBusQueue('MyFunctionName', {
queueName: 'myQueueName',
connection: 'ServiceBusConnectionString',
handler: azureFunction,
isSessionsEnabled: true,
});
Host.json:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
},
"functionTimeout": "00:04:00",
"extensions": {
"serviceBus": {
"prefetchCount": 10,
"messageHandlerOptions": {
"maxConcurrentCalls": 16,
"autoComplete": true,
"maxAutoRenewDuration": "00:05:00"
}
}
}
}
Node.js runtime version: 18
Works locally with func start, but messages aren’t processed when deployed to Azure portal.
I’ve verified that:
- The connection string is correctly set in Azure’s Application
Settings (without EntityPath). - The runtime version in both local and Azure portal is v4.
- The Function App is running and not in a stopped state.
- The queue name and connection match the function definition.
UPDATE:
checking insights I could see the error
The 'MyFunctionName' function is in error: The binding type(s) 'serviceBusTrigger' are not registered. Please ensure the type is correct and the binding extension is installed.
2
Answers
So, after a few hours, I finally discovered what the problem was:
I have a monorepo from which I deploy different function apps. The issue was that the
host.json
file were not located in the root directory of the function app after deployment.To check this I went to:
Then into
site
and thenwwwroot
folder.Ensure that
host.json
is there and it is well configured. If it is missing or incorrectly configured, the Azure Functions runtime may not recognize extensions.I have used the given code and have followed below steps to achieve it.
Post deployment, I fetched connection string and added in Environment variable as shown below.
Function got triggered upon sending a message in service bus queue.
If it still doesn’t fires then check the associated application insight in case of any errors.