Reputation: 479
I'am using an Azure Logic app to get Blob contents from my Azure container. The Blobs are getting stored monthly in my container in the format :- Eg. mycontainer/invoice/20200101/invoice1.csv, mycontainer/invoice/20200201/invoice2.csv, so on & so forth. In other words, every month's invoice is getting stored in my container dynamically with a folder denoting the month and day as in the example. (2020-01-01, yyyyMMdd format)
So far, I'am able to pick up the latest folder created in my container. That is October in this case, since we're in Oct. But I wish to pick up the latest file present in that folder.
My current workflow is as follows:-
Any advice regarding this ? Thanks!
Upvotes: 1
Views: 5883
Reputation: 15754
I provide entire logic app for your reference, most of actions are same as yours:
1. The overview of the logic app
The expression in "Set variable" is int(substring(items('For_each')?['Name'], 0, 8))
and the expression in "Set variable 3" is replace(items('For_each')?['Name'], '/', '')
The last expression in "Get blob content" action is body('List_blobs_2')?['value'][0]?['Name']
====================================Update=================================
1. Delete the last action "Get blob content" of your logic app.
2. Then we start after the action "List blobs 2". Add two "Initialize variable".
3. Add another "For each" loop. Please note: choose value
from "List blobs 2" into "For each 2" but not choose value
from "List blobs" into "For each 2".
4. The details in the "For each 2" loop.
The expressions of both fx ticks(...)
are ticks(items('For_each_2')?['LastModified'])
And in "Set variable 5", also choose the Name
from "List blobs 2" but not from "List blobs".
5. Then add "Get blob content" action like below screenshot.
6. By the way: Please do this setting for all of the "For each" loop action in your logic app before you run the logic app. Otherwise, the result may be incorrect.
Click ...
button of the "For each" action and click "Settings", enable Concurrency Control
and set Degree of Parallelism
as 1
.
Upvotes: 2
Reputation: 442
You can run an Event Grid trigger from your BLOB to Logic App. As soon as a new file is saved in the BLOB it can publish an event to Event Grid where your Logic App can subscribe to that event and then you can run your workflow. Rather than doing a loop this way you can trigger a logic app workflow every time a file is saved.
Learn more about Event Grid from here.
Upvotes: 0