共用方式為


設定適用於 Microsoft 開發箱的 Azure Compute Gallery

在本文中,您將瞭解如何設定 Azure 計算資源庫並將其附加至 Microsoft 開發箱中的開發人員中心。 使用 Azure 計算資源庫,您可以為開發人員提供其開發箱的自訂映像。

Azure 計算資源庫是管理及共用映像的服務。 資源庫是儲存在 Azure 訂用帳戶中的存放庫,可協助您建置映像資源周圍的結構和組織。 開發箱支援 GitHub、Azure Repos 及 Bitbucket 存放庫,以提供映像庫。

將計算資源庫附加至 Microsoft 開發箱中的開發人員中心之後,您可以根據儲存在計算資源庫中的映像來建立開發箱定義。

使用資源庫的優點包括:

  • 您會在單一位置維護映像,並跨開發人員中心、專案和集區使用這些映像。
  • 開發小組可以使用映像定義的最新版本,以確保他們一律會在建立開發箱時收到最新的映像。
  • 開發小組可以將支援的映像版本標準化,直到完成更新版本的驗證為止。

若要深入瞭解 Azure 計算資源庫以及如何建立資源庫,請參閱:

必要條件

  • 開發人員中心。 如果您沒有可用的套件,請遵循建立開發人員中心中的步驟。
  • 計算資源庫。 儲存在計算資源庫中的映像可以在開發箱定義中使用,前提是它們符合計算資源庫映射需求一節中所列的需求。

注意

Microsoft 開發箱不支援社群資源庫。

用來設定開發箱定義的資源庫必須至少有一個映像定義和一個映像版本

當您建立虛擬機器 (VM) 映射時,請從與 Microsoft 開發箱相容的 Azure Marketplace 中選取映像。 以下是相容映像的範例:

映像版本需求

映射版本必須符合下列需求:

  • 第 2 代

  • Hyper-V v2

  • Windows OS

    • Windows 10 企業版 20H2 或更新版本
    • Windows 11 企業版 21H2 或更新版本
  • 通用 VM 映像

  • 單一工作階段 VM 映像 (不支援多個工作階段 VM 映像。)

  • 沒有復原磁碟分割

  • 預設 64 GB 作業系統磁碟大小

    • 作業系統磁碟大小會自動調整為 Windows 365 授權的 SKU 描述中指定的大小。
  • 映像定義必須啟用可信啟動作為安全性類型。 當您建立映像定義時,您可以設定安全性類型。

    顯示 Windows 365 映像需求設定的螢幕擷取畫面。

重要

  • Microsoft 開發箱映射需求超過 Windows 365 映射需求,並包含最佳化開發箱建立時間和效能的設定。
  • 不符合 Windows 365 需求的任何映像都不會顯示在可供建立的映像清單中。

注意

Microsoft 開發箱不支援 Windows 測試人員計畫的預覽版。

減少佈建和啟動時間

當您建立要擷取至映像的一般化 VM 時,下列問題可能會影響佈建和啟動時間:

  1. 請使用下列三個 sysprep 選項來建立映像:/generalize /oobe /mode:vm

    • 這些選項可防止在第一次開機期間長時間搜尋及安裝驅動程式。 如需詳細資訊,請參閱 Sysprep 命令列選項
  2. 在 OS 磁碟上啟用讀取/寫入快取。

    • 若要驗證是否已啟用快取,請開啟 Azure 入口網站並瀏覽至映像。 選取 JSON 檢視,並確保 properties.storageProfile.osDisk.caching 值為 ReadWrite
  3. 在您的基底映像中啟用巢狀虛擬化:

    • 在 UI 中,開啟 [開啟或關閉 Windows 功能] ,然後選取 [虛擬機器平台]
    • 或執行下列 PowerShell 命令:Enable-WindowsOptionalFeature -FeatureName VirtualMachinePlatform -Online
  4. 使用下列命令停用映像中的保留儲存體狀態功能:DISM.exe /Online /Set-ReservedStorageState /State:Disabled

  5. 在映像建立期間執行 defragchkdsk,然後停用 chkdiskdefrag 排程工作。

使用 Azure Compute Gallery 映像來建立開發箱定義時,Windows 365 服務會驗證映像,以確保其符合為開發箱佈建的需求。 Microsoft 開發箱會將映像複寫至連結網路連線中指定的區域,讓映像出現在開發箱建立所需的區域中。

若要允許服務執行這些動作,您必須提供資源庫的權限,如下所示。

將使用者指派的身分識別新增至開發人員中心

  1. 請遵循步驟來建立使用者指派的受控身分識別

  2. 登入 Azure 入口網站

  3. 在 [搜尋] 方塊中輸入 dev center。 在結果清單中,選取 [開發人員中心]

  4. 開啟您的開發人員中心。 在左側功能表上,選取 [身分識別]

  5. 在 [使用者指派] 索引標籤上,選取 [+ 新增]

  6. 在 [新增使用者指派的受控識別] 窗格中,選取您在步驟 1 中建立的使用者指派受控識別,然後選取 [新增]

    顯示 [建立使用者指派的受控識別] 窗格的螢幕擷取畫面。

指派角色

Microsoft 開發箱的動作會根據連結程式庫的方式而有所不同:

  • 使用 Azure 入口網站將資源庫連結至開發人員中心時,開發箱服務會在連結資源庫之後自動建立必要的角色指派。
  • 當您使用 Azure CLI 將資源庫附加至開發人員中心時,您必須先手動建立 Windows 365 服務主體和開發人員中心的受控識別角色指派,才能附加資源庫。

使用下列步驟手動指派每個角色。

Windows 365 服務主體

  1. 登入 Azure 入口網站

  2. 在搜尋方塊中,輸入 Azure 計算資源庫。 在結果清單中,選取您要附加至開發人員中心的資源庫。

  3. 在左側功能表中,選取存取控制 (IAM)

  4. 選取 [新增>][新增角色指派]。

  5. 指派下列角色。 如需詳細步驟,請參閱使用 Azure 入口網站指派 Azure 角色

    設定
    Role 選取 [讀取器]
    存取權指派對象 選取 [使用者、群組或服務主體]
    成員 搜尋並選取 [Windows 365]

開發人員中心的受控識別

  1. Azure 入口網站中,開啟您要附加至開發人員中心的資源庫。 您也可以搜尋 Azure Compute Gallery 來尋找您的資源庫。

  2. 在左側功能表中,選取存取控制 (IAM)

  3. 選取 [新增>][新增角色指派]。

  4. 指派下列角色。 如需詳細步驟,請參閱使用 Azure 入口網站指派 Azure 角色

    設定
    Role 選取參與者
    存取權指派對象 選取 [受控識別]。
    成員 搜尋並選取您在將使用者指派的身分識別新增至開發中心時所建立的使用者指派的受控識別。

您可以在多個 DevCenter 和 Compute Gallery 中使用相同的受控識別。 新增受控識別的任何開發中心都對資源庫中新增擁有者角色指派的映像具有必要的權限。

若要在開發箱定義中使用來自計算資源庫的映像,您必須先透過連結將資源庫與開發中心關聯起來:

  1. 登入 Azure 入口網站

  2. 在 [搜尋] 方塊中輸入 dev center。 在結果清單中,選取 [開發人員中心]

  3. 選取您要連結資源庫的開發人員中心。

    顯示現有開發人員中心清單的螢幕擷取畫面。

  4. 在左側功能表中,選取 [Azure Compute Gallery],以列出連結至此開發人員中心的資源庫。

    顯示計算資源庫頁面的螢幕擷取畫面,其中未列出任何資源庫。

  5. 選取 [+ 新增] 以選取要連結的資源庫。

  6. 在 [新增 Azure Compute Gallery] 中,選取您的資源庫。 如果您有多個具有相同名稱的資源庫的存取權,訂用帳戶名稱會出現在括弧中。

    顯示資源庫選取區域的螢幕擷取畫面。

  7. 如果開發人員中心發生名稱衝突,您必須提供要用於此資源庫的唯一名稱。

  8. 選取 [新增]。

  9. 確認您的資源庫現在會出現在 Azure 計算資源庫頁面上。

    顯示計算資源庫頁面的螢幕擷取畫面,其中列出範例資源庫。

成功新增資源庫之後,資源庫中的映像可在您建立和更新開發箱定義時選取。

您可以從開發人員中心中斷連結資源庫,使其映像無法再用來建立開發箱定義。

注意

您無法移除在開發箱定義中主動使用的資源庫。 您必須先刪除相關聯的開發箱定義或更新定義,才能移除這類資源庫,才能使用來自不同資源庫的映像。

  1. 登入 Azure 入口網站

  2. 在 [搜尋] 方塊中輸入 dev center。 在結果清單中,選取 [開發人員中心]

  3. 選取您要從中移除資源庫的開發人員中心。

  4. 在左側功能表中,選取 [Azure Compute Gallery],以列出連結至此開發人員中心的資源庫。

  5. 選取您要移除的資源庫,然後選取 [移除]

    顯示計算資源庫頁面的螢幕擷取畫面,其中具有已選取的資源庫和 [移除] 按鈕。

  6. 在確認對話方塊中,選取 [繼續]

資源庫會從開發人員中心中斷連結。 資源庫和其映像不會遭到刪除,您可以視需要重新連結。