假定我們有某個應(yīng)用程序會將文件存儲到Azure Blob中,存儲在Blob中的數(shù)據(jù)保存七天,七天以后需要對其進行刪除。這需求可以使用Azure PowerShell Runbook來完成,但是我想看看是否可以用很少甚至沒有代碼來完成。經(jīng)過一番探索我發(fā)現(xiàn)Azure Logic App非常適合這種情況。你可以用Logic App創(chuàng)建一些強大的東西。因此,在本文中,我將向各位展示如何在使用Logic App刪除Blob中超過X天的文件。
創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗,為客戶提供超值的營銷型網(wǎng)站建設(shè)服務(wù),我們始終認為:好的營銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個人等客戶提供了網(wǎng)站建設(shè)、網(wǎng)站設(shè)計服務(wù),以良好的商業(yè)信譽,完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
至于Logic App如何創(chuàng)建,在此我就不做過多的說明了,各位如果有興趣可以參考我之前的Blog。當我們創(chuàng)建好Logic App以后打開新的邏輯應(yīng)用程序。我們應(yīng)該會看到“邏輯應(yīng)用程序設(shè)計器”,點擊“邏輯應(yīng)用程序設(shè)計器”—“ Blank Logic App”:
在搜索連接器和觸發(fā)器框中搜索“Recurrence”,單擊“Recurrence”觸發(fā)器:
將間隔設(shè)置為您希望邏輯應(yīng)用程序每隔幾天運行一次。在此我選擇每天都運行,然后單擊“顯示高級選項”。在這里選擇我們希望邏輯應(yīng)用程序運行的時區(qū)和時間。我選擇了UTC+8和midnight。完成后單擊下一步。
在搜索連接器和觸發(fā)器框中搜索“blob”,單擊“List blobs”觸發(fā)器:
輸入連接名。我們會看到一個存儲帳戶列表,單擊要清理的存儲帳戶。然后點擊創(chuàng)建,現(xiàn)在要求我們指定Container。單擊文件夾圖標,然后選擇要清理的Container:
在搜索連接器和觸發(fā)器框中搜索“Filte”,單擊“Filter array”觸發(fā)器:
選擇list blobs下的Value:
單擊“ 在高級模式下編輯”,然后鍵入以下內(nèi)容以清除超過7天的文件。然后單擊下一步:
@less(item()?['LastModified'], addDays(utcNow(), -7))
在搜索連接器和觸發(fā)器框中搜索“For each”,單擊“For each”觸發(fā)器:
選擇Filter array下的“Body”:
單擊“ 添加操作”。
搜索“Delete blob”,點擊“Delete Blob”:
選擇“Path”:
到此我們的logic app就已經(jīng)設(shè)計完成,點擊保存即可:
讓我們測試一下Logic App,確保它能夠正常攻錯。正如您在我的Blob存儲中看到的,我有一些文件,它們有不同的修改日期,很大一部分是超過7天的。
對于剛剛創(chuàng)建的Logic app我們?nèi)绻胍⒓催\行只需要點擊“Run Trigger”就可以了:
點擊運行以后可以在下方看到運行記錄:
運行完成后我們返回blob可以看到在7天前創(chuàng)建的文件均已被刪除:
這種清理Blob存儲中文件的方法非常簡單,并且不需要像使用Azure自動化Runbook那樣需要任何特殊的Azure RunAs帳戶。