设计 Azure Functions 以从多个事件中心读取事件的最佳方式
Best way to design Azure Functions to read events from more than one event hub
我想用 Python 语言设计 azure 函数来从多个事件中心读取事件。事件中心的数量不是恒定的,它可以增加或减少(例如,一个事件中心从一个 azure AD 租户发布日志,将来可以添加 AD 租户)。每个功能将具有相同的业务逻辑,只有偶数集线器连接字符串会有所不同。
事件中心触发函数只能使用一个事件中心,不能超过多个。
那么,这个问题陈述的最佳方法是什么:
为每个事件中心创建 1 个事件中心触发函数,并将所有函数保留在一个 azure 函数 APP 下,并拥有可供所有函数使用的共享代码。
缺点:如果添加了新的事件中心,需要创建一个新函数并独立部署函数,函数应用程序零停机时间,这是不可能的。根据azure doc ,部署单元应该是Function APP,而不是单个函数。
正在创建 1 个具有单个事件中心触发函数的函数 APP
订阅一个事件中心 .
优点 由于每个事件中心的新功能应用程序不同,如果
新的事件中心添加了其他功能应用程序不会受到影响并且为零
他们的停机时间
挑战 假设我们有一个 Github 具有功能的 repo
逻辑, function.json ,是否可以每个创建一个功能应用程序
添加新事件中心的时间并创建与
git 回购。将来我想使用天蓝色管道或 Github 操作
对于 CI/CD ,这种方法会产生任何问题吗?
如果业务逻辑完全一样,那么你可以把核心逻辑提取出来,放在一个http触发函数中。您只需要create multiple Azure logic apps to trigger and pass the content of the event hub to the function进行处理。
这样你就不用担心多次部署导致的宕机,而且我认为创建多个 Azure 逻辑应用程序比创建多个 Azure 函数更容易。
你可以参考我的逻辑应用设计:
我想用 Python 语言设计 azure 函数来从多个事件中心读取事件。事件中心的数量不是恒定的,它可以增加或减少(例如,一个事件中心从一个 azure AD 租户发布日志,将来可以添加 AD 租户)。每个功能将具有相同的业务逻辑,只有偶数集线器连接字符串会有所不同。
事件中心触发函数只能使用一个事件中心,不能超过多个。
那么,这个问题陈述的最佳方法是什么:
为每个事件中心创建 1 个事件中心触发函数,并将所有函数保留在一个 azure 函数 APP 下,并拥有可供所有函数使用的共享代码。
缺点:如果添加了新的事件中心,需要创建一个新函数并独立部署函数,函数应用程序零停机时间,这是不可能的。根据azure doc ,部署单元应该是Function APP,而不是单个函数。
正在创建 1 个具有单个事件中心触发函数的函数 APP 订阅一个事件中心 .
优点 由于每个事件中心的新功能应用程序不同,如果 新的事件中心添加了其他功能应用程序不会受到影响并且为零 他们的停机时间
挑战 假设我们有一个 Github 具有功能的 repo 逻辑, function.json ,是否可以每个创建一个功能应用程序 添加新事件中心的时间并创建与 git 回购。将来我想使用天蓝色管道或 Github 操作 对于 CI/CD ,这种方法会产生任何问题吗?
如果业务逻辑完全一样,那么你可以把核心逻辑提取出来,放在一个http触发函数中。您只需要create multiple Azure logic apps to trigger and pass the content of the event hub to the function进行处理。
这样你就不用担心多次部署导致的宕机,而且我认为创建多个 Azure 逻辑应用程序比创建多个 Azure 函数更容易。
你可以参考我的逻辑应用设计: