将文件从SFTP复制到Blob存储时,并行化Azure Logic App执行

Flo*_*eda 8 azure azure-storage-blobs azure-logic-apps

我有一个Azure Logic应用程序,当在SFTP服务器中添加或修改新文件时会触发该应用程序.发生这种情况时,文件将复制到Azure Blob存储,然后从SFTP服务器中删除.此操作每个文件大约需要2秒.

我唯一的问题是这些文件(平均500kb)是逐个处理的.鉴于我希望每天传输大约30,000个文件,这种方法变得非常慢(约18小时左右).

有没有办法扩展/并行化这些执行?

Tom*_*SFT 0

我不确定 Azure 逻辑应用程序上是否有横向扩展/并行化执行。但根据我的经验,如果时效性要求不是很高,我们可以使用Foreach来实现,ForEach并行度限制为50,默认为20。

对于您的情况,我的建议是,我们可以在 SFTP 中添加或修改新文件时进行循环触发,然后我们可以插入一条以文件路径作为内容的队列消息到 azure 存储队列,然后根据时间或队列长度结束循环。我们可以得到队列消息集合。最后,获取队列消息并从 SFTP 获取文件以在 foreach 操作中创建 blob。