多个azure blob容器的单个事件

多个azure blob容器的单个事件,azure,azure-logic-apps,azure-eventgrid,Azure,Azure Logic Apps,Azure Eventgrid,我有一个需求是基于事件驱动架构进行文件合并。我有两个blob容器,我需要合并文件,只要它们在各自的容器中可用。将根据文件名进行关联 这意味着假设我有两个容器,容器A和容器B。当文件到达容器A时,它应该等待文件进入容器B,然后事件应该触发,该事件将由ADF或logic app订阅以进行进一步处理。请提出一些实现这一目标的方法 事件网格Microsoft.Storage.BlobCreated事件将针对每个容器引发,不会等待其他容器引发事件 我可以想到的一个选项是使用关联值来处理事件,您可以使用关联

我有一个需求是基于事件驱动架构进行文件合并。我有两个blob容器,我需要合并文件,只要它们在各自的容器中可用。将根据文件名进行关联


这意味着假设我有两个容器,容器A和容器B。当文件到达容器A时,它应该等待文件进入容器B,然后事件应该触发,该事件将由ADF或logic app订阅以进行进一步处理。请提出一些实现这一目标的方法

事件网格
Microsoft.Storage.BlobCreated
事件将针对每个容器引发,不会等待其他容器引发事件


我可以想到的一个选项是使用关联值来处理事件,您可以使用关联值来标识现有函数或启动新函数。如果具有给定ID的函数实例已在运行,则您可以执行合并或生成新实例并单独处理。

事件网格
Microsoft.Storage.BlobCreated
事件将按每个容器生成,而不会等待其他容器生成事件


我可以想到的一个选项是使用关联值来处理事件,您可以使用关联值来标识现有函数或启动新函数。如果具有给定ID的函数实例已在运行,则可以执行合并或生成新实例并单独处理。

另一个选项是创建简单的分布式事件聚合器,如以下屏幕片段所示:

该概念基于租赁Blob,其中存储了EventAggregator的状态以及所有接收到的事件消息。HttpTrigger函数负责处理和管理接收到的事件消息、创建和更新状态以及处理重试传递以可靠地更新状态。在这种情况下,死信用作看门狗定时器

创建或更新租约Blob将为订阅服务器生成一个事件,其逻辑可以通过接收到的事件消息数组查看EventAggregator的状态


在不使用租赁Blob(独立存储帐户)事件处理的情况下,可以通过HttpTrigger函数-EventAggregator将具有EventAggregator状态的finally事件消息发送到存储队列

另一个选项是创建一个简单的分布式事件聚合器,如以下屏幕片段所示:

该概念基于租赁Blob,其中存储了EventAggregator的状态以及所有接收到的事件消息。HttpTrigger函数负责处理和管理接收到的事件消息、创建和更新状态以及处理重试传递以可靠地更新状态。在这种情况下,死信用作看门狗定时器

创建或更新租约Blob将为订阅服务器生成一个事件,其逻辑可以通过接收到的事件消息数组查看EventAggregator的状态


在不使用租赁Blob(独立存储帐户)事件处理的情况下,可以通过HttpTrigger函数-EventAggregator将具有EventAggregator状态的finally事件消息发送到存储队列

或者,如果您想按照前面提到的逻辑应用程序路线,您可以使用前面提到的eventgrid事件作为触发器进入您的逻辑应用程序,您可以在逻辑应用程序中使用多个触发器,我们将彼此等待,因此,如果触发blob a,它将等待blob b被触发,然后再继续运行。或者,如果您希望按照前面提到的逻辑应用程序路径,您可以使用前面提到的eventgrid事件作为触发器进入您的逻辑应用程序,您可以在逻辑应用程序中使用多个触发器,它们将互相等待,因此如果触发blob a,它将等待blob b被触发,然后再继续运行