檢查位置交換
當您將兩個位置交換時 (例如從預備位置到生產位置),App Service 會完成以下程序,以確保目標位置不會發生停機:
將下列設定從目標位置 (如生產位置) 套用至來源位置的所有執行個體:
- 位置專屬應用程式設定及連接字串 (如果適用)。
- 持續部署設定 (如已啟用)。
- App Service 驗證設定 (如已啟用)。
上述任一案例都會致使來源位置中的所有執行個體重新啟動。 在使用預覽交換期間,這會指出第一個階段的結尾。 交換作業會暫停,您可以驗證來源位置是否能夠與目標位置的設定正確搭配運作。
等候來源位置中的每個執行個體重新啟動。 如果有任何執行個體無法重新啟動,交換作業將會還原對來源位置的所有變更,並停止作業。
如果已啟用本機快取,請對來源位置每個執行個體上的應用程式根目錄 (「/」) 發出 HTTP 要求,以觸發本機快取初始化。 請等候每個執行個體傳回任何 HTTP 回應。 本機快取初始化會致使每個執行個體再次執行重新啟動。
如果啟用自動交換並設定了自訂準備動作,請對來源位置每個執行個體的應用程式根目錄 (「/」) 發出 HTTP 要求,以觸發應用程式初始化。
若未指定
applicationInitialization
,請在每個執行個體上對來源位置的應用程式根目錄觸發 HTTP 要求。執行個體若傳回了任何 HTTP 回應,即會被視為已準備就緒。
如果成功準備來源位置上的所有執行個體,請交換兩個位置的路由規則,交換這兩個位置。 完成此步驟後,目標位置 (例如生產位置) 就會有先前已在來源位置準備就緒的應用程式。
既然來源位置有先前已在目標位置中預先交換的應用程式,請套用所有設定並重新啟動執行個體,藉此執行相同的作業。
在交換作業的任何時間點,所有對交換的應用程式進行初始化的工作都會在來源位置上執行。 無論交換成功或失敗,在來源位置進行準備和準備就緒時,目標位置都會保持線上狀態。 若要交換預備位置與生產位置,請確定生產位置一律為目標位置。 如此,交換作業就不會對生產應用程式產生影響。
在您從另一個部署位置複製設定後,就可以編輯複製的設定。 某些設定元素在交換時會保有內容 (非位置特定),而其他組態元素則會在交換之後保留於同一個位置中 (位置特定)。 下表顯示交換位置時會變更的設定。
交換的設定 | 未交換的設定 |
---|---|
一般設定,例如 Framework 版本、32/64 位元、Web 通訊端 | 正在發行端點 |
應用程式設定 (可設定為固定在某個位置) | 自訂網域名稱 |
連線設定 (可設定為固定在某個位置) | 非公用憑證與 TLS/SSL 設定 |
處理常式對應 | 調整大小設定 |
公開憑證 | WebJobs 排程器 |
WebJobs 內容 | IP 限制 |
混合式連線 * | 永遠開啟 |
Azure 內容傳遞網路 * | 診斷記錄設定 |
服務端點 * | 跨原始來源資源分享 (CORS) |
路徑的對應 | 虛擬網路整合 |
受控識別 | |
尾碼為 _EXTENSION_VERSION 的設定 |
標記星號 (*) 的功能計劃為不進行交換。
注意
若要讓設定可進行交換,請在應用程式的每個位置上新增應用程式設定 WEBSITE_OVERRIDE_PRESERVE_DEFAULT_STICKY_SLOT_SETTINGS
,並將其值設定為 0
或 false
。 這些設定為全部可交換或完全無法交換。 您無法只讓部分設定可交換,而其他設定無法交換。 受控識別一律不會交換,且不受此覆寫應用程式設定的影響。
若要設定特定位置固有的應用程式設定或連接字串 (不會交換),請移至該位置的 [設定] 頁面。 新增或編輯設定,然後選取 [部署位置設定]。 選取此核取方塊,會向 App Service 指出設定是無法交換的。