Azure 部署 ASP.NET Core API (Visual Studio 部署和 GitHub Action)

Azure App Service 在中文介面中叫做「應用程式服務」,是一個平台即服務 (PaaS),能夠方便我們快速的將服務上雲。

建立 Azure 服務

開啟 Azure,點選所有服務 > Web & Mobile > 應用程式服務

建議將相關的服務使用同一個「資源群組」方便管理,例如 API Server 和相關的資料庫放在同一個資源群組中。
如果不知道怎麼選擇地區可以查看 這篇文章 ,筆者最常選擇的就是 East Asia ,因為延遲幾乎都可以在 50 ms 以下。
在測試時「定價方案」可以先嘗試使用「免費 F1」是 1 CPU 1 GB RAM,每天可以使用 60 分鐘,但是很常會因為資源不足建立失敗,就只能使用最便宜的 B1 方案,目前最便宜是 Southeast Asia ,每小時 NT$0.582 ,但是 ping 大概會到 85 ms 左右

確認後就直接點選建立:

然後點選組態,中將 SCM 基本驗證發佈認證設定為「開啟」

使用 Visual Studio 部署

接下來就是要將程式碼發送到 Azure 中來部署,這裡先來示範最簡單的方式,就是透過 Visual Studio 的發佈功能。

開啟專案後在右側的方案總管中使用滑鼠右鍵點擊專案 > 發佈 ,選擇 Azure 後點選下一步:

如果剛剛在 Azure App Service 中建立的步驟和筆者一樣選擇代碼和 Linux 的話這裡就是選擇 Azure App Service (Linux),點選下一步

透過右上角的 Account 登入剛剛建立 Azure App Service 的帳號後就可以看到剛剛建立的專案,選擇後點選下一步

完成後點選發佈:

發佈成功後回到 Azure 中點選 部署中心,就會查看到部署紀錄:

點選「概觀」,就可以點選「預設網域」的連結進去查看部署好的網頁了:

不過在 ASP.NET Core Web API 專案預設情況下 Swagger UI 頁面只會在開發環境中啟用,在生產環境(正式環境)中就會看不到,所以要測試只能直接呼叫 API 做測試,例如專案預設的 API : /WeatherForecast
(請替換為自己的連結)
    
https://webapplicationasyncvssynctest0529.azurewebsites.net/WeatherForecast
    

透過 GitHub Action 部署

要手動上版很麻煩,如果有將程式碼放到 GitHub 中,那我們可以很簡單的使用 GitHub Action 達成(免費帳號私人儲存庫每個月有 2,000 分鐘的 Linux 時間) 點選「部署中心」,來源選擇 GitHub,第一次使用需要點選授權,給予 GitHub 的權限,因為他會幫你 Commit 來設定 GitHub Action

如果這個 GitHub 儲存庫是放在自己的 GitHub 帳號下面而不是其他組織,就選擇自己的 GitHub 帳號,設定好儲存庫和分支後將下面的驗證類型改為「基本驗證」並儲存。

這時候會發現剛剛的 GitHub 儲存庫自動增加了一個 Commit

然後 GitHub Action 就開始自己動起來了:

整個部署過程大約需要花費 1 分 22 秒:

在 Azure 中也可以看到部署成功:

之後把程式碼推送到 GitHub 後就會自動更新了,不需要手動發佈/上版。

留言