使用 PowerShell 匯入和匯出藍圖定義

重要

在 2026 年 7 月 11 日,藍圖 (預覽) 將會淘汰。 將現有的藍圖定義和指派移轉至範本規格部署堆疊。 藍圖成品會轉換成用來定義部署堆疊的 ARM JSON 範本或 Bicep 檔案。 若要了解如何將成品撰寫為 ARM 資源,請參閱:

您可以透過 Azure 入口網站完全管理 Azure 藍圖。 隨著不斷使用 Azure 藍圖,組織應該開始思考藍圖定義即受控程式碼。 這個概念通常稱為基礎結構即程式碼 (IaC)。 將藍圖定義視為程式碼,可以提供超出 Azure 入口網站所提供的額外優點。 這些優點包括:

  • 共用藍圖定義
  • 備份藍圖定義
  • 在不同租用戶或訂用帳戶中重複使用藍圖定義
  • 將藍圖定義放入原始檔控制
    • 在測試環境中自動化測試藍圖定義
    • 支援持續整合和持續部署 (CI/CD) 管線

無論您的原因為何,將藍圖定義視為程式碼進行管理都能帶給您諸多優點。 本文說明如何在 Az.Blueprint 模組中使用 Import-AzBlueprintWithArtifactExport-AzBlueprintWithArtifact 命令。

必要條件

本文以擁有中等程度的 Azure 藍圖運用知識為假設。 如果您尚未這麼做,請完成下列文章:

如果尚未安裝 Az.Blueprint 模組,請依照新增 Az.Blueprint 模組中的指示,從 PowerShell 資源庫安裝並驗證它。

藍圖定義的資料夾結構

在查看匯出和匯入藍圖之前,讓我們先看看構成藍圖定義的檔案結構。 藍圖定義應儲存在自己的資料夾中。

重要

如果未將任何值傳遞至 Import-AzBlueprintWithArtifact Cmdlet 的 Name 參數,則會使用儲存藍圖定義所在的資料夾名稱。

除了必須命名為 blueprint.json 的藍圖定義之外,還有構成藍圖定義的成品。 每個成品都必須位於名為 artifacts 的子資料夾中。 組合在一起後,藍圖定義的結構,即資料夾中的 JSON 檔案,應如下所示:

.
|
|- MyBlueprint/  _______________ # Root folder name becomes default name of blueprint definition
|  |- blueprint.json  __________ # The blueprint definition. Fixed name.
|
|  |- artifacts/  ______________ # Subfolder for all blueprint artifacts. Fixed name.
|     |- artifact.json  ________ # Blueprint artifact as JSON file. Artifact named from file.
|     |- ...
|     |- more-artifacts.json

匯出藍圖定義

匯出藍圖定義的步驟很簡單。 匯出藍圖定義有助於共用、備份或放入原始檔控制。

  • Blueprint [必要]
    • 指定藍圖定義
    • 使用 Get-AzBlueprint 取得參考物件
  • OutputPath [必要]
    • 指定儲存藍圖定義 JSON 檔案的路徑
    • 輸出檔案位於具有藍圖定義名稱的子資料夾中
  • Version (選用)
    • 指定輸出的版本,若 Blueprint 參考物件包含的參考超過一個版本的話。
  1. 取得藍圖定義的參考,從表示為 {subId} 的訂用帳戶匯出:

    # Login first with Connect-AzAccount if not using Cloud Shell
    
    # Get version '1.1' of the blueprint definition in the specified subscription
    $bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'MyBlueprint' -Version '1.1'
    
  2. 使用 Export-AzBlueprintWithArtifact Cmdlet 匯出指定的藍圖定義:

    Export-AzBlueprintWithArtifact -Blueprint $bpDefinition -OutputPath 'C:\Blueprints'
    

匯入藍圖定義

一旦您擁有匯出的藍圖定義,或在必要資料夾結構中手動建立藍圖定義,您就能將該藍圖定義匯入至不同的管理群組或訂用帳戶。

如需內建藍圖定義的範例,請參閱 Azure Blueprints GitHub repo

  • Name [必要]
    • 指定新藍圖定義的名稱
  • InputPath [必要]
  • ManagementGroupId (選用)
    • 要儲存藍圖定義的管理群組識別碼,如果不是目前的內容預設值的話
    • 必須指定 ManagementGroupIdSubscriptionId
  • SubscriptionId (選用)
    • 要儲存藍圖定義的訂用帳戶識別碼,如果不是目前的內容預設值的話
    • 必須指定 ManagementGroupIdSubscriptionId
  1. 使用 Import-AzBlueprintWithArtifact Cmdlet 匯入指定的藍圖定義:

    # Login first with Connect-AzAccount if not using Cloud Shell
    
    Import-AzBlueprintWithArtifact -Name 'MyBlueprint' -ManagementGroupId 'DevMG' -InputPath 'C:\Blueprints\MyBlueprint'
    

一旦匯入藍圖定義,請使用 PowerShell 加以指派

如需建立進階藍圖定義的相關資訊,請參閱下列文章:

下一步