多个天蓝色blob容器的单个事件

时间:2018-07-31 14:12:57

标签: azure azure-logic-apps azure-eventgrid

我有一个要求基于事件驱动的体系结构进行文件合并。我有两个Blob容器,一旦它们在各自的容器中可用,我需要合并文件。会根据文件名进行关联。

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

2 个答案:

答案 0 :(得分:2)

事件网格Microsoft.Storage.BlobCreated事件将在每个容器中引发,并且不会等待其他容器引发事件。

我想到的一个选择是使用Durable Function处理事件,在其中您可以将Correlation值用作Durable Function instance ID来标识现有功能或启动一个新功能。如果具有给定ID的函数实例已在运行,则可以执行合并或引发新的custom event并分别进行处理。

答案 1 :(得分:0)

另一个选择是创建一个简单的 Distributed Event Aggregator ,如以下屏幕片段所示:

EventAggregator

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

创建或更新租赁Blob将为订户生成一个事件,其逻辑可以看到EventAggregator的状态以及接收到的事件消息的数组。

如果我们不为Lease Blob(单独的存储帐户)使用事件,则可以通过HttpTrigger函数-EventAggregator将带有EventAggregator状态的最终事件消息发送到存储队列。