Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Logic App可从Azure Blob容器中动态获取Blob内容,而无需将文件名保存在路径中_Azure_Azure Storage_Azure Storage Blobs_Azure Logic Apps_Azure Blob Storage - Fatal编程技术网

Azure Logic App可从Azure Blob容器中动态获取Blob内容,而无需将文件名保存在路径中

Azure Logic App可从Azure Blob容器中动态获取Blob内容,而无需将文件名保存在路径中,azure,azure-storage,azure-storage-blobs,azure-logic-apps,azure-blob-storage,Azure,Azure Storage,Azure Storage Blobs,Azure Logic Apps,Azure Blob Storage,我正在使用Azure逻辑应用程序从我的Azure容器中获取Blob内容。Blob每月以以下格式存储在我的容器中:- 例如,mycontainer/invoice/20200101/invoice1.csv、mycontainer/invoice/20200201/invoice2.csv等等。 换句话说,每个月的发票都被动态地存储在我的容器中,其中包含一个表示月份和日期的文件夹,如示例所示。(2020-01-01,yyyyMMdd格式) 到目前为止,我能够找到在我的容器中创建的最新文件夹。在本例

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

到目前为止,我能够找到在我的容器中创建的最新文件夹。在本例中是10月,因为我们在10月。但我希望获取该文件夹中的最新文件

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

有什么建议吗?
谢谢

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


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

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

1.逻辑应用程序概述

2.前三个动作

3.第四和第五个动作

4.每个循环的“详细信息

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

5.最后两个动作

Get blob content”操作中的最后一个表达式是
body('List\u blob\u 2')?['value'][0]?['Name']

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

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

2.然后在操作“列出blobs 2”之后开始。添加两个“初始化变量”。

3.为每个循环添加另一个“请注意:从“为每个2列出blob 2”中选择
,但不要从“为每个2列出blob
”中选择
值。

4.每个循环的“中的详细信息。

fx ticks(…)
的表达式都是
ticks(items('For_each_2')?['LastModified'])

在“设置变量5”中,也可以从“列出blobs 2”中选择
名称,但不能从“列出blobs”中选择

5.然后添加“获取blob内容””操作,如下面的屏幕截图所示。

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

单击“For each”操作的
按钮,然后单击“设置”,启用
并发控制
,并将
并行度设置为
1

每个文件夹中只有一个文件?像
mycontainer/invoice/20200101/invoice1.csv
mycontainer/invoice/20200201/invoice2.csv
?或者每个文件夹中都有多个文件,例如
mycontainer/invoice/20200101/invoice1.csv
mycontainer/invoice/20200101/invoice2.csv
mycontainer/invoice/20200101/invoice3.csv
?确切地说,只有一个文件。但是文件名后面有一个唯一的名称。类似这样的->mycontainer/invoice/20200101/BillingVoice_c96d6c-497f-bb58-624237288cec.csv,mycontainer/invoice/20200201/BillingVoice_d5lhk6-cd6c-49769-bb58-92002288cec.csv,像soOk一样,我将在我这边测试它,然后提供下面的解决方案。但我想知道,如果文件夹名
20200101
20200101-20200131
Yes@Hury,文件夹名将是20200101-20200131、20200201-20200228,。。。。。。。。20201001-20201031、20201101-20201130等。这将是文件夹名称的格式。每个月,从第一天到最后一天,(yyyyMMdd格式)好的@Hassan,谢谢你的回复。是否还有一种方法可以通过存储多个文件而不是仅存储一个文件来实现此目的?@SD4您是说一个文件夹中有多个文件(
20201101-20201130
)?@SD4请稍等片刻!只是想澄清一下,多个文件存储在一个文件夹中。但是只需要获取添加的最新文件。让我们来看看。