使用Azure Logic App从多个文件夹获取Blob内容

时间:2020-11-05 10:54:11

标签: azure azure-storage-blobs azure-logic-apps azure-blob-storage

我有一个Azure逻辑应用程序,每个月都会获取存储在Azure容器中的blob内容。 Blob存储在文件夹->例如。 mycontainer / RG1 /每月发票/20200101-20200131/invoice1.csv。
通过设置“列表斑点”触发器中的路径,我可以从RG1中获取内容-> mycontainer / RG1 / MonthlyInvoice /

现在,我需要以相同的方式获取内容,但要使用不同的文件夹。像-> 例如。 mycontainer / RG2 / MonthlyInvoice / 20200101-20200131 / invoice1.csv, mycontainer / RG3 / MonthlyInvoice / 20200101-20200131 / invoice1.csv, mycontainer / RG4 / MonthlyInvoice / 20200101-20200131 / invoice1.csv

(注意:使用相同的容器)

对此有何建议?谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用“列表Blob”操作,则应该已经拥有了所需的所有信息。

我假设逐月更改的已知值为“ 20200101-20200131”。我刚刚创建了一个用于测试的参数,但是您可以通过将表达式与utcNow!一起使用来使其动态化。

使用与上面相同的文件夹结构创建一个存储帐户和容器。

逻辑应用程序的第一部分(重复设置为每月一次): enter image description here

逻辑应用程序的后半部分:

enter image description here

list blob操作似乎列出了容器内的所有文件。我正在使用路径和条件检查,以查看路径是否包含参数中的日期值。

{
            "Id": "JTJmYWNpaW52b2ljZXMlMmZyZzIlMmZNb250aGx5SW52b2ljZSUyZjIwMjAwMTAxLTIwMjAwMTMxJTJmaW52b2ljZTEuY3N2",
            "Name": "invoice1.csv",
            "DisplayName": "invoice1.csv",
            "Path": "/aciinvoices/rg2/MonthlyInvoice/20200101-20200131/invoice1.csv",
            "LastModified": "2020-11-05T19:03:07Z",
            "Size": 12,
            "MediaType": "text/csv",
            "IsFolder": false,
            "ETag": "\"0x8D881BD6E90C327\"",
            "FileLocator": "JTJmYWNpaW52b2ljZXMlMmZyZzIlMmZNb250aGx5SW52b2ljZSUyZjIwMjAwMTAxLTIwMjAwMTMxJTJmaW52b2ljZTEuY3N2",
            "LastModifiedBy": null
        }

enter image description here

这是我在测试中使用的参数。

enter image description here

我在这里做了一些假设,所以请您提供更多有用的细节。这至少应该可以帮助您入门。