簡體   English   中英

Azure Blob 存儲觸發器函數未觸發

[英]Azure Blob Storage trigger Function not firing

創建使用應用服務計划進行托管的 Azure 函數 blob 觸發器模板時,該函數在配置為“始終開啟”時正確觸發。 我通過在 Azure 控制台中運行應用程序並通過 Microsoft Azure 存儲資源管理器添加文件進行了測試。 在查看函數的Monitor屏幕時可以找到這些觸發器的日志。

使用 Blob 存儲模板創建相同的函數但這次選擇“消耗”而不是應用服務計划時,監視器下沒有顯示任何內容。 當我在 Azure 控制台中運行測試或將文件添加到目標 Blob 容器時,這些觸發器日志不會顯示在monitor屏幕上。

當將新文件添加到 Blob 容器時,如何確保觸發此觸發器模板?

可以在兩種不同的模式下運行 Azure Functions:消耗計划和應用服務計划。 您必須在創建函數應用期間選擇托管計划的類型。 之后你不能改變它。

消費計划

消耗計划會在您的代碼運行時自動分配計算能力,根據需要擴展以處理負載,然后在代碼未運行時縮減。 您無需為空閑 VM 付費,也無需提前預留容量。 這是無服務器應用程序模型。 消費計划背后的魔法都是通過規模控制器完成的。 縮放控制器通過添加額外的函數應用實例來自動縮放 CPU 和內存資源。 縮放基於觸發其功能的事件數量。

應用服務計划

在應用服務計划中,你的函數應用在基本、標准、高級和獨立 SKU 上的專用 VM 上運行。 您可以通過選擇不同的應用服務計划來擴展,但函數應用始終在運行。 縮放是手動完成的,或者您可以啟用自動縮放。

由於性質不同,應用服務計划在啟用后始終可用,因此它幾乎立即觸發。 在基於消耗的計划中,如果不使用它,它會進入空閑模式。

補充參考:

https://stackoverflow.com/a/54094025/6049604

希望能幫助到你。

Mohit提供的解釋是對的,但我想在我測試后添加一些關於它的信息。

我在我身邊再次測試,第一次測試時,該功能被blob存儲成功觸發。 第二次,我將函數留在那里片刻,然后將文件上傳到 Blob 存儲。 大約 13 分鍾后,我才看到登錄“監控”屏幕。

我覺得有兩個原因,一個是Mohit提到的,消費計划會導致功能閑置一會兒。 據我所知,如果我們將函數留在那里大約 20 分鍾,它會進入睡眠狀態(不是熱啟動)。 因此,當文件上傳到 blob 存儲時,它需要幾分鍾才能啟動。 然后“監視器”也需要大約 5 分鍾才能顯示登錄屏幕。

由於上述兩個原因,我等待了大約13分鍾才能看到“監視器”中的日志。 所以也許你沒有看到日志,因為它出現得太晚了。 對於這個問題,我覺得你可以選擇不在乎費用的app服務計划或者不在乎等待時間的消費計划。(或者選擇F1:免費的app服務計划) .

希望對你的問題有所幫助~

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM