假定咱們有某個應用程序會將文件存儲到Azure Blob中,存儲在Blob中的數據保存七天,七天之後須要對其進行刪除。這需求可使用Azure PowerShell Runbook來完成,可是我想看看是否能夠用不多甚至沒有代碼來完成。通過一番探索我發現Azure Logic App很是適合這種狀況。你能夠用Logic App建立一些強大的東西。所以,在本文中,我將向各位展現如何在使用Logic App刪除Blob中超過X天的文件。app
至於Logic App如何建立,在此我就不作過多的說明了,各位若是有興趣能夠參考我以前的Blog。當咱們建立好Logic App之後打開新的邏輯應用程序。咱們應該會看到「邏輯應用程序設計器」,點擊「邏輯應用程序設計器」—「 Blank Logic App」:less
在搜索鏈接器和觸發器框中搜索「Recurrence」,單擊「Recurrence」觸發器:ide
將間隔設置爲您但願邏輯應用程序每隔幾天運行一次。在此我選擇天天都運行,而後單擊「顯示高級選項」。在這裏選擇咱們但願邏輯應用程序運行的時區和時間。我選擇了UTC+8和midnight。完成後單擊下一步。測試
在搜索鏈接器和觸發器框中搜索「blob」,單擊「List blobs」觸發器:設計
輸入鏈接名。咱們會看到一個存儲賬戶列表,單擊要清理的存儲賬戶。而後點擊建立,如今要求咱們指定Container。單擊文件夾圖標,而後選擇要清理的Container:3d
在搜索鏈接器和觸發器框中搜索「Filte」,單擊「Filter array」觸發器:blog
選擇list blobs下的Value:ip
單擊「 在高級模式下編輯」,而後鍵入如下內容以清除超過7天的文件。而後單擊下一步:get
@less(item()?['LastModified'], addDays(utcNow(), -7))
在搜索鏈接器和觸發器框中搜索「For each」,單擊「For each」觸發器:it
選擇Filter array下的「Body」:
單擊「 添加操做」。
搜索「Delete blob」,點擊「Delete Blob」:
選擇「Path」:
到此咱們的logic app就已經設計完成,點擊保存便可:
讓咱們測試一下Logic App,確保它可以正常攻錯。正如您在個人Blob存儲中看到的,我有一些文件,它們有不一樣的修改日期,很大一部分是超過7天的。
對於剛剛建立的Logic app咱們若是想要當即運行只須要點擊「Run Trigger」就能夠了:
點擊運行之後能夠在下方看到運行記錄:
運行完成後咱們返回blob能夠看到在7天前建立的文件均已被刪除:
這種清理Blob存儲中文件的方法很是簡單,而且不須要像使用Azure自動化Runbook那樣須要任何特殊的Azure RunAs賬戶。