azure-upgrade
作者 microsoft透過引導式、多階段流程,評估並升級既有的 Azure 工作負載,跨不同的方案、層級與 SKU。azure-upgrade 協助你從 Consumption 轉移到 Flex Consumption、切換 Azure Functions 方案、變更主控層級,並從 App Service 遷移到 Container Apps,搭配評估報告與自動化升級步驟完成整體升級。
概觀
什麼是 azure-upgrade?
azure-upgrade 是一個專為既有 Azure 工作負載設計的引導式升級技能。它著重於就地或近就地的變更,例如升級方案、層級與 SKU,或在仍留在 Azure 環境下,在彼此密切相關的 Azure 服務之間移轉。
典型使用情境包括:
- 將 Azure Functions 從 Consumption 升級到 Flex Consumption
- 將 function app 移轉到不同的 hosting plan 或 service tier
- 變更既有 Azure 服務的 SKU
- 將後端工作負載從 App Service 遷移到 Azure Container Apps
此技能結合了結構化流程(Identify → Assess → Pre-migrate → Upgrade → Validate)、安全規則與最佳做法指引,讓你在調整實際執行中的應用程式時不需憑感覺摸索。
azure-upgrade 適合哪些人?
azure-upgrade 適用於:
- 負責 Azure 後端服務的開發人員與 DevOps 工程師
- 管理方案、層級或 SKU 變更的平台與雲端營運團隊
- 正在全面導入 Flex Consumption,或從 App Service 現代化到 Container Apps 的團隊
如果你需要微調方案設定、或導入較新的 Azure 服務,同時又不能影響正式環境,這個技能可以提供可重複、可追溯的升級路徑。
azure-upgrade 解決哪些問題?
azure-upgrade 可協助你:
- 在動到任何正式資源之前先評估升級就緒度
- 根據現行設定規劃目標方案/層級/SKU
- 依既定規則自動化重複的升級步驟
- 透過 repo 中的
upgrade-status.md檔案追蹤進度 - 避免不安全操作,藉由嚴格的破壞性操作規則與使用者確認機制
此技能專注於 Azure 內部 的變更,不 處理跨雲遷移;若需要跨雲情境,請搭配 azure-cloud-migrate 這類專用遷移技能使用。
什麼情況適合使用 azure-upgrade?
在下列情境可以使用 azure-upgrade:
- 你要將正在執行的 Azure Functions app 升級到 Flex Consumption
- 你想變更現有工作負載的 hosting tier 或 SKU
- 你要將應用程式從 App Service 遷移到 Azure Container Apps
- 你需要一個可追蹤、分階段的流程來執行營運性 Azure 升級
在下列情況可能 不 適合:
- 你要將工作負載 移出 Azure(跨雲遷移)
- 你在建立一個 全新的 應用程式,尚無任何既有資源
- 你只需要 CI/CD 管線自動化(此類需求較適合
azure-deploy等技能)
如果你最在意的是 Azure 升級過程中的安全上線、回滾選項,以及設定一致性,azure-upgrade 的定位正是為此而設計。
使用方式
1. 安裝與基本設定
要從 microsoft/azure-skills 儲存庫加入 azure-upgrade 技能,請在代理環境中使用 skills CLI:
npx skills add https://github.com/microsoft/azure-skills --skill azure-upgrade
安裝完成後,可以先查看幾個關鍵檔案,了解此技能的運作方式:
SKILL.md– 高階說明、觸發條件與規則references/global-rules.md– 安全規則與最佳做法references/workflow-details.md– 各階段流程細節與狀態追蹤指引
請確認你的代理已設定並可存取相關 Azure MCP 工具,例如 mcp_azure_mcp_get_bestpractices 與 mcp_azure_mcp_documentation,這些都在技能規則中有所引用。
2. 了解升級流程
azure-upgrade 採用預先規劃的步驟順序:
- Identify – 釐清來源資源(例如目前的 Functions 方案)與目標方案、層級或 SKU。
- Assess – 產出升級就緒度與相容性評估。
- Pre-migrate – 收集 app settings、設定檔、相依性與連線性細節。
- Upgrade – 執行自動化步驟,套用新的方案/層級/SKU,或建立新的目標資源。
- Validate – 驗證已升級的應用程式是否可正常運作並可承接流量。
技能內建規則要求必須依序執行各階段,明確不建議跳過 Assess 或 Pre-migrate 步驟,藉此維持正式環境變更的安全性與可預測性。
3. 使用 upgrade-status.md 追蹤進度
此流程會在你的 repo 中使用一個簡單的追蹤檔,讓升級狀態可以稽核並在團隊之間共享。
在工作區根目錄建立 upgrade-status.md,並依照 references/workflow-details.md 中說明的結構撰寫。至少應包含:
- 來源應用程式名稱與目前方案
- 目標方案或服務
- Resource group 與 region
- 開始日期
- 各流程階段的核對清單(Identify、Assess、Pre-migrate、Upgrade、Validate)
- 問題、決策與錯誤的紀錄
在代理完成每個階段時更新此檔案;如果某個階段失敗,請記錄錯誤並先處理完再繼續。
4. 遵守全域安全規則
references/global-rules.md 定義了 azure-upgrade 的強制防護措施,包括:
- Destructive Action Policy – 未經
ask_user明確確認,代理不得刪除 app、服務或 resource group,也不得修改 DNS/自訂網域。 - 使用者確認檢查 – 選取訂用帳戶或區域、建立新資源與變更網路限制,都必須經過使用者明確核准。
- 最佳做法 – 技能偏好使用 managed identities、現代執行階段,並要求在新資源完全通過驗證前,保留原始資源持續運作。
當你客製化或擴充流程時,請保留這些規則,以確保在正式環境中的自動化仍維持安全。
5. 執行常見升級情境
安裝完成後,你會透過自然語言意圖與 azure-upgrade 互動,這些意圖會對應到 SKILL.md 中定義的觸發條件。你可以對代理下達例如:
- 「Assess if my function app is ready to move from Consumption to Flex Consumption.」
- 「Automate the upgrade of my Functions plan to Flex Consumption in the same resource group.」
- 「Help me migrate this App Service API to Azure Container Apps and validate it before cutover.」
- 「Change the hosting plan for this function app and document each step in
upgrade-status.md.」
技能隨後會:
- 將你的需求解讀為特定升級情境。
- 載入相關情境參考資料與全域規則。
- 使用 Azure MCP 工具查詢文件與最佳做法。
- 規劃或產出升級步驟,並在進行任何具影響性的變更前先請你確認。
6. 與其他技能銜接
在完成升級與驗證後,azure-upgrade 支援順暢銜接到其他以 Azure 為主的技能:
azure-validate– 用於更深入的升級後驗證與測試。azure-deploy– 用於建立或優化圍繞新資源的 CI/CD 管線。
這讓 azure-upgrade 專注在變更管理流程,同時仍可融入更大的自動化生態系。
常見問題
azure-upgrade 適合用在正式環境的工作負載嗎?
適合。azure-upgrade 在設計上即考量正式環境使用,全域規則明確要求:
- 必須依階段執行(不得跳過評估階段)
- 任何破壞性或不可逆操作都需確認
- 在升級版本完全通過驗證前,必須保留原始 app/服務持續運作
在正確使用、並搭配你既有的變更管理控管機制時,它可以支援正式環境中的安全升級。
azure-upgrade 會處理跨雲遷移嗎?
不會。azure-upgrade 專注在 Azure 內部 的升級,如方案、層級、SKU 變更,或在 App Service 與 Container Apps 等 Azure 服務之間的遷移。若要在不同雲之間搬移工作負載,建議改用像 azure-cloud-migrate 這類專用遷移技能。
我可以用 azure-upgrade 升級哪些 Azure 服務?
此技能主要針對既有工作負載,例如:
- Azure Functions apps(如 Consumption → Flex Consumption)
- 執行於 Azure App Service 的應用程式
- 你想移轉到 Azure Container Apps 的工作負載
由於底層規則聚焦在方案、層級與 SKU,因此在你需要現代化主控環境或調整後端服務容量時特別實用。
azure-upgrade 如何記錄已完成的作業?
此技能依賴 repo 中的 upgrade-status.md 檔案,如 references/workflow-details.md 所述。檔案內容包含:
- 重要資源詳細資訊
- 各階段完成狀態
- 錯誤與修正紀錄
這種簡單的機制,讓升級過程具備可稽核性並易於檢視,即使有多位團隊成員或多個代理共同參與也能掌握。
azure-upgrade 會刪除我的原始資源嗎?
不會,除非經你明確同意。references/global-rules.md 中定義了嚴格的 Destructive Action Policy,包括:
- 刪除 apps、services 或 resource groups
- 停止或停用原始服務
- 修改 DNS 或自訂網域綁定
以上操作都必須透過 ask_user 取得明確確認。你可以自行決定何時(以及是否)要在升級成功後汰除原始資源。
我可以自訂 azure-upgrade 的工作流程嗎?
你可以調整如何 使用 這個流程(例如將狀態檔整合進既有流程,或與內部工具結合),但定義好的階段與安全規則是為了讓升級保持可預測且安全。如果你擴充或包裝 azure-upgrade,請保留:
- Identify → Assess → Pre-migrate → Upgrade → Validate 這個順序
- 針對破壞性操作與確認機制的全域規則
這樣一來,自訂自動化仍能受惠於既有的防護措施。
azure-upgrade 如何與 CI/CD 管線搭配?
azure-upgrade 著重在既有資源的一次性或周期性 營運性變更。在完成升級與驗證後,它可以交棒給 azure-deploy:
- 設定或更新 CI/CD 管線
- 讓部署流程與新的方案、層級或服務保持一致
建議先用 azure-upgrade 安全調整基礎架構特性,再利用專注於管線的技能負責後續持續部署。
使用 azure-upgrade 前需要準備什麼?
在執行 azure-upgrade 之前,請先確認你擁有:
- 目標 Azure 訂用帳戶與 resource group 的存取權限
- 對目標方案/層級/SKU 或目標服務(例如 Container Apps)有明確規劃
- 已在代理環境中設定好
azure-upgrade技能與 Azure MCP 工具
事先準備好這些資訊,有助於代理更快完成 Identify 與 Assess 階段,並減少來回確認的次數。
