The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

認識 Azure Web App 內建的 Kudu 引擎

很多人可能不知道 Azure Web App ( 之前叫做 Azure Web Sites ) 背後有個強大的管理工具叫做 “Kudu”,這個 Kudu 引擎可以用來管理 Azure Web App 網站的 Git 部署、Web Jobs,並提供各種方便的管理工具像是 Debug console、Process explorer、記憶體傾印 (Memory dump)、查看環境變數與提供各式網站檢測工具等等,功能十分強大,有在用 Azure Web App 的人絕對要花點時間了解。

進入點

首先,Kudu 其實是以一個網站的形式運作,所以就會有個網址,但這個網址在 Azure 管理入口並沒有正式的進入點,所以你必須知道進入 Kudu 網站的網址規則。

一般來說,我們新增一個 Azure Web App 網站後,假設我們設定網站名稱為 aspnetmvc6 的話,預設 Azure Web App 網站網址就會是 https://aspnetmvc6.azurewebsites.net,那麼我們的 Kudu 網站就一定會是 https://aspnetmvc6.scm.azurewebsites.net 這個網址,所以網址很容易記憶。

 

登入方式

預設 Kudu 提供兩種登入方式,分別是:

  • Microsoft 帳戶 (單一簽入)
  • 基本驗證 (Basic Auth)
    • 用這種方式登入有個好處,你如果要授權其他人登入 Kudu 進行管理,可以不用給對方你的 Microsoft 帳戶的帳號密碼,只要給他 發行設定檔 (Publish Profile) 中列出的那組 FTP 帳號密碼即可成功登入!
    • 不過,透過這用這種方式登入 Kudu 網站,其登入網址稍微有點不太一樣,以下是差異比較:
    • 使用基本驗證登入時,登入畫面如下圖示:
      image
    • 注意事項:
      • 在你下載發行設定檔之後,該檔案內容是 XML 格式,裡面會有一組 FTP 帳號密碼,其中帳號的部分會長這樣:aspnetmvc6\$aspnetmvc6
      • 登入 Kudu 時,請注意帳號必須只能輸入反斜線 ( \ ) 之後的帳號名稱,否則會登入失敗!以上例來說帳號必須為:$aspnetmvc6
    • 跳過登入視窗的直接登入的技巧

 

Kudu 首頁

image

Kudu 首頁列出了幾個 Azure Web App 網站執行環境中最基本的環境變數,其中網站資料夾固定位於 D:\home 實體目錄下;網站暫存目錄則放在 D:\local\Temp\ 目錄下。事實上,這裡的 D:\home 並非實體目錄,而是一個虛擬出來的實體目錄!

怎麼說呢?!因為無論是哪一個 Azure Web App 網站,網站資料夾都是 D:\home 這個路徑,這樣有助於簡化網站的管理,因為大家都用使用相同的路徑,當部署網站到不同 Azure Web App 站台時,就不用額外修改設定了,是不是很棒! ^^

首頁下方的 REST API 可以讓你用 HTTP 的方式取得目前這個網站的各種細部資訊與檔案,威力十分強大,你可以用來下載檔案、查詢設定、查詢 w3wp.exe 的記憶體耗用情況、觸發 WebJobs 工作、…等等。

 

Environment 查詢系統資訊與環境變數

這個頁面列出實際執行這個網站的主機系統資訊,有系統開機時間、作業系統版本、幾顆 CPU、CLR 版本、主機名稱、…等等。

另外還有網站最終套用的 AppSettings 設定與 Connection Strings 連接字串設定,有一些不在 web.config 的設定就是 Azure Web App 額外提供的應用程式設定參數與連接字串。

在來就是 Environment variables 環境變數、PATH 執行檔路徑、HTTP headers 則是用戶端傳到 Azure Web App 時會看到的 HTTP 標頭、Server variables 則是從伺服器端看到的伺服器變數。

 

Debug console 偵錯主控台

Kudu Console 裡面同時提供 CMD (Command Prompt) 與 PowerShell 兩種指令列環境,讓你可以直接在 Azure Web App 底層的虛擬機器中執行任意命令,一整個很 Geek 啊! XD

 

Process Explorer

一個 Web 版的 Process Explorer,說他是進階版的工作管理員一點也不為過,而且完全 Web 化,線上就可以看每一個執行程序(Process)的完整細節,太強大了啊!

 

Tools 工具集

這邊內建提供了以下功能:

  • Diagnostic dump: 下載診斷記錄檔,例如 eventlog、kudu、應用程式紀錄、…等等。(其實就是 D:\home\LogFiles 整個資料夾的內容)
  • Log stream: 列出 Kudu 網站在執行過程中所有輸出的追蹤紀錄。
  • Web hooks: 讓你設定當 Kudu 的部署作業完成後,自動發出 HTTP POST 到指定網址。
  • Download deployment script: 下載 Kudu 專用的發佈指定碼。
  • Support: 這會連到 Azure App Service Support 頁面 (目前還在 Preview 階段),幫助你看清楚網站的真實運作狀況,一樣是功能強大的玩意。

 

Site extensions 網站擴充套件

image

Azure Site Extensions 幫你擴充 Kudu 網站的各種管理能力,目前已經有數十個擴充套件可以安裝,日後也還會陸續增加!

注意:有些擴充套件安裝好之後,要將網站重新啟動才會生效。

 

相關連結