使用並存移轉功能移轉至 App Service 環境 v3
注意
本文所述的移轉功能會用於將 App Service 環境 v2 自動並存 (不同子網路) 移轉至 App Service 環境 v3。 如果您尚未要求 30 天的寬限期,請檢閱寬限期概觀,然後移至 Azure 入口網站並瀏覽每個 App Service 環境的 [移轉] 刀鋒視窗,以要求寬限期。
如果您要尋找就地移轉功能的資訊,請參閱使用就地移轉功能移轉至 App Service 環境 v3。 如果您要尋找手動移轉選項的相關資訊,請參閱手動移轉選項。 如需有助於決定適合您移轉選項的說明,請參閱移轉路徑決策樹。 如需 App Service 環境 v3 的詳細資訊,請參閱 App Service 環境 v3 概觀。
與就地移轉相比,並排移轉帶來了額外的挑戰。 對於需要在這兩個選項之間做決定的客戶,建議是使用就地移轉,因為步驟較少且複雜度較低。 如果您決定使用並排移轉,請檢閱使用並排移轉功能進行移轉時常見的問題來源章節,以避免常見的陷阱。
App Service 現在可以自動將 App Service 環境 v1 和 v2 版移轉至 App Service 環境 v3。 有不同的移轉選項。 檢閱移轉路徑決策樹,以決定哪個選項最適合您的使用案例。 App Service 環境 v3 提供舊版的優點和功能差異。 進行移轉之前,請務必先檢閱 App Service 環境 v3 的支援功能,以降低非預期應用程式問題的風險。
並存移轉功能會為您自動進行目的地為 App Service 環境 v3 的移轉。 並存移轉功能會使用您位於不同子網路的所有應用程式建立新的 App Service 環境 v3。 您現有的 App Service 環境不會遭到刪除,除非您在移轉程序結束後起始刪除作業。 此移轉選項最適合想要以不停機的方式移轉至 App Service 環境 v3 的客戶,而且,此選項支援為客戶的新環境使用不同的子網路。 如果您需要使用相同的子網路,並可讓應用程式停機約一個小時,則請參閱就地移轉功能。 如需可按照自己的步調來進行移轉的手動移轉選項,請參閱手動移轉選項。
重要
如果您無法完成本教學課程中所述的所有步驟,您將會遇到停機。 例如,如果您未使用新的 IP 位址更新所有相依資源,或不允許往來於新的子網路進行存取,例如自訂網域尾碼金鑰保存庫的情況,您將會遇到停機,直到解決為止。
建議您先將此功能用於開發環境,再移轉任何生產環境,以排練程序並確保沒有任何非預期的問題。 請使用頁面底部的按鈕,提供與本文或功能相關的任何意見反應。
支援的案例
目前,並存移轉功能在下列區域不支援移轉至 App Service 環境 v3:
Azure 公用
- 阿拉伯聯合大公國中部
Azure Government
- US DoD 中部
- US DoD 東部
- US Gov 亞利桑那州
- US Gov 德克薩斯州
- US Gov 維吉尼亞州
由 21Vianet 營運的 Microsoft Azure
- 中國東部 2
- 中國北部 2
您可以使用並存移轉功能來移轉下列 App Service 環境組態。 下表提供在根據現有 App Service 環境使用並存移轉功能時的 App Service 環境 v3 組態。
組態 | App Service 環境 v3 設定 |
---|---|
內部負載平衡器 (ILB) App Service 環境 v2 | ILB App Service 環境 v3 |
外部 (ELB/網際網路對應且具有公用 IP) App Service 環境 v2 | ELB App Service 環境 v3 |
具有自訂網域尾碼的 ILB App Service 環境 v2 | 具有自訂網域尾碼的 ILB App Service 環境 v3 |
App Service 環境 v3 可以部署為支援區域備援。 只要 App Service 環境 v3 位於支援區域備援的區域,就可以啟用區域備援。
如果您希望新的 App Service 環境 v3 使用自訂網域尾碼,而且您目前還沒使用,則一旦移轉完成後,就可以隨時設定自訂網域尾碼。 如需詳細資訊,請參閱設定 App Service 環境的自訂網域尾碼。 如果您現有的環境有自訂網域尾碼,而且您不想再使用它,則必須設定移轉的自訂網域尾碼。 您可以在移轉完成後移除自訂網域尾碼。
並存移轉功能的限制
以下為使用並存移轉功能時的限制:
- 新的 App Service 環境 v3 位於不同子網路,但與現有環境相同的虛擬網路中。
- 您無法變更 App Service 環境所在的區域。
- ELB App Service 環境無法移轉至 ILB App Service 環境 v3,反之亦然。
- 如果您現有的 App Service 環境使用自訂網域尾碼,您必須在移轉程序期間設定 App Service 環境 v3 的自訂網域尾碼。
- 如果不再使用自訂網域尾碼,移轉完成後即可將其移除。
- 並存移轉功能僅適用於使用 CLI 或透過 REST API。 此功能無法在 Azure 入口網站中使用。
App Service 環境 v3 不支援您可能有搭配目前的 App Service 環境 v2 使用的下列功能。
- 使用您的應用程式設定以 IP 為基礎的 TLS/SSL 繫結。
- 如果虛擬網路中已設定的自訂 DNS 伺服器無法解析指定的名稱,則 App Service 環境 v3 不會回復至 Azure DNS。 如果需要此行為,請確定您有公用 DNS 的轉寄站,或將 Azure DNS 包含在自訂 DNS 伺服器清單中。
並存移轉功能不支援下列案例。 如果您的 App Service 環境屬於下列其中一個類別,請參閱手動移轉選項。
- App Service 環境 v1
- 您可以瀏覽至 Azure 入口網站中的 App Service 環境,然後選取左側 [設定] 底下的 [設定],以尋找 App Service 環境的版本。 您也可以使用 Azure 資源總管,並檢閱 App Service 環境的
kind
屬性值。 - 如果您有 App Service 環境 v1,您可以使用就地移轉功能或其中一個手動移轉選項來進行移轉。
- 您可以瀏覽至 Azure 入口網站中的 App Service 環境,然後選取左側 [設定] 底下的 [設定],以尋找 App Service 環境的版本。 您也可以使用 Azure 資源總管,並檢閱 App Service 環境的
- 使用 IP SSL 位址的 ELB App Service 環境 v2
- 釘選區域的 App Service 環境 v2
- App Service 環境的名稱不符合字元限制。 包含網域尾碼的整個名稱必須是 64 個字元或以下。 例如:ILB 的 my-ase-name.appserviceenvironment.net 和 ELB 的 my-ase-name.p.azurewebsites.net,都必須是 64 個字元或以下。 如果您不符合字元限制,則必須手動移轉。 特別針對 App Service 環境名稱的字元限制如下:
- ILB App Service 環境名稱字元限制:36 個字元
- ELB App Service 環境名稱字元限制:42 個字元
App Service 平台會檢閱您的 App Service 環境,以確認是否支援並存移轉。 如果您的案例未通過所有驗證檢查,目前便無法使用並存移轉功能來進行移轉。 如果環境狀況不良或處於暫停狀態,則在進行所需的更新之前,您將無法移轉。
注意
App Service 環境 v3 不支援 IP SSL。 如果您使用 IP SSL,必須先移除所有 IP SSL 繫結,才能移轉至 App Service 環境 v3。 在移除所有 IP SSL 繫結之後,此移轉功能便會支援您的環境。
疑難排解
如果您的 App Service 環境未通過驗證檢查,或您嘗試以不正確的順序執行移轉步驟,您可能會看到下列其中一個錯誤訊息:
錯誤訊息 | 描述 | 建議 |
---|---|---|
移轉只能在 ARM VNET 中的 ASE 上呼叫,而此 ASE 位於傳統 VNET 中。 | 傳統虛擬網路中的 App Service 環境無法使用並存移轉功能進行移轉。 | 使用其中一個手動移轉選項進行移轉。 |
ASEv3 移轉尚未就緒。 | 基礎基礎結構尚未準備好支援 App Service 環境 v3。 | 如果您想要立即移轉,請使用其中一個手動移轉選項進行移轉。 否則,請等候您的區域提供並存移轉功能。 |
無法啟用此 ASE 的區域備援。 | App Service 環境所在的區域不支持區域備援。 | 如果您需要啟用區域備援,請使用其中一個手動移轉選項來移轉至支援區域備援的區域。 |
目前無法在此自訂 DNS 尾碼 ASE 上呼叫移轉。 | 自訂網域尾碼移轉遭到封鎖。 | 請開立支援案例,洽詢支援人員來解決問題。 |
目前無法呼叫區域備援 ASE 移轉。 | 區域備援 App Service 環境移轉遭到封鎖。 | 請開立支援案例,洽詢支援人員來解決問題。 |
無法在已固定區域的 ASEv2 上呼叫移轉。 | 已固定區域的 App Service 環境 v2 目前無法使用並存移轉功能來進行移轉。 | 如果您想要立即移轉,請使用其中一個手動移轉選項進行移轉。 |
還有進行中的還原移轉作業,請稍後再試。 | 先前的移轉嘗試還在還原中。 | 請等到進行中的還原完成後,再重新嘗試開始移轉。 |
Properties.VirtualNetwork.Id 應包含子網路資源識別碼。 | 如果您嘗試移轉而不提供新的子網路來放置 App Service 環境 v3,就會出現此錯誤。 | 請確定您有遵循指導並完成步驟,以識別您要用於 App Service 環境 v3 的子網路。 |
無法從「無停機移轉」目前的 <previous phase> 階段移至 <requested phase> 階段。 |
如果您嘗試以不正確的順序執行移轉步驟,就會出現此錯誤。 | 請確定您有按照順序來進行移轉步驟。 |
無法在混合式狀態下的 ASE 上開始還原作業,請稍後再試。 | 如果您嘗試還原移轉,但某個地方發生問題,就會出現此錯誤。 此錯誤不會影響您的舊環境或新環境。 | 請開立支援案例,洽詢支援人員來解決問題。 |
無法在不停機的情況下移轉此 ASE。 | 如果您嘗試在 App Service 環境 v1 上使用並存移轉功能,就會出現此錯誤。 | 並存移轉功能不支援 App Service 環境 v1。 請使用就地移轉功能或其中一個手動移轉選項來進行移轉。 |
此訂用帳戶無法使用移轉功能。 | 需要支援人員的參與才能移轉此 App Service 環境。 | 請開立支援案例,洽詢支援人員來解決問題。 |
無法呼叫區域備援移轉,因為移轉前所建立的 IP 位址不支援區域備援。 | 如果您嘗試進行區域備援移轉,但 IP 產生步驟期間產生的 IP 並未建立為區域備援,就會顯示此錯誤。 平排會嘗試讓所有 IP 區域成為備援,以確保後端復原能力。 | 如果您需要啟用區域備援,請開立支援案例以洽詢支援人員。 工程師將會還原移轉,並允許另一次嘗試建立 IP。 否則,您可以進行不啟用區域備援的移轉。 |
如果任何網站上啟用 IP SSL,則無法呼叫移轉。 | App Service 環境若具有已啟用 IP SSL 的網站,則無法使用並存移轉功能來進行移轉。 | 從 App Service 環境中的所有應用程式移除 IP SSL,以啟用移轉功能。 |
無法在相同的子網路內移轉。 | 如果您指定目前環境所在的相同子網路來放置 App Service 環境 v3,便會出現此錯誤。 | 您必須為 App Service 環境 v3 指定不同的子網路。 如果您需要使用相同的子網路,請使用就地移轉功能來進行移轉。 |
訂用帳戶具有太多 App Service 環境。 請先移除一些環境,再嘗試建立更多項目。 | 已符合訂用帳戶的 App Service 環境配額。 | 移除不必要的環境,或連絡支援人員以檢閱您的選項。 |
必須先完成作用中的升級,才能在此 ASE 上呼叫移轉。 | App Service 環境無法在平台升級期間進行移轉。 您可以從 Azure 入口網站設定升級喜好設定。 升級需要 8-12 小時或更長的時間,視 App Service 環境的大小 (執行個體/核心數目) 而定。 | 請等候升級完成,然後進行移轉。 |
正在進行 App Service 環境管理作業。 | 您的 App Service 環境正在進行管理作業。 這些作業可能包括部署或升級等活動。 在這些作業完成之前,會將移轉封鎖。 | 完成這些作業之後,您將能夠進行移轉。 |
目前不支援 InteralLoadBalancingMode。 | 將 InternalLoadBalancingMode 設為某些值的 App Service 環境目前無法使用移轉功能進行移轉。 Microsoft 小組必須手動變更 InternalLoadBalancingMode。 | 請開立支援案例,洽詢支援人員來解決問題。 要求更新 InternalLoadBalancingMode。 |
產生 IP 位址之前,無法呼叫完整移轉。 | 如果您在完成移轉前步驟之前嘗試移轉,就會出現此錯誤。 | 在您嘗試移轉之前,請確定您已完成所有移轉前步驟。 請參閱移轉的逐步指南。 |
在已設定自訂 DNS 尾碼但未設定 AseV3 自訂 DNS 尾碼組態的情況下,無法在 ASE 上呼叫完整移轉。 | 您現有的 App Service 環境會使用自訂網域尾碼。 您必須在移轉程序期間設定 App Service 環境 v3 的自訂網域尾碼。 | 設定自訂網域尾碼。 如果不再使用自訂網域尾碼,移轉完成後即可將其移除。 |
使用並存移轉功能的移轉程序概觀
並存移轉由一系列必須依序遵循的步驟所組成。 提供步驟子集要點。 請務必了解這些步驟期間會發生什麼情況,以及您的環境和應用程式如何受到影響。 檢閱下列資訊並準備好移轉之後,請遵循逐步指南。
使用 App Service 環境的並存移轉功能來驗證是否支援移轉
平台會驗證您可以使用並存移轉功能來移轉 App Service 環境。 如果您的 App Service 環境未通過所有驗證檢查,目前便無法使用並存移轉功能來進行移轉。 如需驗證失敗可能原因的詳細資料,請參閱疑難排解一節。 如果環境狀況不良或處於暫停狀態,則在進行所需的更新之前,您將無法移轉。 如果您無法使用並存移轉功能進行移轉,請參閱手動移轉選項。
驗證也會檢查您的 App Service 環境是否處於移轉所需的最低組建。 此組建可能比使用例行平台升級/維護週期部署的標準組建還新。 最低組建會定期更新,以確保有最新的錯誤修正和改進。 如果您的 App Service 環境不在最低組建上,則必須自行開始升級。 此升級是一個標準程序,其中 App Service 環境不會受到影響,但您無法在升級進行時調整或變更 App Service 環境。 在升級完成之前,您無法移轉。 視環境大小而定,升級可能需要 8-12 小時或更長的時間才能完成。 如果您規劃移轉的特定時間範圍,則應該在規劃的移轉時間前 24-48 小時執行驗證檢查,以確保您有時間進行升級。
為新的 App Service 環境 v3 選取和準備子網路
平台會在與您現有 App Service 環境不同的子網路中建立新的 App Service 環境 v3。 您必須選取符合下列需求的子網路:
- 子網路必須位於與現有 App Service 環境相同的虛擬網路中,因此區域也必須如此。
- 如果您的虛擬網路沒有可用的子網路,便需要建立一個。 您可能需要增加虛擬網路的位址空間,才能建立新的子網路。 如需詳細資訊,請參閱建立虛擬網路。
- 子網路必須能夠與現有 App Service 環境所在的子網路進行雙向通訊。 請確定沒有網路安全性群組或其他網路組態會防止子網路之間進行通訊。
- 子網路必須具有
Microsoft.Web/hostingEnvironments
的單一委派。 - 子網路必須有足夠的可用 IP 位址,才能支援新的 App Service 環境 v3。 所需的 IP 位址數目取決於您要用於新 App Service 環境 v3 的執行個體數目。 如需詳細資訊,請參閱 App Service 環境 v3 網路功能。
- 子網路不得套用任何鎖定。 如果有鎖定,則必須在移轉之前移除這些鎖定。 移轉完成之後,可以視需要重新新增鎖定。 如需鎖定和鎖定繼承的詳細資訊,請參閱鎖定您的資源以保護基礎結構。
- 必須沒有任何 Azure 原則會封鎖移轉或相關動作。 如果有原則會封鎖 App Service 環境的建立或子網路的修改,則必須在移轉之前將其移除。 移轉完成後,便可視需要重新新增原則。 如需 Azure 原則的詳細資訊,請參閱 Azure 原則概觀。
為您的新 App Service 環境 v3 產生輸出 IP 位址
平台會建立新的輸出 IP 位址。 這些 IP 在建立的同時,不會使現有 App Service 環境活動中斷,但您無法調整或變更現有的環境。 完成這個處理序大約需要 15 分鐘。
完成時,系統會建立您未來的 App Service 環境 v3 所使用的新輸輸出 IP。 這些新 IP 對您現有的環境不會有任何影響。
移轉完成後,在進行 DNS 變更以將客戶流量重新導向至新的 App Service 環境 v3 之前,便會收到新的輸入 IP。 由於移轉步驟期間所建立 App Service 環境 v3 資源的相依性,因此您目前不會在程序中取得輸入 IP。 在將流量重新導向至新的 App Service 環境 v3 之前,會有機會更新相依於新輸入 IP 的任何資源。
使用新的輸出 IP 更新相依資源
新的輸出 IP 會先建立並提供給您,然後再開始實際移轉。 系統會提供新的網際網路公用位址輸出,讓您可以先調整任何外部防火牆、DNS 路由、網路安全性群組,以及依賴這些 IP 的任何其他資源,然後再完成移轉。 您必須負責更新受新 App Service 環境 v3 相關聯 IP 位址變更所影響的任何資源。 在您進行所有必要的更新之前,請勿繼續進行下一個步驟。 如果您相依於輸出 IP,且無法進行所有必要的更新,則可能會在移轉步驟期間和之後遇到停機。 這是因為一旦移轉開始,即使流量仍然流向 App Service 環境 v2 前端,您的基礎計算是新子網路中的新 App Service 環境 v3。
此步驟也是在移至 App Service 環境 v3 時檢閱輸入和輸出網路相依性變更的好時機,包括對目前使用連接埠 80 的 Azure Load Balancer 健全狀態探查的連接埠變更。
委派您的 App Service 環境子網路
App Service 環境 v3 需要其所位在的子網路具有 Microsoft.Web/hostingEnvironments
的單一委派。 如果未委派 App Service 環境的子網路或將其委派給不同的資源,則移轉不會成功。 請確定您為新的 App Service 環境 v3 選取的子網路具有 Microsoft.Web/hostingEnvironments
的單一委派。
確認執行個體大小變更
在移轉過程中,系統會使用對應的隔離 v2 SKU 來建立 App Service 方案。 例如,I2 方案會對應至 I2v2。 應用程式可能會在移轉後過度佈建,因為隔離式方案 v2 層對於每個對應執行個體大小具有更多的記憶體和 CPU。 移轉完成後,您將有機會視需要調整環境。 如需詳細資訊,請檢閱 SKU 詳細資料。
確保您的資源沒有任何鎖定
虛擬網路鎖定將會在移轉期間封鎖平台作業。 如果虛擬網路具有鎖定,則您需要先將其移除,才能進行移轉。 移轉完成之後,可以視需要重新新增鎖定。 鎖定可以存在於三個不同的範圍:訂用帳戶、資源群組和資源。 當您在父範圍套用鎖定時,該範圍內的所有資源都會都繼承相同的鎖定。 如果您已在訂用帳戶、資源群組或資源範圍套用鎖定,則需要在移轉之前移除那些鎖定。 如需鎖定和鎖定繼承的詳細資訊,請參閱鎖定您的資源以保護基礎結構。
確定沒有任何封鎖移轉的 Azure 原則
Azure 原則可用來拒絕對特定主體的資源建立和修改。 如果您有一個原則,該原則使您無法建立 App Service 環境或修改子網路,則必須在移轉之前將其移除。 移轉完成之後,可以視需要重新新增原則。 如需 Azure 原則的詳細資訊,請參閱 Azure 原則概觀。
新增自訂網域尾碼 (選擇性)
如果現有的 App Service 環境使用自訂網域尾碼,則必須為新的 App Service 環境 v3 設定自訂網域尾碼。 App Service 環境 v3 上的自訂網域尾碼實作方式與 App Service 環境 v2 上的實作方式不同。 您必須提供必須儲存在 Azure Key Vault 中的自訂網域名稱、受控識別和憑證。 如需關於 App Service 環境 v3 自訂網域尾碼的詳細資訊,包括需求、逐步指示和最佳做法,請參閱設定 App Service 環境的自訂網域尾碼。 如果您的 App Service 環境 v2 有自訂網域尾碼,即使您不想再使用它,也必須為新的環境設定自訂網域尾碼。 移轉完成後,您可以視需要移除自訂網域尾碼設定。
如果移轉包含自訂網域尾碼,針對 App Service 環境 v3,自訂網域將不再顯示在入口網站 [概觀] 頁面的 [基本資訊] 區段中,因為其適用於 App Service 環境 v1/v2。 相反地,針對 App Service 環境 v3,請移至 [自訂網域尾碼] 頁面,您可在其中確認已正確設定自訂網域尾碼。 此外,在 App Service 環境 v2 上,如果您有自訂網域尾碼,預設主機名稱會包含您的自訂網域尾碼,且格式為 APP-NAME.internal.contoso.com。 在 App Service 環境 v3 上,預設主機名稱一律會使用預設網域尾碼,且格式為 APP-NAME.ASE-NAME.appserviceenvironment.net。 這是因為當您新增自訂網域尾碼時,App Service 環境 v3 會保留預設網域尾碼。 使用 App Service 環境 v2 時,只有單一網域尾碼。
移轉至 App Service 環境 v3
完成先前的步驟之後,您應該盡快繼續進行移轉。
應用程式不會在移轉期間停機,但與 IP 產生步驟一樣,您也無法調整、修改現有的 App Service 環境,或在此程序進行期間將應用程式部署至其中。
重要
移轉期間會禁止調整規模,因此您應該在開始移轉之前將環境調整為所需的大小。 如果您已啟用了自動調整,若在移轉開始之前發生調整事件,則必須等到調整事件完成後才能開始移轉。 您應該在開始移轉之前停用自動調整以避免此問題。 如果您需要在移轉之後調整環境,您可以在移轉完成後執行此動作。
您也會在這個步驟決定是否要為新的 App Service 環境 v3 啟用區域備援。 只要 App Service 環境 v3 位於支援區域備援的區域,就可以啟用區域備援。
針對 App Service 環境 v2 到 v3 的並存移轉,需要三到六小時的服務窗口。 在移轉期間,會封鎖調整和環境設定,並發生下列事件:
- 新的 App Service 環境 v3 會建立到您選取的子網路中。
- 系統會使用對應的隔離 v2 層將新的 App Service 方案建立到新的 App Service 環境 v3 中。
- 您的應用程式會建立到新的 App Service 環境 v3 中。
- 應用程式的基礎計算/背景工作角色會移至新的 App Service 環境 v3,這表示您的應用程式現在正在 App Service 環境 v3 上執行。 不過,您的 App Service 環境 v2 前端預設仍會執行並提供服務流量。 舊的輸入 IP 位址會維持為使用中,但新的輸出 IP 正在使用中。 此外,系統會建立新的 App Service 環境 v3 前端,並準備好提供流量。
- 針對 ILB App Service 環境,除非您使用新的輸入 IP 位址更新私人 DNS 區域,否則不會使用 App Service 環境 v3 前端。
- 針對 ELB App Service 環境,在完成移轉的最後一個步驟之前,移轉程序不會將流量重新導向至 App Service 環境 v3 前端。
當此步驟完成時,您的應用程式流量仍會前往舊的 App Service 環境 v2 前端,以及指派給它的輸入 IP。 不過,您的應用程式實際上是在新的 App Service 環境 v3 中於背景工作角色上執行。
注意
由於已知錯誤,Web 作業可能不會在混合式部署步驟期間啟動。 如果您使用 Web 作業,這個錯誤可能會導致應用程式問題/停機時間。 如果您有此問題的任何問題或疑慮,請開啟支援案例。
取得新 App Service 環境 v3 的輸入 IP 位址,並更新相依資源
系統會提供新的輸入 IP 位址,讓您可以使用流量管理員或 Azure Front Door 等服務來設定新的端點,並更新任何私人 DNS 區域。 在您進行這些變更之前,請勿繼續執行下一個步驟。 如果不使用新的輸入 IP 來更新相依資源,則需要停機。 您必須負責更新受新 App Service 環境 v3 相關聯 IP 位址變更所影響的任何資源。 在您進行所有必要的更新之前,請勿繼續進行下一個步驟。
重新導向客戶流量、驗證 App Service 環境 v3,以及完成移轉
最後一個步驟是將流量重新導向至新的 App Service 環境 v3 前端,並完成移轉。 進行此步驟之前,請先檢閱新的 App Service 環境 v3,並執行任何所需測試,以驗證其是否如預期般運作。 根據預設,流量會前往 App Service 環境 v2 前端。 如果您使用 ILB App Service 環境 v3,則可以使用新的輸入 IP 位址更新私人 DNS 區域,以測試 App Service 環境 v3 前端。 如果您使用 ELB App Service 環境 v3,則測試的程序取決於您的特定網路組態。 測試 ELB 環境的其中一個簡單方法是更新主機檔案,以使用新的 App Service 環境 v3 輸入 IP 位址。 如果您已將自訂網域指派給個別應用程式,您也可以更新其 DNS 以指向新的輸入 IP。 測試這項變更可讓您在起始移轉的最後一個步驟之前,先完整驗證 App Service 環境 v3,然後再刪除舊的 App Service 環境。
準備好重新導向流量後,便可以完成移轉的最後一個步驟。 此步驟會將內部/平台 DNS 記錄更新為指向新 App Service 環境 v3 的負載平衡器 IP 位址,以及移轉期間所建立的前端。 變更會在幾分鐘內生效。 您必須負責更新 DNS 記錄,以指向新的輸入 IP 位址。 如果您遇到問題或應用程式停機,請檢查快取和 TTL 設定。 此步驟也會關閉舊的 App Service 環境,並將其刪除。 新的 App Service 環境 v3 現在會成為您的生產環境。
重要
平台保證零停機的移轉體驗。 不過,您的 DNS 設定可能會在 DNS 變更步驟期間造成停機。 這可能是由於與 TTL 和快取設定相關的問題,因為 DNS 變更之後,流量可能仍會導向至舊的 App Service 環境。 您應該檢閱 DNS 設定,並確定您有低 TTL,且 DNS 提供者支援快速傳播。 如果您有高 TTL,則可能會在 DNS 變更步驟期間遇到停機。
注意
請務必儘快完成此步驟。 當您的 App Service 環境處於混合式狀態時,將無法接收平台升級和安全性修補程式,導致更容易遇到不穩定和安全性威脅。
您有 14 天的時間可以完成此步驟。 14 天後,平台會自動完成移轉並刪除舊環境。 如果您需要更多時間,您可以開啟支援案例來討論您的選項.
如果您發現新的 App Service 環境 v3 有任何問題,請勿執行將客戶流量重新導向的命令。 此命令也會起始 App Service 環境 v2 的刪除。 如果您發現問題,請連絡支持人員。
使用並存移轉功能
必要條件
確保您了解移轉至 App Service 環境 v3 如何影響您的應用程式。 全面檢閱移轉流程,以了解流程時間軸,以及何時何處需要您參與。 另請檢閱常見問題集,其可回答您的一些問題。
確保您的虛擬網路、資源群組、資源或訂用帳戶上沒有任何鎖定。 鎖定會在移轉期間封鎖平台作業。
確保沒有任何 Azure 原則會封鎖移轉所需的動作,包括子網路修改和 Azure App Service 資源建立。 封鎖資源修改和建立的原則可能會導致移轉停滯或失敗。
由於 App Service 環境 v3 位於虛擬網路中的不同子網路中,因此您必須確定您的虛擬網路中有一個可用的子網路,才能滿足 App Service 環境 v3 的子網路需求。 您選取的子網路也必須能與現有 App Service 環境所在的子網路通訊。 請確定兩個子網路之間沒有任何通訊阻礙。 如果您沒有可用的子網路,請在移轉之前先建立一個子網路。 建立新的子網路可能會導致增加虛擬網路位址空間。 如需詳細資訊,請參閱建立虛擬網路和子網路。
移轉期間會禁止調整規模,因此您應該在開始移轉之前將環境調整為所需的大小。 如果您需要在移轉之後調整環境,您可以在移轉完成後執行此動作。 如果您已啟用了自動調整,若在移轉開始之前發生調整事件,則會阻止您的移轉,直到調整事件完成為止。 您應該在開始移轉之前停用自動調整以避免此問題。
請遵循此處所述的步驟,並依照撰寫的內容依序進行,因為您正在進行 Azure REST API 呼叫。 建議您使用 Azure CLI 進行這些 API 呼叫。 如需其他方法的相關資訊,請參閱 Azure REST API 參考。
如需此指南,請安裝 Azure CLI 或使用 Azure Cloud Shell,並使用 Bash 殼層。。
注意
建議您使用 Bash 殼層來執行本指南中提供的命令。 命令可能與 PowerShell 慣例和逸出字元不相容。
重要
在移轉期間,Azure 入口網站可能會顯示 App Service 環境和應用程式的相關資訊不正確。 請勿移至 Azure 入口網站中的移轉體驗,因為該處無法使用並存移轉功能。 建議您使用 Azure CLI 來檢查移轉的狀態。 如果您有移轉或應用程式狀態的任何問題,請連絡客戶支援。
1.選取新 App Service 環境 v3 要使用的子網路
在 App Service 環境 v3 中選取符合 App Service 環境 v3 子網路需求的子網路。 記下您選取的子網路名稱。 此子網路必須不同於您現有 App Service 環境所在的子網路。
2.取得您的 App Service 環境識別碼
執行下列命令來取得您的 App Service 環境識別碼,並將其儲存為環境變數。 將名稱和資源群組的預留位置取代為您所要移轉 App Service 環境的值。 如果您的虛擬網路和 App Service 環境位於相同的資源群組中,則 ASE_RG
和 VNET_RG
會相同。
ASE_NAME=<Your-App-Service-Environment-name>
ASE_RG=<Your-ASE-Resource-Group>
VNET_RG=<Your-VNet-Resource-Group>
ASE_ID=$(az appservice ase show --name $ASE_NAME --resource-group $ASE_RG --query id --output tsv)
3.驗證是否支援移轉
下列命令會檢查是否支援您的 App Service 環境進行移轉。 此命令也會驗證您的 App Service 環境是否位於支援的組建版本以進行移轉。 如果您的 App Service 環境不在支援的組建版本上,則必須自行開始升級。 如需預先移轉升級的詳細資訊,請參閱使用 App Service 環境的並存移轉功能來驗證是否支援移轉。
az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=Validation&api-version=2022-03-01"
如果沒有錯誤,則支援您的移轉,而且您可以繼續進行下一個步驟。
如果您需要開始升級,以將 App Service 環境升級至支援的組建版本,則視環境的大小而定執行下列命令,可能需要 8-12 小時或更長的時間。 只有在驗證步驟失敗並指示升級 App Service 環境時,才執行此命令。
az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=PreMigrationUpgrade&api-version=2022-03-01"
4.為您的新 App Service 環境 v3 產生輸出 IP 位址
執行下列命令以建立新的輸出 IP 位址。 此步驟約需要 15 分鐘來完成。 請不要在這段時間調整或變更您現有的 App Service 環境。
az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=PreMigration&api-version=2022-03-01"
執行下列命令檢查此步驟的狀態:
az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.status
如果步驟進行中,您會取得 Migrating
狀態。 取得 Ready
的狀態之後,執行下列命令來檢視新的輸出 IP。 如果您沒有立即看到新的 IP,請稍候幾分鐘,然後再試一次。
az rest --method get --uri "${ASE_ID}/configurations/networking?api-version=2022-03-01" --query properties.windowsOutboundIpAddresses
5.使用新的輸出 IP 更新相依資源
使用新的輸出 IP,更新您的任何資源或網路元件,以確保新的環境功能在移轉開始後如預期般運作。 進行任何必要的更新,這是您的責任。 在移轉步驟期間建立 App Service 環境 v3 之後,就會使用新的輸出 IP。 例如,如果您有自訂網域後綴和 Azure Key Vault,並且使用防火牆來管理存取限制,則必須更新 Azure Key Vault 的防火牆,只允許新的輸出 IP 或整個新的子網路。
6.委派您的 App Service 環境子網路
App Service 環境 v3 需要其所位在的子網路具有 Microsoft.Web/hostingEnvironments
的單一委派。 舊版不需要此委派。 您必須確認已正確委派子網路,並在移轉之前更新委派 (如必要)。 您可以執行下列命令或移至 Azure 入口網站中的子網路來更新委派。
az network vnet subnet update --resource-group $VNET_RG --name <subnet-name> --vnet-name <vnet-name> --delegations Microsoft.Web/hostingEnvironments
7.確認虛擬網路上沒有鎖定
虛擬網路鎖定將會在移轉期間封鎖平台作業。 如果虛擬網路具有鎖定,則您需要先將其移除,才能進行移轉。 如有必要,您可以在移轉完成後再新增鎖定。
使用下列命令來檢查您的虛擬網路是否具有任何鎖定:
az lock list --resource-group $VNET_RG --resource <vnet-name> --resource-type Microsoft.Network/virtualNetworks
使用下列命令來刪除任何現有的鎖定:
az lock delete --resource-group $VNET_RG --name <lock-name> --resource <vnet-name> --resource-type Microsoft.Network/virtualNetworks
如需檢查訂用帳戶或資源群組是否具有鎖定的相關命令,請參閱鎖定的 Azure CLI 參考。
8.準備您的設定
如果您的現有 App Service 環境使用自訂網域尾碼,您必須在移轉程序期間,為新的 App Service 環境 v3 資源設定自訂網域尾碼。 如果您未設定自訂網域尾碼,且目前使用一個自訂網域尾碼,移轉會失敗。 如需關於 App Service 環境 v3 自訂網域尾碼的詳細資訊,包括需求、逐步指示和最佳做法,請參閱 App Service 環境的自訂網域尾碼。
注意
如果您要設定自訂網域尾碼,當您在 Azure Key Vault 上新增網路權限時,請確定您的金鑰保存庫允許從您 App Service v3 的新子網路存取。 如果您使用私人端點存取金鑰保存庫,請確定您已使用新的子網路正確設定私人存取。 如果您在移轉之前無法正確設定此存取權,就會遇到停機。
如果您的現有環境位於支援區域備援的區域,您可以讓新的 App Service 環境 v3 區域做為備援。 您可以將 zoneRedundant
屬性設定為 true
以設定區域備援。 區域備援是選擇性設定。 此設定只能在建立新的 App Service 環境 v3 期間進行設定,且稍後無法移除。
若要調整這些設定,包括識別您稍早選取的子網路,請建立一個 parameters.json 檔案,並根據您的案例包含下列詳細資料。 請務必使用您為新 App Service 環境 v3 選取的新子網路。 如果此功能不適合您的移轉,則請勿包含自訂網域尾碼屬性。 請注意 zoneRedundant
屬性的值,並根據復原需求加以設定。
如果您想移轉但不使用自訂網域尾碼,請使用下列程式碼:
{
"Properties": {
"VirtualNetwork": {
"Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
},
"zoneRedundant": "<true/false>"
}
}
如果您是採用使用者指派的受控識別作為自訂網域尾碼設定,請使用下列程式碼:
{
"Properties": {
"VirtualNetwork": {
"Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
},
"zoneRedundant": "<true/false>",
"customDnsSuffixConfiguration": {
"dnsSuffix": "internal.contoso.com",
"certificateUrl": "https://contoso.vault.azure.net/secrets/myCertificate",
"keyVaultReferenceIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asev3-migration/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ase-managed-identity"
}
}
}
如果您是採用系統指派的受控識別作為自訂網域尾碼設定,請使用下列程式碼:
{
"properties": {
"VirtualNetwork": {
"Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
},
"zoneRedundant": "<true/false>",
"customDnsSuffixConfiguration": {
"dnsSuffix": "internal.contoso.com",
"certificateUrl": "https://contoso.vault.azure.net/secrets/myCertificate",
"keyVaultReferenceIdentity": "SystemAssigned"
}
}
}
9.移轉至 App Service 環境 v3 並檢查狀態
完成上述所有步驟之後,您就可以開始移轉。 請確定您了解移轉的影響。
此步驟需要三到六個小時才能完成。 在此期間,如果您已遵循先前的步驟,則不會有任何應用程式停機。 在此步驟執行時,將會封鎖對現有 App Service 環境的調整、部署和修改。
注意
由於已知錯誤,Web 作業可能不會在混合式部署步驟期間啟動。 如果您使用 Web 作業,這個錯誤可能會導致應用程式問題/停機時間。 如果您有此問題的任何問題或疑慮,請開啟支援案例。
執行下列命令以開始移轉:
az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=HybridDeployment&api-version=2022-03-01" --body @parameters.json
執行下列命令檢查移轉的狀態:
az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.subStatus
取得 MigrationPendingDnsChange
狀態之後,移轉即已完成,且您會有 App Service 環境 v3 資源。 您的應用程式現在同時於新環境以及舊環境中執行。
執行下列命令以取得新環境的詳細資料:
az appservice ase show --name $ASE_NAME --resource-group $ASE_RG
重要
在移轉期間以及 MigrationPendingDnsChange
步驟期間,Azure 入口網站會顯示 App Service環境和應用程式的相關資訊不正確。 使用 Azure CLI 來檢查移轉的狀態。 如果您有移轉或應用程式狀態的任何問題,請連絡客戶支援。
注意
如果您的移轉包含自訂網域尾碼,則因為已知錯誤,您的自訂網域尾碼組態可能會在移轉完成後顯示為降級。 您的 App Service 環境仍應如預期般運作。 降級的狀態應該會在 6-8 小時內自行解決。 如果設定在8小時後降級,或您的自訂網域尾碼無法運作,請連絡客戶支援。
10.取得新 App Service 環境 v3 的輸入 IP 位址,並更新相依資源
在移轉程序中,您在這個階段有兩組 App Service 環境前端,這兩組都能夠為應用程式流量提供服務。 您的 DNS 不會變更,因此根據預設,流量會傳送至舊的 App Service 環境前端。 您必須更新所有相依資源,才能使用新 App Service 環境 v3 的新輸入 IP 位址。 針對面向內部 (ILB) 的 App Service 環境,您必須更新私人 DNS 區域以指向新的輸入 IP 位址。
您可以執行下列對應至 App Service 環境負載平衡器類型的命令,以取得新 App Service 環境 v3 的新輸入 IP 位址。 進行任何必要的更新,這是您的責任。
針對 ILB App Service 環境,執行下列命令以取得私人輸入 IP 位址:
az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.networkingConfiguration.internalInboundIpAddresses
針對 ELB App Service 環境,執行下列命令以取得公用輸入 IP 位址:
az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.networkingConfiguration.externalInboundIpAddresses
重要
如果您的移轉包含自訂網域後綴,則 App Service 環境 v3 的預設主機名稱行為與 App Service 環境 v2 的預設主機名稱行為會不同。 針對 App Service 環境 v3,預設主機名稱一律會使用預設網域尾碼,且格式為 APP-NAME.ASE-NAME.appserviceenvironment.net。 檢閱所有相依資源,例如應用程式閘道,這些資源會使用您應用程式的主機名稱,以確保其已更新以適應此行為。 如需不同版本之間 App Service 環境功能差異的詳細資訊,請參閱 App Service 環境版本比較。
11.重新導向客戶流量、驗證 App Service 環境 v3,以及完成移轉
此步驟可讓您測試及驗證新的 App Service 環境 v3。
重要
您有 14 天的時間可以完成此步驟。 14 天後,平台會自動完成移轉並刪除舊環境。 如果您需要更多時間,您可以開啟支援案例來討論您的選項。
確認您的應用程式如預期般運作後,您可以執行下列命令來完成移轉。 此命令也會刪除您的舊環境。
如果您發現任何問題,或決定放棄繼續移轉,請連絡支援人員以討論您的選項。 請勿執行 DNS 變更命令,因為該命令會完成移轉。
az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=DnsChange&api-version=2022-03-01"
執行下列命令檢查此步驟的狀態:
az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.subStatus
在此步驟中,您會取得 CompletingMigration
的狀態。 當您取得 MigrationCompleted
的狀態時,流量重新導向步驟會完成,且您的移轉已完成。
使用並排移轉功能進行移轉時常見的問題來源
以下是客戶使用並排移轉功能進行移轉時常遇到的問題來源之範例。 您應該檢閱這些區域,以確保您在移轉流程期間或之後不會發生停機或服務中斷。
- Azure Key Vault 應該允許來自新輸出 IP/子網路的流量。
- 這兩個子網路應該能夠彼此進行雙向通訊。 客戶通常會允許從舊到新子網路的流量,但忘記允許從新到舊子網路的流量。
- 應使用新的 IP 位址更新 Azure 應用程式閘道。
- 應使用新的 IP 位址更新 DNS 記錄。
- 如果您的應用程式中有硬式編碼的 IP 位址,您必須使用新的 IP 位址更新這些位址。
- 應使用任何新的路由更新路由資料表。
定價
移轉 App Service 環境不需要任何成本。 不過,一旦開始進行移轉程序,App Service 環境 v2 和新的 App Service 環境 v3 便都會計費。 當您完成最後一個步驟且舊環境遭到刪除後,便會停止向您收取舊 App Service 環境 v2 的費用。 請盡快完成驗證,以防止產生超額費用。 如需 App Service 環境 v3 定價的詳細資訊,請參閱定價詳細資料。
當您從舊版移轉至 App Service 環境 v3 時,便會發生您應該考慮、可能會降低每月成本的案例。 請考慮保留和節省方案,以進一步降低成本。 如需節省成本的機會資訊,請參閱升級至 App Service 環境 v3 之後節省成本的機會。
注意
由於隔離式方案定價層與隔離式方案 v2 定價層不同,隔離式方案 v2 定價層的每個對應執行個體大小有更多的記憶體和 CPU,因此在移轉之後,您的應用程式可能會過度佈建。 移轉完成後,您將有機會視需要調整環境。 如需詳細資訊,請檢閱 SKU 詳細資料。
縮小 App Service 方案的規模
App Service 環境 v3 可用的 App Service 方案 SKU 會在隔離 v2 (Iv2) 層上執行。 相較於隔離層,每個對應層的核心數目和 RAM 數目實際上都增加一倍。 移轉時,App Service 方案會轉換成對應的層。 例如,I2 執行個體會轉換成 I2v2。 雖然 I2 有兩個核心和 7 GB RAM,但 I2v2 有四個核心和 16 GB 的 RAM。 如果預期容量需求維持不變,則您會遇到過度佈建的情況,並為您未使用的計算和記憶體付費。 在此案例中,您可以將 I2v2 執行個體相應減少為 I1v2,最終獲得與先前擁有類似的核心和 RAM 數目。
常見問題集
- 如果目前不支援移轉我的 App Service 環境,該怎麼辦?
目前您無法使用並存移轉功能進行移轉。 如果您有不支援的環境,且想要立即移轉,請參閱手動移轉選項。 - 如何選擇哪個移轉選項適合我?
檢閱移轉路徑決策樹,以決定哪個選項最適合您的使用案例。 - 如何知道我是否應該使用並存移轉功能?
並存移轉功能最適合想要移轉至 App Service 環境 v3 但無法支援應用程式停機的客戶。 由於新環境會使用新的子網路,因此要留意網路方面的考量,包括新的 IP。 如果您可以支援停機,請參閱就地移轉功能,這會有最少的組態變更,或者,也可以參閱手動移轉選項。 就地移轉功能會在與現有環境相同的子網路中建立 App Service 環境 v3,並使用相同的網路基礎結構。 - 在移轉時是否有停機的問題?
平台保證不會在並存移轉程序期間停機。 不過,您的 DNS 設定可能會在 DNS 變更步驟期間造成停機。 這可能是由於與 TTL 和快取設定相關的問題,因為 DNS 變更之後,流量可能仍會導向至舊的 App Service 環境。 您應該檢閱 DNS 設定,並確定您有低 TTL,且 DNS 提供者支援快速傳播。 - 移轉之後,我需要對應用程式執行任何動作,才能在新 App Service 環境上執行嗎?
不需要,因為在舊環境上執行的所有應用程式都會自動移轉至新的環境,並按照以前的方式執行。 使用者不需要輸入任何資料。 - 如果我的 App Service 環境有一個自訂網域尾碼怎麼辦?
並存移轉功能支援此移轉案例。 - 如果我的 App Service 環境已釘選區域,該怎麼辦?
並存移轉功能目前不支援此移轉案例。 如果您有已固定區域的 App Service 環境並想要立即移轉,請參閱手動移轉選項。 - 如果我的 App Service 環境有 IP SSL 位址,該怎麼辦?
在 App Service 環境 v3 上不支援 IP SSL。 您必須先移除所有 IP SSL 繫結,才能使用移轉功能或其中一個手動選項進行移轉。 如果想要使用並存移轉功能,一旦您移除所有 IP SSL 繫結,就會通過該驗證檢查,而可以繼續進行自動化移轉。 - 我 App Service 環境中的哪些屬性將會變更?
您將使用 App Service 環境 v3,因此請務必檢閱與舊版相較之下的功能差異。 使用並存移轉功能時,輸入和輸出 IP 都會變更。 ELB App Service 環境的注意事項,先前有一個供輸入和輸出的 IP。 對於 App Service 環境 v3,它們是有區分的。 如需詳細資訊,請參閱 App Service 環境 v3 網路功能。 如需 App Service 環境版本的完整比較,請參閱 App Service 環境版本比較。 - 如果移轉失敗或移轉期間發生非預期的問題,會發生什麼事?
如果發生非預期的問題,支援小組會提供協助。 在處理生產環境之前,建議您先移轉開發環境,以了解移轉程序,並查看其如何影響工作負載。 - 我的舊 App Service 環境會發生什麼事?
如果您決定使用並存移轉功能來移轉 App Service 環境,則舊環境會一直使用到移轉程序的最後一個步驟。 完成最後一個步驟後,系統便會關閉並刪除舊環境及其上裝載的所有應用程式。 舊環境將無法再提供存取。 目前無法還原為舊環境。 - 2024 年 8 月 31 日之後,我的 App Service 環境 v1/v2 資源會有什麼變化?
2024 年 8 月 31 日之後,如果您未移轉至 App Service 環境 v3,則 App Service 環境 v1/v2 和其中所部署的應用程式便無法再使用。 應用服務環境 v1/v2 裝載在雲端服務 (傳統) 架構上執行的應用服務縮放單位上,該架構將於 2024 年 8 月 31 日淘汰。 因此,該日期後將無法再使用 App Service 環境 v1/v2。 移轉至 App Service 環境 v3,讓您的應用程式保持執行或儲存或備份您需要維護的任何資源或資料。