共用方式為


設定小組自定義

使用 Microsoft 開發箱自訂功能來簡化雲端式開發環境的設定。 開始新專案或加入新小組可能既複雜又耗時。 小組自訂會使用映像定義檔案 (imagedefinition.yaml) 預先安裝工具、複製存放庫,以及設定集區中每個開發箱的設定。 透過小組自訂,系統管理員可以提供可隨時編碼的工作站,其中包含應用程式、工具、存放庫、程式碼庫、套件和建置指令碼。 本文說明如何在 Visual Studio Code 中建立、測試及編輯開發箱的映像定義檔案。

您可以透過兩種方式在開發箱中使用自訂。 小組自訂會為小組建立共用組態。 使用者自訂設置 為個別開發人員建立個人配置。 下列清單摘要說明這些自訂類型之間的差異。

  • 小組自訂:定義一次,透過目錄中的 imagedefinition.yaml 套用至集區中的每個開發箱。
  • 使用者自訂:建立開發箱時上傳的個人 YAML;只影響那一個開發箱。
  • 使用小組來確保一致性和合規性;使用使用者以滿足個人喜好。

若要深入了解,請參閱 Microsoft 開發箱自訂

請遵循下列步驟設定小組自訂:

顯示 Microsoft 開發箱中小組自訂的五個步驟工作流程的圖表。

先決條件

Product 需求
Microsoft 開發箱 - 設定具有開發箱集區和開發箱專案的開發人員中心,以便您可以建立開發箱。
- 將目錄附加至開發人員中心,其中包含可在映像定義檔案中使用的工作。 如果您沒有目錄,請參閱 從 GitHub 或 Azure Repos 新增和設定目錄。
- 權限
- 若要建立開發箱: 加入至少一個專案的開發箱使用者安全性群組。
- 若要啟用開發人員中心的專案層級目錄: 具有訂用帳戶寫入權限的平台工程師。
- 若要啟用專案的目錄同步設定: 具有訂用帳戶寫入權限的平台工程師。
- 若要將目錄附加至專案: 專案的開發人員中心專案管理員或參與者權限。
Visual Studio Code - 安裝最新版本

建立映像定義檔

若要定義小組所需的工具、套件和設定,請建立 YAML 格式的映像定義檔案,以列出開發箱環境所需的工作。

使用內建工作或目錄進行自訂工作

工作是可重複使用的動作,來自內建基本項目 (WinGet、PowerShell 和 Git-Clone),或來自您附加至開發人員中心專案的目錄。 選擇最適合您的自訂需求和專案要求的來源。

  • 使用 WinGet、PowerShell 和 Git-Clone 內建工作。 開發箱的開發中心原生支援 PowerShell 和 WinGet 工作。 如果您的自訂只需要 PowerShell、WinGet 或 Git-Clone,您可以開始使用這些內建工作,並建立映像定義檔案。 如需詳細資訊,請參閱 建立映像定義檔

    這很重要

    WinGet 內建工作與 WinGet 可執行檔不同。 WinGet 內建工作是以 PowerShell WinGet Cmdlet 為基礎。

  • 使用目錄來定義自定義工作。 建立您自己的自訂工作。 若要讓自訂工作可供整個組織使用,請將具有自訂工作定義的目錄附加至您的開發人員中心。 Dev Box 支援 Azure Repos 和 GitHub 目錄。 因為工作只會在開發人員中心定義,因此將工作和映像定義儲存在不同的存放庫中。

    若要深入了解如何定義自訂工作,請參閱設定開發箱自訂的工作

開發箱支援具有 GitHub Copilot 代理程式模式的代理程式工作流程。 使用自然語言提示來產生映像定義檔案 (imagedefinition.yaml)。 GitHub Copilot 可讓您更輕鬆地設定開發箱環境,因為您可以透過交談方式描述您的需求,而不是手動建立 YAML 檔案。

開發箱代理程式工作流程可讓您:

  • 模擬您目前的開發環境 - 產生或變更符合您目前電腦設定的定義。
  • 使用存放庫內容 - 在特定 GitHub 存放庫的內容中建立或變更定義。
  • 使用自然語言指令 - 透過描述您想要的開發環境來產生映像定義檔案。

備註

代理程式工作流程僅支援開發箱基本工作,包括 WinGet、PowerShell 和 Git-Clone。

產生映像定義檔案

  1. 打開 Visual Studio Code。

  2. 安裝開發箱延伸模組。

    開啟延伸模組 (Ctrl+Shift+X),搜尋開發箱,然後安裝延伸模組。

    Visual Studio Code 中 [延伸模組] 窗格的螢幕擷取畫面,顯示開發箱延伸模組。

  3. 安裝在 VS Code 中設定的 GitHub Copilot 延伸模組

  4. 透過在設定編輯器中設定 chat.agent.enabled 來確保已啟用代理程式模式。 此設定需要 Visual Studio Code 1.99 或更新版本。

  5. 在 VS Code 中開啟 Copilot Chat。

    • 確定 [選取工具] 底下已預先選取 [開發箱工具]

      Visual Studio Code 中 [Copilot Chat] 窗格的螢幕擷取畫面,顯示預先選取的開發箱工具。

      Visual Studio Code 中 [Copilot Chat] 介面的螢幕擷取畫面。

    • 選擇 [代理程式模式],然後選擇模型:[Claude 3.5 Sonnet]

      Copilot Chat 中代理程式模式選取項目的螢幕截圖,顯示 Claude 3.5 Sonnet 模型。

  6. 提供自然語言提示,例如:

    • 「我想設定一個開發箱,其中包含處理這個 [存放庫名稱] 存放庫所需的所有工具和套件。」

    • 「我想在開發箱上預先安裝 Visual Studio 2022 Enterprise、Visual Studio Code、Git、.NET SDK 8、Node.js LTS 和 Docker Desktop,並將小組的存放庫 [URL] 複製到開發箱上。」

    • 「我想設定一個開發箱,其中包含我目前電腦上安裝的所有開發工具和套件。」

    小提示

    如果您想要在存放庫的內容中產生定義,請在 Visual Studio Code 中複製並開啟特定存放庫。

  7. 請依照提示設定套件。

    • 出現提示時,選取 [繼續] 以繼續套件設定。

    • Copilot 會產生 imagedefinition.yaml 檔案。

  8. 使用更多提示來縮小搜尋範圍。

    • 繼續與代理程式互動,直到您想要的工具和套件出現在檔案中。

將映像定義檔案上傳至存放庫

您可以使用 GitHub 或 Azure Repos 存放庫作為目錄,讓映像定義檔案可從開發箱專案存取。 每個專案都可以有一個目錄,可儲存多個映像定義檔案,而您可以在集區上設定這些檔案,以符合開發人員小組的需求。

一旦您有了要使用的映像定義檔案,請將其上傳至目錄。 下列各節說明如何將目錄附加至專案,並在設定開發箱集區時讓映像定義可供選取。

在專案層級設定映像定義

專案可協助您有效率地管理開發箱資源。 您可以為每個開發人員小組指派其本身的專案,以有效地組織資源。 在目錄存放庫中建立多個映像定義,每個定義都會在本身的資料夾中,以專案下的不同開發人員小組為目標。

啟用專案層級目錄

請先在開發人員中心層級啟用專案層級目錄,才能將目錄新增至專案。 若要在開發人員中心層級啟用專案層級目錄:

  1. Azure 入口網站中,前往您的開發人員中心。

  2. 在左側功能表的 [設定] 底下,選取 [開發人員中心設定]

  3. [專案層級目錄] 底下,選取 [ 啟用每個項目的目錄],然後選取 [ 套用]。

    開發人員中心設定頁面的螢幕擷取畫面,其中 [專案層級目錄] 窗格已開啟,並選取 [啟用每個專案的目錄] 選項。

如需如何將目錄新增至專案的詳細資訊,請參閱 從 GitHub 或 Azure Repos 新增和設定目錄

設定專案的目錄同步設定

設定您的專案以從目錄中同步處理映像定義。 此設定可讓您使用目錄中的映像定義來建立開發箱集區。

  1. 登入 Azure 入口網站

  2. 在 [搜尋] 方塊中輸入「projects」。 從結果清單中,選取 [專案]

  3. 開啟您想要設定目錄同步設定的開發箱專案。

  4. 選取 [目錄]

  5. 選取 [同步設定]

    Azure 入口網站中 [目錄] 窗格的螢幕擷取畫面,其中已醒目提示 [同步設定] 的按鈕。

  6. 在 [同步設定] 窗格中,選取 [映像定義],然後選取 [儲存]

    Azure 入口網站中 [同步設定] 窗格的螢幕擷取畫面,其中已醒目提示 [映像定義] 核取方塊。

附加包含映像定義檔案的目錄

若要使用映像定義檔案,請將包含該檔案的目錄附加至您的專案。 這會讓映像定義在設定開發箱集區時可供選取。

[映像定義] 窗格會顯示專案可以使用的映像定義。

Azure 入口網站窗格的螢幕擷取畫面,顯示專案可用的映像定義。

若要了解如何附加目錄,請參閱從 GitHub 或 Azure Repos 新增和設定目錄

設定開發箱集區以使用映像定義

讓您的開發小組使用自訂,方法是使用映像定義檔案設定開發箱集區。 將映像定義檔案作為目錄儲存在連結至專案的存放庫中。 將此自訂檔指定為集區的映像定義,並將自訂套用至新的開發箱。

請遵循下列步驟來建立開發箱集區,並指定映像定義:

  1. 登入 Azure 入口網站

  2. 在 [搜尋] 方塊中輸入「projects」。 在結果清單中,選取 [專案]

  3. 開啟您要用來建立新開發箱集區關聯的開發箱專案。

  4. 選取 [開發箱集區],然後選取 [建立]

  5. 在 [建立 Microsoft 開發箱集區] 窗格上,輸入下列值:

    設定 價值觀
    名稱 輸入集區的名稱。 開發人員在建立開發箱時可以看到集區名稱。 它在專案內必須是唯一的。
    定義 此方塊列出了可存取目錄和開發箱定義中的映像定義。 選取映像定義檔。
    網路連線 選取 [部署至 Microsoft 裝載的網路],或使用現有的網路連線。
    啟用單一登入 選取 [是],以允許此集區中開發箱的單一登入。 需要為組織設定單一登入。 如需詳細資訊,請參閱為開發箱啟用單一登入 (英文)。
    開發箱建立者權限 選取 [本機系統管理員] 或 [標準使用者]
    啟用自動停止 預設值為 [是]。 選取 [否] 以關閉自動停止排程。 您可以設定在建立集區之後自動停止排程。
    停止時間 選取停止集區中所有開發箱的時間。
    時區 選取停止時間的時區。
    授權 選取此核取方塊,以確認組織具有套用至此集區中開發箱的 Azure Hybrid Benefit 授權。

    顯示建立開發箱集區之窗格的螢幕擷取畫面。

  6. 選取 ,創建

  7. 檢查新的開發箱集區是否出現在清單中。 您可能需要重新整理畫面。

使用開發人員入口網站來建立開發箱

若要檢查系統是否已套用映像定義檔案中的自訂,請在開發箱開發人員入口網站建立開發箱。 請遵循 快速入門:使用 Dev Box 開發者入口網站建立並連接到開發方塊中的步驟。 然後連線到新的開發箱,並檢查自訂是否如預期般運作。

變更映像定義檔案,並建立新的開發箱來測試它們。 當您確定自訂正確無誤時,請建置可重複使用的映像。

在 Dev Box 自定義中使用模組化腳本和檔案

模組化腳本和檔案,例如 PowerShell 腳本、所需狀態設定 (DSC) 檔案、組態檔、文字檔或影像,可以儲存在共用目錄中,以便您可以跨多個影像重複使用和標準化 Dev Box 自定義。

它們旨在:

  • 在多個開發箱設定之間促進重複使用
  • 減少重複和維護開銷
  • 啟用一致的設置規範

目錄結構

與 imagedefinition.yaml 相同資料夾中的檔案,或其子資料夾中的檔案,會在建立時複製到開發箱。 您可以在執行自訂工作時使用這些檔案。

下圖顯示 Dev Box 自定義中模組化腳本和檔案的目錄結構。

顯示具有影像定義資料夾、Frontend-imagedef 和 backend-imagedef 子資料夾以及指令碼和檔案子資料夾的目錄結構的圖表。

在最上層,有一個 圖像定義文件 夾。 在裡面,您可以找到圖像定義子文件夾,例如 frontend-imagedefbackend-imagedef。 frontend-imagedef 資料夾有一個 PowerShell 腳本檔案。 backend-imagedef資料夾包含包含DSC檔案的子資料夾。 您可以使用任一結構來儲存指令碼和其他檔案。

參考模組化指令碼或檔案

映像定義檔案會設定在系統內容中執行的「工作」,以及在使用者內容中的新開發箱上首次登入後執行的 userTasks 清單。 使用任務的顯示名稱來闡明每個任務的用途。 在影像定義檔案中,參考您要執行的模組化指令碼,或您要包含的檔案。


$schema: "1.0"
name: "modular-script"
image: microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2
description: "This definition shows examples of referencing PowerShell scripts and DSC configuration files."

tasks:
  - name: ~/powershell
    displayName: "Modular Script"
    parameters:
      script: C:\ProgramData\Microsoft\DevBoxAgent\ImageDefinitions\catalog-name\modular-script\contoso.ps1
  - name: ~/winget
    displayName: "Install VS Code"
    parameters:
      configurationFile: C:\ProgramData\Microsoft\DevBoxAgent\ImageDefinitions\catalog-name\modular-script\contoso.dsc.yaml

userTasks:
  - name: ~/winget
    displayName: "Install Insomnia"
    parameters:
      configurationFile: C:\ProgramData\Microsoft\DevBoxAgent\ImageDefinitions\catalog-name\modular-script\contoso-user.dsc.yaml

開發箱會驗證所有工作是否都引用了內建工具 (例如 PowerShell 或 WinGet),或是可在 DevCenter 層級取得的工具。 它會將所有映像定義檔案下載到新開發箱上的設定目錄,以及相關的工作檔案。 然後,它會在其下載的任務目錄中執行每個任務,並在完成後上傳任務狀態。

後續步驟

現在您已經有了為開發小組設定和建立開發箱的映像定義檔,請瞭解如何使用開發人員中心映像來優化開發箱建立時間。