이 참조 문서에서는 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"