建立 Blob 時執行 Azure 函數
假設您是一名攝影師,並有一個網站顯示每日相片。 因為您很忙碌,所以並沒有一致的上傳排程,但您想要在上傳相片時通知您的粉絲。 您決定建立 Azure 函式,以在每次上傳影像至您的 Azure 儲存體 Blob 容器時自動傳送推文。
在這裡,您將瞭解如何建立 Blob 觸發程式,並指示它監視 Azure 記憶體 Blob 容器中的特定位置。
何謂 Azure 儲存體?
Azure 儲存體是 Microsoft 雲端儲存體解決方案,支援所有類型的資料,包括:Blob、佇列和 NoSQL。 Azure 記憶體的目標是提供高度可用、安全、可調整及管理的數據記憶體。
在本課程模組中,我們不會將焦點放在 Azure 記憶體上太多。 相反地,我們希望使用它來儲存可啟動函式運行的資料塊。
什麼是 Azure Blob 儲存體?
Azure Blob 記憶體是一種物件記憶體解決方案,其設計目的是要儲存大量的非結構化數據。
例如,Azure Blob 儲存體相當適合用來執行下列作業:
- 儲存檔案
- 提供檔案
- 串流視訊和音訊
- 記錄資料
有三種類型的 Blob:區塊 Blob、附加 Blob 和分頁 Blob。 區塊 Blob 是最常見的類型。 它們可讓您有效率地儲存文字或二進位資料。 附加 Blob 和區塊 Blob 相似,但其設計更適合附加作業,例如建立要持續更新的記錄檔。 最後,分頁 Blob 是由分頁所組成,專為頻繁的隨機讀取和寫入作業而設計。
什麼是 Blob 觸發程序?
Blob 觸發程序是在您上傳或更新 Azure Blob 儲存體中的檔案時執行函式的觸發程序。 Azure Functions 會定期檢查記憶體容器是否有變更,這可能會導致一些延遲。 在 Blob 容器上觸發時,有一些方法可減少此延遲。
若要建立 Blob 觸發程序,請建立 Azure 儲存體帳戶,並提供觸發程序監視的位置。
如何建立 Blob 觸發程序
就像我們到目前為止學到的其他觸發程式一樣,您可以在 Azure 入口網站中建立 Blob 觸發程式。 在 Azure 函數中,從預先定義的觸發程序類型清單選取 [Blob 觸發程序]。 接著,輸入您想要在建立或更新 Blob 時執行的邏輯。
務必了解的一個設定是 [路徑]。 Path 會告知 Blob 觸發程式要監視的 Blob 容器,以查看 Blob 是否已上傳或更新。 根據預設,[路徑] 值為:
samples-workitems/{name}
讓我們將此概念分成兩個部分: samples-workitems 和 {name}。 第一個部分 samples-workitems代表觸發程式所監視的 Blob 容器。 第二個部分 {name} 表示每種文件類型都會導致觸發程式叫用函式。 因為沒有任何篩選條件,所有會叫用函式。 例如,我們可以使用如下的語法,讓觸發程序只在新增 PNG 檔案時才叫用函式:
samples-workitems/{name}.png
這個概念的最後一個重要資訊片段是文字 名稱。 此名稱代表 Azure 函式中接收已新增檔案名稱的參數。 例如,如果我們上傳名為 resume.txt的檔案,我的 Azure 函式會透過名為 name 的參數,以字串的形式接收該值。
當 Blob 觸發程序在您的 Azure 儲存體 Blob 帳戶中的特定位置看到活動時,就會叫用 Azure 函式。 您可以透過在 Azure 入口網站中修改 [路徑] 值來設定要監視的位置。