Azure Static Web Apps With Azure DevOps


  1. 說明
    1. Create Static Web App In Azure
    2. Azure DevOps
    3. Custom Domain
  2. 後續實驗
  3. 參考資料

使用 Azure Static Web Apps 進行靜態網站 Hosting,原始碼專案保存於 Azrue DevOps。享受推送專案自動部署的方便性,同時也為未來 Migration Hosting Server 預做練習。

logo

說明

圖片來源:azure.microsoft.com

Azure Static Web App 是新興的靜態資源 Hosting 服務,類似於 GitHub Pages 但 Azure Static Web App 除免費層級外,另提供商業生產層級的服務,可以作為正式的營運環境用途。

此外 Azure Static Web App 具有下列特色:

  • 靜態資源進行全球性的部署,增加使用者連線速度
  • 整合 Azure Functions 提供 API 功能
  • 與 Gituhb 或 Azure DevOps 高度整合,CI / CD 部署環境
  • 提供自動更新的 SSL 憑證
  • 預覽部署成果的機制

相類似於 Google Firebase 的 Hosting 服務,Firebase 從 NoSQL Database 起家,並整合了 Google Analytics 等資源,對於行動裝置的開發也能夠扮演後端伺服器功能。

而 Azure Static Web App 的資料庫則是以 Cosmos DB 為主,但畢竟本體是 Azure 不同於 Firebase 一個專案下分別設定 Database、Authentication、Storage 的便利性,Azure 的上手門檻則較高,需要使用不同的 Azure 資源搭建,但這個新產品仍是讓人耳目一新,並期待未來有與 Azure 資源更好的整合,讓開發者能夠享受更便利的雲端部署環境。


本次將依照下列的微軟教學進行本次練習,並額外加上 Custom Domain 的設定,另規劃再以專文進行 Vue.js 專案練習以及再使用 GitHub Action 進行部署練習。

教學課程:使用 Azure DevOps 發佈 Azure 靜態 Web Apps

Create Static Web App In Azure

首先登入 Azure Portal 後,搜尋 Static Web App 後,進行下列建立動作:

選擇「Manage deployment token」可以查看部署程式碼所需要的 token,稍後在 Azure DevOps 設定 pipelines 的時候會需要。

Azure DevOps

使用微軟提供的示範 Repo,加入到 Azure DevOps 的 Project 當中。

https://github.com/staticwebdev/vanilla-api.git

日後程式碼的更新則使用 git 的 commit / push 方式進行。


接著進行 Pipeline 的設定

首先設定原始碼的來源,本次以 Azure DevOps 為例

接著選擇 Project 中的 Repo

選擇要使用的 pipeline configuratio,本次是純粹的 JS Web App,選擇 Starter Pipeline

接著設定 YAML,相關重要的部署設定都是由 YAML 這邊進行,例如告知專案編譯後的位置、azure function 所需要的 api 位置等等:

trigger:
  - main

pool:
  vmImage: ubuntu-latest

steps:
  - checkout: self
    submodules: true
  - task: AzureStaticWebApp@0
    inputs:
      app_location: '/'
      api_location: 'api'
      output_location: ''
      azure_static_web_apps_api_token: $(deployment_token)

再將從 Azure Portal 取得的 Deployment Token 加入到 Variable 當中,Variable 名稱設定為 deployment_token

完成後進行儲存並執行,稍等一下就可以從 Runs 中觀察到結果:

最後可以從 Azure Portal 中 Web Static App 的配發網址進行連線驗證成果。

Custom Domain

Custom Domain 的設定相當容易,只要先從 DNS Provider 端加入一組 CNAME,分別對應要使用的 subdomain 以及 Web Static App 配發的網址,等待生效後再從 Azure Portal 的 Custom Domain 進行設定即可。

Google DNS 大約十分鐘後就生效了,從 Azure Portal 設定 Custom Domain 後另等約十分鐘完成 Custom Domain 的設定。

後續實驗

  1. 實作 Vue.js 專案的開發與部署

  2. 實作 GitHub Action 的部署

參考資料

Azure | Static Web Apps

Azure | 什麼是 Azure 靜態 Web 應用程式?