다음을 통해 공유


사용자 지정 스키마 참조

이 참조 문서에서는 Microsoft Dev Box를 imagedefinition.yaml 사용자 지정하는 데 사용되는 파일 및 task.yaml 파일에 대한 자세한 정보를 제공합니다. 개발자는 이러한 YAML 파일을 사용하여 개발 상자를 프로비전하고 구성하기 위한 작업을 정의할 수 있습니다. 이 파일은 개발 환경에서 일관성과 효율성을 보장하는 데 도움이 됩니다. 이 문서에서는 PowerShell 및 WinGet과 같은 기본 제공 작업과 함께 두 파일 형식에 대한 스키마, 필수 특성 및 예제를 설명합니다.

Imagedefinition.yaml 파일

Dev Box YAML 파일을 사용하여 Dev Box를 만드는 동안 실행해야 하는 사용자 지정 작업을 정의할 수 있습니다. devbox.yaml 파일이 개발 팀에서 사용하는 기본 원본과 동일한 리포지토리에 있거나 파일이 중앙 집중식 구성 리포지토리에 있을 수 있습니다.

이미지 정의 YAML 예제:

$schema: 1.0
name: project-sample-1
image: MicrosoftWindowsDesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365
tasks:
- name: "powershell"
  inputs:
    command:

이름

필수: 이미지 정의에 대한 이 친숙한 이름은 이 devbox.yaml 파일과 연결됩니다. 이 설정은 풀을 만들고 업데이트할 때 사용할 수 있는 이미지 정의의 이름을 제어합니다.

name: myVSDevBox

이미지

필수: 이미지 정의의 기본 이미지로 사용하려는 이미지는 마켓플레이스 이미지일 수 있습니다.

image: MicrosoftWindowsDesktop_windows-ent-cpc_win11-21h2-ent-cpc-m365

또는 연결된 Azure Compute Gallery 인스턴스의 사용자 지정 이미지일 수 있습니다.

image: galleryname/imagename@version

개발자 센터에 Azure Compute Gallery 인스턴스를 연결하는 방법을 알아보려면 Microsoft Dev Box용 Azure Compute 갤러리 구성을 참조하세요.

개발자 센터에서 액세스할 수 있는 이미지 목록을 얻으려면 다음 az cli 명령을 사용합니다.

az devcenter admin image list --dev-center-name CustomizationsImagingHQ --resource-group TeamCustomizationsImagingRG --query "[].name"

개발자 센터 az cli 확장이 필요합니다.

az extension add --name devcenter

buildProperties

이 개체 컬렉션은 이미지에 대한 빌드 프로세스를 사용자 지정하는 데 사용할 수 있는 빌드 속성으로 구성됩니다.

networkConnection

선택적: 이미지를 만드는 동안 사용할 네트워크 연결을 지정합니다. 이 네트워크 연결을 사용하면 사용자 지정 작업이 지정된 네트워크에서 액세스할 수 있는 스토리지 계정 또는 리포지토리와 같은 리소스에 액세스할 수 있습니다. 네트워크 연결은 이미지를 만드는 데 사용하려면 먼저 개발자 센터에 연결해야 합니다.

예제:

buildProperties:
    networkConnection: "my-westus3"

작업

필수: 이 개체 컬렉션은 개발 상자를 프로비전할 때 실행할 Dev Box 사용자 지정 작업으로 구성됩니다. 작업에 제공되는 특정 입력은 작업에 따라 다릅니다.

예제:

tasks:
- name: winget
  parameters:
    package: GitHub.GitHubDesktop

모든 작업은 선택 사항인 timeout 속성을 지원합니다.

예제:

tasks:
- name: powershell
  timeout: 1800 # in seconds
  parameters:
    command: <command>

기본 제공 작업

PowerShell 및 WinGet은 기본 제공 작업으로 사용할 수 있습니다. 이러한 작업의 구현을 정의하는 개발자 센터 수준에서 카탈로그를 연결하지 않고 직접 호출할 수 있습니다.

WinGet 기본 제공 작업

이 기본 제공 작업은 개발 상자에 WinGet 구성을 적용합니다.

매개 변수:

  • configurationFile:

    • 형식: string
    • WinGet 구성 YAML 파일의 경로입니다. 파일은 로컬 컴퓨터에 있어야 합니다.
    • 필수: false
  • downloadUrl:

    • 형식: string
    • 구성 YAML 파일이 저장되는 공개적으로 액세스할 수 있는 URL입니다. 파일이 지정된 경로 configurationFile 로 다운로드됩니다.
    • 필수: false
  • inlineConfigurationBase64:

    • 형식: string
    • WinGet 구성 YAML 파일의 Base64로 인코딩된 문자열입니다. 파일이 지정된 경로 configurationFile 로 디코딩되거나 지정되지 않은 경우 임시 파일로 디코딩됩니다.
    • 필수: false
  • package:

    • 형식: string
    • 설치할 패키지의 이름입니다.
    • 구성 YAML 파일이 다른 매개 변수 아래에 제공된 경우 패키지 이름은 필요하지 않습니다.
    • 필수: false
  • version

    • 형식: string
    • 설치할 패키지의 버전입니다.
    • 구성 YAML 파일이 다른 매개 변수 아래에 제공된 경우 패키지 버전이 필요하지 않습니다.
    • 필수: false

PowerShell 기본 제공 작업

이 기본 제공 작업은 PowerShell 명령을 실행합니다.

매개 변수:

  • command:
    • 형식: string
    • 실행할 명령입니다.
    • 필수: true

task.yaml 파일

사용자 지정 작업은 다시 사용할 수 있는 설치 코드 또는 환경 구성 단위입니다. 개발자는 PowerShell 스크립트를 사용하여 스크립트를 작성하고 메타데이터 파일을 사용하여 task.yaml 설명합니다. 개발자는 이러한 작업을 사용하여 파일에서 devbox.yaml 참조하여 개발 상자를 사용자 지정합니다.

사용자 지정 작업을 정의할 때 개발자가 파일에서 devbox.yaml 사용할 수 있는 작업을 식별할 수 있습니다. PowerShell 명령을 실행하는 기능과 같은 높은 권한 작업을 제한할 수 있습니다.

다음 작업 정의 예제에서는 특정 작업 디렉터리에서 PowerShell 명령을 실행합니다.

name: powershell
description: Execute a powershell command
author: Microsoft Corporation
command: ".\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}"
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute
  workingDirectory:
    type: string
    defaultValue: ""
    required: false
    description: The working directory to execute the command in

특성

이름

필수: 이 고유 식별자는 .에서 devbox.yaml작업을 참조하는 데 사용됩니다. 이름은 작업이 존재하는 카탈로그의 컨텍스트에서 고유해야 합니다.

명명은 기존 Azure 리소스 제약 조건과 일치해야 합니다. 이름은 3자에서 63자 사이여야 합니다. 영숫자 문자로 시작해야 합니다. 이름은 영숫자 문자와 "-", "."또는 "_"로만 구성되어야 합니다. "/" 문자가 예약되어 있습니다.

name: powershell

설명

선택적: 이 특성은 작업을 설명합니다.

description: This task executes a powershell command

입력

필수: 이 특성은 이 태스크가 파일의 devbox.yaml 입력으로 사용하고 명령을 실행하는 동안 사용하는 매개 변수를 나열합니다. 각 부모 항목은 매개 변수의 이름을 나타내며 다음 키를 지원합니다.

  • type (필수): 이 매개 변수의 입력 데이터 형식입니다. string 또는 int일 수 있습니다.
  • defaultValue (필수): 이 매개 변수가 가져오는 기본값입니다.
  • required (필수): 이 매개 변수가 선택 사항인지 필수인지 여부를 지정하는 키입니다.
  • description (필수): 이 매개 변수가 나타내는 내용에 대한 설명입니다.
inputs:
  command:
    type: string
    defaultValue: ""
    required: true
    description: The command to execute

명령어

필수: 이 명령은 이 작업을 수행하는 데 사용됩니다. 제공된 명령 문자열은 로컬 컴퓨터의 Windows PowerShell에서 실행됩니다.

command: ".\runcommand.ps1

명령의 참조 변수

명령에서 매개 변수를 참조하려면 이중 중괄호로 변수 이름을 지정합니다. 예를 들면 {{parameter_name}}다음과 같습니다. 이러한 변수의 값은 명령이 실행되기 전에 보간됩니다.

command: ".\runcommand.ps1 -command {{command}} -workingDirectory {{workingDirectory}}"

타임아웃

선택적: 이 변수는 작업 시간이 초과되기 전에 태스크 실행이 완료되기를 기다리는 최대 시간(분)을 지정합니다. 기본값은 30분입니다.

timeout: 30

저자

선택적: 이 변수는 감사 및 문제 해결에 도움이 되는 작업 작성자를 식별합니다.

author: Contoso Corporation

documentationURL

선택적: 이 변수는 이 작업에 대한 설명서에 연결됩니다.

documentationURL: "https://link.to/documentation"

licenseURL

선택적: 이 변수는 이 작업의 라이선스에 연결됩니다.

licenseURL: "https://link.to/license"