交換部署位置

已完成

您可以在應用程式的 [部署位置] 頁面和 [概觀] 頁面上,交換部署位置。 將應用程式從部署位置交換至生產環境之前,請確定生產環境是您的目標位置,且來源位置中的所有設定都完全依照其在生產環境中的預定方式設定。

手動交換部署位置

若要交換部署位置:

  1. 移至應用程式的 [部署位置] 頁面,然後選取 [交換]。 [交換] 對話方塊會顯示將要變更的所選來源和目標位置中的設定。

  2. 選取所需的來源目標位置。 目標通常就是生產位置。 此外,請選取 [來源變更] 和 [目標變更] 索引標籤,並確認設定變更如預期。 完成之後,選取 [交換] 即可立即交換位置。

    若要在真正執行交換之前查看您的目標位置在使用新設定時將如何執行,請不要選取 [交換],而是依照下方使用預覽交換中的指示操作。

  3. 完成之後,選取 [關閉] 以關閉對話方塊。

使用預覽交換 (多階段交換)

在交換到生產環境中當作目標位置前,請驗證應用程式以交換後的設定執行。 來源位置也會先進行準備工作再完成交換,這也正是任務關鍵性應用程式所需。

使用預覽執行交換時,App Service 會執行相同的交換作業,但在完成第一個步驟後會先暫停。 接著,您可以先確認預備位置上的結果,再完成交換。

如果您取消交換,App Service 會將設定元素重新套用至來源位置。

若要使用預覽交換:

  1. 依照上方「交換部署位置」中的步驟操作,但選取 [執行交換並預覽] 核取方塊。 此對話方塊會顯示來源位置中的設定如何在階段 1 變更,以及來源和目標位置如何在階段 2 變更。

  2. 準備好開始交換時,請選取 [開始交換]

    階段 1 完成時,您會在對話方塊中收到通知。 移至 https://<app_name>-<source-slot-name>.azurewebsites.net 可預覽來源位置中的交換情形。

  3. 準備好完成擱置的交換時,請在 [交換動作] 中選取 [完成交換],然後選取 [完成交換]

    若要取消擱置的交換,請改為選取 [取消交換]

  4. 完成之後,選取 [關閉] 以關閉對話方塊。

設定自動交換

如果您希望為應用程式的客戶持續部署您的應用程式,而不需冷啟動和不需關機,「自動交換」將可簡化此類 Azure DevOps 服務案例。 啟用從位置至生產位置的自動交換後,每當您將程式碼變更推送至該位置時,App Service 就會在已於來源位置做好準備後,自動將該應用程式交換至生產位置。

注意

Linux 上的 Web 應用程式和適用于容器的 Web 應用程式目前不支援自動交換。

若要設定自動交換:

  1. 移至應用程式的資源頁面,然後選取要設定為自動交換的部署位置。 此設定位於 [設定] > [一般設定] 頁面上。

  2. 將 [啟用自動交換] 設定為 [開啟]。 然後為 [自動交換部署位置] 選取所需的目標位置,然後選取命令列上的 [儲存]

  3. 執行程式碼推送至來源位置。 自動交換不久之後就會發生,而更新會反映於目標位置的 URL。

指定自訂準備

某些應用程式在交換之前可能需執行自訂的準備動作。 web.config 中的 applicationInitialization 設定元素可讓您指定自訂初始化動作。 交換作業會等到此自訂準備動作完成後,再與目標位置進行交換。 以下是範例 web.config 片段。

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

如需自訂 applicationInitialization 元素的詳細資訊,請參閱最常見的部署位置交換失敗,以及如何加以修正

您也可以使用下列一或兩項應用程式設定來自訂準備行為:

  • WEBSITE_SWAP_WARMUP_PING_PATH:用來準備網站的偵測路徑。 指定以斜線做為值的自訂路徑,以新增此應用程式設定。 例如 /statuscheck。 預設值是 /
  • WEBSITE_SWAP_WARMUP_PING_STATUSES:準備作業的有效 HTTP 回應碼。 使用以逗號分隔的 HTTP 代碼清單新增此應用程式設定。 例如 200,202。 如果傳回的狀態碼不在清單中,準備和交換作業就會停止。 根據預設,所有回應碼都是有效的。
  • WEBSITE_WARMUP_PATH:每當網站重新啟動時,網站上應該 Ping 的相對路徑 (不僅在位置交換期間)。 範例值包括 /statuscheck 或根路徑 /

復原和監視交換

如果目標位置發生任何錯誤 (例如生產位置) 在位置交換之後,請立即交換相同的兩個位置,將位置還原至其交換前狀態。

如果交換作業需要很長的時間才能完成,您可以在活動記錄中取得交換作業的相關資訊。

  1. 在入口網站中的應用程式資源頁面上,選取左窗格中的 [活動記錄]

  2. 交換作業會在記錄查詢中顯示為 Swap Web App Slots。 您可以展開它,然後選取其中一個子選項或錯誤,以查看詳細資料。