2

我已经阅读了很多关于如何使用命令式输入和输出绑定的帖子——我明白了,非常酷。

然而,我一直在努力寻找一种创建命令式触发器的方法。我不确定目前这是否可行。

我想做的事:

  • 在实现 IWebJobsStartup 的 Startup.cs 中,在运行时为 Azure 函数创建一个 EventHubTrigger,以便我可以动态指定 ConsumerGroup 属性,允许我在 Azure 部署槽中运行时使用特定的 ConsumerGroup,而不是在实时槽中使用的 ConsumerGroup . 我不希望他们竞争事件,我的零停机部署策略取决于此。
  • 或者类似的方法...

我在做什么:

  • 在我的 Azure DevOps 发布过程中,确保我有一个粘性插槽应用程序设置,并将其设置为插槽与在相应插槽中的不同值。
  • 在我的触发器属性中,将插槽设置​​附加到用于 ConsumerGroup 的配置值中,如下所示:
[EventHubTrigger("my-rapids-event-hub", Connection = "EventHub.ConnectionString", 
  ConsumerGroup = "%EventHub.ConsumerGroup%-%SlotConfigExtension%")] EventData[] events,
  [EventHub("my-river-eventhub", Connection = "EventHub.ConnectionString")] IAsyncCollector<string> outputEvents, 
  ILogger log)

后一种方法有效,因为它成功地连接了 ConsumerGroup 配置值:

%EventHub.ConsumerGroup%-%SlotConfigExtension%

不过,感觉有点不太理想,我更愿意确定如何完成第一种方法,这样我就可以在发布过程中放弃额外的 Azure Powershell 步骤。

提前致谢!

4

0 回答 0