gpt4 book ai didi

azure - 基于自定义逻辑同时处理 Azure Blob 存储中的多个文件

转载 作者:行者123 更新时间:2023-12-03 00:08:04 25 4
gpt4 key购买 nike

我的具体要求是这样的:

我的 Blob 存储“B1”中有一堆针对不同客户的文件。假设客户“C1”有 10 个文件,客户“C2”有 10 个文件,客户“C3”有 10 个文件。

我想对每个文件执行一些操作并将它们移动到 blob 存储“B2”。这可能需要 30 秒到 5 分钟,具体取决于文件中的数据。

现在我想同时为每位客户处理一个文件,但同时不能为同一客户处理多个文件。

就像客户“C1”的一个文件一样,“C2”的一个文件和“C3”的一个文件必须同时处理。因此“C1”的处理时间不会影响“C2”和“C3”。但C1的下一个文件只有在第一个文件完成后才会被处理。

采用 Microsoft Azure 功能实现此目的的最佳架构是什么?

例如,我已经使用 Azure Function V1 实现了这样的功能:

  1. Blob 触发的 Azure 函数:只要将任何文件放入 Blob 中,就会在 Azure 表中添加带有客户 ID 的文件名。该表将再包含一列“InQueue”,默认情况下该列为 FALSE。

  2. 时间触发的 Azure 函数:这将 checkin Azure 表并为所有文件都 InQueue = FALSE 的每个客户获取第一个文件(意味着:没有正在处理的文件)。并为他们更新 InQueue = TRUE 并将其名称添加到 azure 队列中。

  3. 队列触发的 Azure 函数:只要有任何文件位于 Azure 队列中并对其进行处理,就会触发此函数。该过程完成后,它将从 azure 表中删除该文件的条目。因此,现在对于该文件的客户,所有其他条目都具有“InQueue”= FALSE(没有正在处理的文件)

因此,在上述架构中,时间触发的 azure 函数负责处理每个客户的一个文件,但它也会将不同客户的多个文件推送到队列中。并且作为队列触发的azure函数可以同时运行多个实例。不同客户的所有文件将同时执行。

我的架构好吗?还是不好?或者我该如何改进它?还有哪些其他选项可以使我的流程更快、更轻松或步骤更少?

最佳答案

现在,我所理解的让您困惑的主要问题是您想要同时执行多个函数。如果是这样,我建议您尝试具有并行分支的逻辑应用

这是tutorial关于如何创建具有并行分支的逻辑应用。这是渲染图。您可以将 Azure Functions 添加为操作。 enter image description here

这里我使用了重复(时间表)作为触发器,您可以使用其他触发器。在每个分支之后,您还可以向其添加操作。就像图片所示。 enter image description here

希望这可以帮助您,如果您还有其他问题,请告诉我。

关于azure - 基于自定义逻辑同时处理 Azure Blob 存储中的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53928230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com