事件中心触发器将相同的消息推送到多个应用程序功能

Event Hub Triggers pushing same message to multiple app functions

我有这样的布局:

EventHubNameSpace
  HubA
  HubB
  HubC

然后我有应用程序功能:

Product
  .AppFunctions
    .FunctionA
    .FunctionB
    .FunctionC

FunctionA 应该是来自 HubA 的触发器。 (我已经检查了“集成”选项卡,这是我指向的中心名称)。

FunctionB、HubB 等也是如此

但是,当某些内容发布到 HubA 时,我会在 FunctionB 上看到消息。问题是为什么?

当在集线器命名空间级别发生任何事件时,事件集线器触发器是否正在触发 "AppFunctions" 下的所有函数?

它们都设置为使用 $default 作为它们的使用者组,但我认为那将是在事件中心名称级别,而不是事件命名空间级别。

我是否需要单独的功能应用程序,每个事件中心一个?

那么,要让 HubA 的触发消息只发送到 FunctionA,需要更改什么?

谢谢, 尼克

我可以在我这边重现这个问题。经过一番研究,我发现原因是eventhub namespace connection string中添加了多余的字符串EntityPath。把这个字符串去掉就OK了。

步骤如下:

1.Nav 到azure portal, you azure function -> Configuration -> Application settings。然后单击 yourEventhubNameSpace_RootManageSharedAccessKey_EVENTHUB 的名称,从中删除 EntityPath。截图如下:

然后点击保存按钮。更改后,FunctionA / FunctionB / FunctionC 等每个函数都应该可以正常工作。