pulumi-arm-to-pulumi
pulumi/agent-skills
將 Azure ARM(Azure Resource Manager)範本、Bicep 範本或程式碼轉換或遷移至 Pulumi,包括匯入現有的 Azure 資源。每當使用者要求將 ARM 範本、Bicep 範本、ARM 程式碼、Bicep 程式碼或 Azure 資源遷移、轉換或匯入至 Pulumi 時,都必須載入此技能。
...展開全部關於pulumi-arm-to-pulumi
一套用於將 Azure ARM(Azure Resource Manager)範本、Bicep 或 Azure 程式碼轉換或遷移至 Pulumi 的結構化工作流程,其中包括將現有的 Azure 資源匯入 Pulumi 管理系統。 此流程旨在於每次進行此類遷移、轉換或匯入時載入,並會修訂在載入此技能之前已草擬的任何遷移計畫,以符合其要求。
成功標準相當嚴格:每個 ARM 資源必須出現在 Pulumi 程式中,或在報告中明確說明其存在理由; 輸出結果必須在結構上有效,且能成功執行 Pulumi 預覽;在匯入現有資源時,預覽結果必須顯示零差異(無建立、更新、取代或刪除操作),且任何差異皆須透過「預覽解決工作流程」予以解決。 系統會始終產生一份適合用於拉取請求(pull request)的正式遷移報告,內容涵蓋 ARM 至 Pulumi 的資源映射、供應商選擇、行為差異以及手動步驟。
此工作流程依序進行。資訊蒐集階段會驗證 Azure 憑證(使用 ESC 環境與 az login 指令),並透過 jq 分析 ARM 範本以擷取資源類型、參數、變數、dependsOn 陣列、複製迴圈及條件語句,並可選擇性地使用 az resource list 和 show 指令建立資源清單。 由於目前尚無自動化的 ARM 轉換器,因此代碼轉換需手動進行;預設採用 azure-native 提供者,並以經典 Azure 提供者作為備用方案,同時保留所有條件式、迴圈及依賴關係,並以使用者選擇的語言呈現。 可選的資源匯入功能會使用內嵌的 import resource 選項,並採用遵循可預測訂閱、資源群組及提供者路徑的 Azure 資源 ID,隨後驗證是否為零差異。 最後,會將堆疊配置設定為與 ARM 參數相符。配套參考文件 `arm-conversion-patterns.md` 和 `arm-import.md` 提供了詳細的映射模式,以及資源匯入與零差異除錯的流程。
常見問題
是否有自動轉換 ARM 範本的工具?
沒有。此技能說明,ARM 轉 Pulumi 轉換需要手動轉換,且您需負責整個轉換過程,儘管參考模式會提供對應指引。
我應該使用哪個 Pulumi 提供者?
預設使用 @pulumi/azure-native 以完整支援 Azure Resource Manager API;若 azure-native 缺乏某項功能或需要更簡單的抽象層時,則回退至經典的 @pulumi/azure 供應商。
「零差異匯入驗證」是指什麼?
在匯入現有資源後,Pulumi 預覽畫面必須顯示沒有新增、更新、取代或刪除的項目。任何差異都會透過 arm-import.md 中所述的「預覽解決工作流程」來解決。
如何設定 Azure 憑證?
透過提供憑證的 ESC 環境,使用 `pulumi env run` 搭配 `az login`(服務主體與聯邦憑證),並透過 `az account show` 進行驗證。若未指定 ESC 環境,此功能會詢問應使用哪個環境。
遷移完成後會產出什麼?
一份適用於拉取請求(pull request)的正式遷移報告,內容包含 ARM 至 Pulumi 的資源對應關係、供應商決策、行為差異、任何遺漏或需手動執行的步驟,以及驗證說明。





首頁
