1

我正在使用 Azure Logic 应用程序从我的 Azure 容器中获取 Blob 内容。Blob 每月以以下格式存储在我的容器中:- 例如。mycontainer/invoice/20200101/invoice1.csv、mycontainer/invoice/20200201/invoice2.csv 等等。换句话说,每个月的发票都会动态地存储在我的容器中,并带有一个表示月份和日期的文件夹,如示例中所示。(2020-01-01, yyyyMMdd 格式)

到目前为止,我能够获取在我的容器中创建的最新文件夹。在这种情况下是 10 月,因为我们在 10 月。但我希望获取该文件夹中存在的最新文件。

我目前的工作流程如下:-

当前工作流程

对此有何建议?谢谢!

4

2 回答 2

2

我提供了整个逻辑应用程序供您参考,大部分操作与您的相同:

1.逻辑应用概述 在此处输入图像描述

2.前三个动作 在此处输入图像描述

3.第四和第五个动作 在此处输入图像描述

4. “ For each ”循环 的细节在此处输入图像描述

Set variable ”中int(substring(items('For_each')?['Name'], 0, 8))的表达式是,“ Set variable 3 ”中的表达式是replace(items('For_each')?['Name'], '/', '')

5.最后两个动作 在此处输入图像描述

获取 blob 内容”操作中的最后一个表达式是body('List_blobs_2')?['value'][0]?['Name']

=====================================更新============= =====================

1.删除逻辑应用的最后一个操作“获取 blob 内容”。

2.然后我们在动作“ List blobs 2 ”之后开始。添加两个“初始化变量”。 在此处输入图像描述

3.添加另一个“ For each ”循环。请注意value从“ List blobs 2 ”中选择“ For each 2 ”,但不要value从“ List blobs ”中选择“ For each 2 ”。 在此处输入图像描述

4.For each 2 ”循环中的细节。 在此处输入图像描述

两者的表达方式fx ticks(...)ticks(items('For_each_2')?['LastModified'])

并且在“设置变量 5 ”中,也Name从“ List blobs 2 ”中选择,而不是从“ List blobs ”中选择。

5.然后添加“获取 blob 内容”操作,如下图所示。 在此处输入图像描述

6.顺便说一句:在运行逻辑应用之前,请对逻辑应用中的所有“ For each ”循环操作进行此设置。否则,结果可能不正确。

单击...“对于每个”操作的按钮,然后单击“设置”,启用Concurrency Control并设置Degree of Parallelism1在此处输入图像描述

于 2020-10-26T05:06:02.220 回答
0

您可以将事件网格触发器从 BLOB 运行到逻辑应用程序。一旦新文件保存在 BLOB 中,它就可以将事件发布到事件网格,您的逻辑应用可以在其中订阅该事件,然后您就可以运行您的工作流。您可以在每次保存文件时触发逻辑应用工作流,而不是以这种方式执行循环。

从此处了解有关事件网格的更多信息。

于 2020-10-25T18:28:12.040 回答