接續前一篇,我們已經完成解壓縮 Pipeline 的設定,如果還沒看過的話建議先從下方連結觀看,接著我們希望 Pipeline 是能被自動觸發的,而不是每次都需要輸入檔案名稱來手動觸發,在這最後一篇中我們會完成這個設定。
相關連結:【Azure Data Factory】當 ZIP 上傳到 Blob Storage 時自動執行解壓縮(中)
在 Azure Data Factory 中新增觸發程序
先回想一下我們的情境,解壓縮管線已經可以正常運行,但我們希望的是它在 .zip 檔上傳到 Blob Storage 時自動執行一次,在 Data Factory 中可以使用觸發程序來完成這件事。
選到左側「管理」→「作者」→「觸發程序」→「新增」,右側會跳出下方畫面:
在類型的部份有根據特定時間執行的有「排程」與「輪轉視窗」兩類,而我們需要的是「儲存體事件」,接著選到上篇中建立的 Blob Storage 與 Container,這邊要注意 Container 的格式需要在前後都多一個斜線。
再來因為我們只想針對 .zip 檔上傳時來執行管線,在「Blob 路徑,結尾為」填入「.zip」,並在「事件」勾選「已建立 Blob」,最後點擊就可以了。
觸發程序建立完成 |
這時可以回到 Blob Storage 所在的資源群組中,會看到自動建立起來的 Azure Event Grid,其實Data Factory 中的儲存體事件就是使用 Event Grid 來完成的,所以如果看到群組內突然多了一個服務不要覺得奇怪喔!
建立觸發程序時自動帶起的 Event Grid |
在管線上新增觸發程序
接著我們要把做好的觸發程序與管線連接上,先回到管線的畫面上方,選擇「新增觸發程序」→「新增/編輯」
在管線上新增觸發程序 |
在彈出的視窗中選到剛剛建立的觸發程序後,如以下將「@triggerBody().folderPath」和「@triggerBody().fileName」設定上去,這樣管線就能抓到是由哪個 .zip 檔上傳所觸發的,同時針對這個檔案執行解壓縮。
全部發行
以上我們終於完成所有 Data Factory 的設定,最後別忘了點下左上角的「全部發行」!
記得點擊全部發行 |
最終測試
再次使用與上一篇相同的 test.zip 檔,而這次只需要上傳到 Blob Storage 中就好,不需要有其他額外動作,稍待幾秒鐘就會看到 test.txt 被解壓縮出來囉!
觸發解壓縮成功 |
可以回到 Data Factory Studio 中,選到左側「螢幕」→「回合」→「觸發程序執行」,這個頁面能監控觸發程序有沒有正常執行,如果上述測試沒有正常解壓縮,也可以到這個頁面來排查問題。
監控觸發程序 |
留言
張貼留言