透過 Kudu API 實做 App Service WebJob 管理平台

  • 345
  • 0

前言

因為需要讓使用者可以自行執行和察看 App Service 上的 WebJob 的狀態,但是又不希望還需要另外開 Azure Portal 權限給使用者,因此會需要可以透過程式來控制 WebJob,找了一下發現 Kudu 是有提供 API 的,因此就透過 API 實做出類似 Kudu 後台的 WebJob 管理介面,在這一個管理平台上可以同時管理多組 App Service 站台底下的 WebJob,後面就來說明該如何設定和使用這一個平台。

說明

參數設定

先到 GitHub 下載完整的程式碼,在執行前需要設定 WebJob 的相關參數,這邊我設計可以支援多組 App Service 的設定。

參數名稱參數說明
NameWebJob 設定名稱,用來識別不同的設定組。
KudoUrlKudu 管理網址,格式為:https://{your app service name}.scm.azurewebsites.net/。
Account驗證帳號。
Password驗證密碼。

管理網址和帳號密碼可以透過下載發行設定檔來取得,打開下載的設定檔就可以找到相關的參數。

功能說明

首先執行起來會列出目前參數設定的 App Service 列表。

點選之後可以看到 App Service 上的 WebJob 列表,會顯示 WebJob 類型和目前執行得狀態。後面有兩個功能可以使用 Excute 點選下載會觸發執行 WebJob 的 Api 來啟動 WebJob,Detail 則會顯示更多 WebJob 的內容。

如果是 continuous 類型的 WebJob 會列出目前執行狀態和 Log。

如果是 triggered 類型的 WebJob 會列出過去的執行記錄,而需要看到執行記錄更詳細的執行 Log 可以再點選後面的 Detail 按鈕。

這邊就類似 Kudu 上面的執行 Log 的畫面。

結論

雖然 App Service 有 Kudu 管理後台可以察看和管理 WebJob,但是如果同時需要管理多個 App Service 上的 WebJob 或是像我需要控制使用者的權限,就可以使用這一個管理平台來管理和察看執行記錄,當然也可以參考程式碼將功能整合進去自己原本的後台之類的。

目前本管理平台還只是初版,UI 跟功能還有很大改善空間,未來會陸續調整和持續開發,如果大家對於本平台感興趣也可以提出一些功能或是程式上的建議,讓平台功能可以越來越多,越來越好。

參考資料