Search code examples
azureazure-functionsazure-eventhub

Event Hub Triggers pushing same message to multiple app functions


I've got a layout like this:

EventHubNameSpace
  HubA
  HubB
  HubC

Then I've got app functions:

Product
  .AppFunctions
    .FunctionA
    .FunctionB
    .FunctionC

FunctionA is supposed to be a trigger from HubA. (I've checked the Integrations Tab and that's the hub name I've got pointed to).

Same thing with FunctionB, to HubB, etc.

However, when something gets published to HubA, I see the message on FunctionB. The question is why?

Is it that the event hub trigger is firing all of the functions under the "AppFunctions", when any event occurs at the hub namespace level?

They are all set to use $default as their consumer group, but I figured that would be at the event hub name level, not the event namespace level.

Do I need separate function apps, one for each event hub?

So what does has to change to have HubA's triggered messages only go to FunctionA?.

Thanks, Nick


Solution

  • I can repro the issue in my side. After some researching, I found the cause is that there is a redundant string EntityPath added to the eventhub namespace connection string. Just remove this string then everything is ok.

    The steps are as below:

    1.Nav to azure portal, you azure function -> Configuration -> Application settings. Then click on the name of yourEventhubNameSpace_RootManageSharedAccessKey_EVENTHUB, remove the EntityPath from it. The screenshot is as below:

    enter image description here

    Then click save button. After this changes, each function like FunctionA / FunctionB / FunctionC should work correctly.