天天看點

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

在使用Azure Functions Blob Trigger 時,會出現container裡已經存在的blob會觸發functions執行,但我們想隻針對新上傳的檔案進行觸發。

原因:

Azure Functions Blob trigger是通過blob 回執判斷某個blob是否已經執行過觸發,blob回執記錄在AzureWebJobsStorage這個storage account中,

該storage account 配置在local.setting.json中:

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

觸發後,會在雲端Storage Account中的azure-webjobs-hosts中看到如下圖的回執記錄:

因為回執記錄裡不包含之前存在的檔案,故而會依次觸發已經存在的檔案,直到全部觸發一遍。

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

針對此問題,可以使用 事件網格觸發器  代替 blob 觸發器,

參考文檔:

https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=csharp#blob-receipts

https://docs.microsoft.com/zh-cn/azure/event-grid/resize-images-on-storage-blob-upload-event?tabs=dotnet

操作示範如下:

重點圖文步驟:

建立Azure Functions Event Grid Trigger;

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

釋出到雲端;

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

在Functions內建頁面添加事件訂閱;

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

選擇Storage Account 作為Topic Type,然後選擇要監控的Storage Account:

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

可以選擇多個事件類型:

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

終結點是要将事件發送給誰,這裡預設選擇好了我們剛建立的Functions,直接點選儲存即可。

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

上傳blob 觀察Functions 日志;

在監控日志的data中能看到blob相關資訊,此時解析data的值,就可以拿到具體哪個blob上傳了,然後就可以對該blob進行操作了。

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

聲明:

點選可查閱本站文章目錄 《文章分類目錄》

本站所有内容僅代表個人觀點,如與官文檔沖突,請以官方文檔為準。

可在本頁面下方留言或通過下方聯系方式聯系我:

微信:wxyusz;郵箱:[email protected]

歡迎關注公衆号“雲計算實戰”,接收最新文章推送。

Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式
Azure Functions Blob Trigger 觸發已經存在的檔案的處理方式

本作品由Sean Yu 采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協定進行許可。

歡迎轉載、使用、重新釋出,但務必保留文章連結:https://www.51azure.cloud,且不得用于商業目的。