前言

[Azure 筆記] 前言


原文

Swap deployment slots


Manually swapping deployment slots

你可以依從以下步驟來進行 swap

  1. 在 Azure Portal 點選你的 app
  2. 打開 “Deployment slots” 然後點擊”Swap”
  3. 在對話框中選擇 Source slot 和 Target slot
    在通常情況下 Source slot 會是你的 production slot
  4. 選擇 “Source Changes” 和 “Target Changes” 來查看你的設置有沒有問題
  5. 你可以點擊 “Swap” 來馬上執行 swap
    或是你可以點擊 “Swap with preview” 來查看你的 target slot 會變成怎樣
  6. 當你執行了 Swap 之後,你可以點擊 “Close” 來關掉對話框

 

Swap with preview (multi-phase swap)

若你使用了 “Swap with preview”
那你可以在把變更應用到 production slot 前查看和驗證變更
若你在過程中取消了 swap
App Service 會把之前的 configuration 重新應用到 source slot
Rollback 到 swap 之前的狀態

在上面的第5步點選了 “Swap with preview” 後
即可開始這個 multi-phase swap
整個過程分為兩個 phase

在 phase 1
你可以在對話框中查看 source slot 有什麼 configuration 變更
而在 phase 1 結束後
Source slot 已經應用了 target slot 的 configuration
你可以通過以下的 URL 接入你的 source slot 來檢查有沒有問題
https://<app_name>-<source-slot-name>.azurewebsites.net

如果你發現有任何問題的話
你可以在 “Swap action” 中點擊 “Cancel Swap”
來 rollback source slot 到 swap 之前的狀態

在你確認變更後的 source slot 可以被 swap 到 target slot 後
你可以在 “Swap action” 中點擊 “Complete Swap” 來把 source slot swap 到 target slot

在 swap 完成後
請點擊 “Close” 來關閉對話框


Configure auto swap

除了手動觸發 swap
你也可以設置 auto swap
在設置了 auto swap 後
每當你的 deployment slot 有 code change
App Service 就會自動觸發 swap

要注意的是
目前 auto swap 還不支援 web apps on Linux 和 Web App for Containers

你可以以下列步驟來啟用 auto swap

  1. 在 Azure Portal 點選你想要 auto swap 的 deployment slot
    並打開 “Configuration” > “General settings”
  2. “Auto swap enabled” 設置為 “On”
  3. “Auto swap deployment slot” 選擇 target slot
  4. 點擊 “Save”

Specify custom warm-up

如果你需要 custom warm-up 的話
你可以在 web.config 設置 applicationInitialization
Azure 會等待 custom warm-up 完成才進行 swap

下面是一個 web.config 的例子

<system.webServer>
    <applicationInitialization>
        <add initializationPage="/" hostName="[app hostname]" />
        <add initializationPage="/Home/About" hostName="[app hostname]" />
    </applicationInitialization>
</system.webServer>

如果你想知道可以怎樣設置 applicationInitialization
請查看 Most common deployment slot swap failures and how to fix them

 

除了 web.config 你也可以在 app setting 內有三個設置都是跟 warm-up 相關的

  • WEBSITE_SWAP_WARMUP_PING_PATH
    • 用作在 swap 之後 warm-up 你的 app 的路徑
    • / 開首的字串,例如 /statuscheck
    • 預設為 /
  • WEBSITE_SWAP_WARMUP_PING_STATUSES
    • 在接收來自 WEBSITE_SWAP_WARMUP_PING_PATH 的 response 時
      那些 HTTP response code 可被視為成功 warm-up
    • 以逗號分隔的 HTTP code,例如 200,202
      在這個例子中,如果 WEBSITE_SWAP_WARMUP_PING_PATH 傳回 200 和 200 以外的 status code 都會被視為 warm-up 失敗
    • 預設為任何 HTTP code 都會被視為 warm-up 成功
  • WEBSITE_WARMUP_PATH
    • 用作在 restart (不只是 swap) 後用來 warm-up 你的 app 的路徑
    • / 開首的字串,例如 /statuscheck
    • 預設為 /

Roll back and monitor a swap

如果是在 swap 完成後才發現有問題發生
請馬上再 swap 一次以 rollback

如果 swap 耗時很久都仍沒有完成
請查看 “Activity log” 以取得更多資訊

  1. 在 Azure portal 打開你的 app
  2. 選擇 “Activity log
  3. Swap 的相關記錄在 log query 中會被顯示為 Swap Web App Slots
    你可以展開它並選擇其中的 operation 或 error 以取得更多資訊

Reference

https://learn.microsoft.com/en-us/azure/app-service/reference-app-settings?tabs=kudu%2Cdotnet

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Trending