Bicep 리소스 정의
풀 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.
각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.
리소스 형식
Microsoft.DevOpsInfrastructure/pools 리소스를 만들려면 템플릿에 다음 Bicep을 추가합니다.
resource symbolicname 'Microsoft.DevOpsInfrastructure/pools@2025-09-20' = {
scope: resourceSymbolicName or scope
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
name: 'string'
properties: {
agentProfile: {
resourcePredictions: any(...)
resourcePredictionsProfile: {
kind: 'string'
// For remaining properties, see ResourcePredictionsProfile objects
}
kind: 'string'
// For remaining properties, see AgentProfile objects
}
devCenterProjectResourceId: 'string'
fabricProfile: {
kind: 'string'
// For remaining properties, see FabricProfile objects
}
maximumConcurrency: int
organizationProfile: {
kind: 'string'
// For remaining properties, see OrganizationProfile objects
}
provisioningState: 'string'
runtimeConfiguration: {
workFolder: 'string'
}
}
tags: {
{customized property}: 'string'
}
}
AgentProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
Stateful의 경우 다음을 사용합니다.
{
gracePeriodTimeSpan: 'string'
kind: 'Stateful'
maxAgentLifetime: 'string'
}
상태 비저장의 경우 다음을 사용합니다.
{
kind: 'Stateless'
}
FabricProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
Vmss의 경우 다음을 사용합니다.
{
images: [
{
aliases: [
'string'
]
buffer: 'string'
ephemeralType: 'string'
resourceId: 'string'
wellKnownImageName: 'string'
}
]
kind: 'Vmss'
networkProfile: {
staticIpAddressCount: int
subnetId: 'string'
}
osProfile: {
logonType: 'string'
secretsManagementSettings: {
certificateStoreLocation: 'string'
certificateStoreName: 'string'
keyExportable: bool
observedCertificates: [
'string'
]
}
}
sku: {
name: 'string'
}
storageProfile: {
dataDisks: [
{
caching: 'string'
diskSizeGiB: int
driveLetter: 'string'
storageAccountType: 'string'
}
]
osDiskStorageAccountType: 'string'
}
}
OrganizationProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
AzureDevOps의 경우 다음을 사용합니다.
{
alias: 'string'
kind: 'AzureDevOps'
organizations: [
{
alias: 'string'
openAccess: bool
parallelism: int
projects: [
'string'
]
url: 'string'
}
]
permissionProfile: {
groups: [
'string'
]
kind: 'string'
users: [
'string'
]
}
}
GitHub의 경우 다음을 사용합니다.
{
kind: 'GitHub'
organizations: [
{
repositories: [
'string'
]
url: 'string'
}
]
}
ResourcePredictionsProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
자동의 경우 다음을 사용합니다.
{
kind: 'Automatic'
predictionPreference: 'string'
}
수동의 경우 다음을 사용합니다.
{
kind: 'Manual'
}
속성 값
Microsoft.DevOpsInfrastructure/pools
| Name | Description | Value |
|---|---|---|
| identity | 이 리소스에 할당된 관리 서비스 ID입니다. | ManagedServiceIdentity |
| location | 리소스가 있는 지리적 위치 | string(필수) |
| name | 리소스 이름 | string Constraints: 패턴 = ^[a-zA-Z0-9][a-zA-Z0-9-.]*$(필수) |
| properties | 이 리소스에 대한 리소스별 속성입니다. | PoolProperties |
| scope | 배포 범위와 다른 범위에서 리소스를 만들 때 사용합니다. | 이 속성을 리소스의 기호 이름으로 설정하여 확장 리소스를 적용합니다. |
| tags | 리소스 태그 | 태그 이름 및 값의 사전입니다. 템플릿 |
AgentProfile
| Name | Description | Value |
|---|---|---|
| kind | Stateful 형식에 대해 'Stateful'로 설정합니다. StatelessAgentProfile 형식에 대해 'Stateless'로 설정합니다. | 'Stateful' '상태 비저장'(필수) |
| resourcePredictions | 풀 버퍼/대기 에이전트를 정의합니다. | any |
| resourcePredictionsProfile | 풀 버퍼/대기 에이전트를 제공하는 방법을 정의합니다. | ResourcePredictionsProfile |
AutomaticResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | 대기 체계를 제공하는 방법을 결정합니다. | '자동'(필수) |
| predictionPreference | 비용과 성능 간의 균형을 결정합니다. | 'Balanced' 'BestPerformance' 'MoreCostEffective' 'MorePerformance' 'MostCostEffective' |
AzureDevOpsOrganizationProfile
| Name | Description | Value |
|---|---|---|
| 별명 | Azure DevOps 풀 이름을 참조하는 별칭입니다. | string |
| kind | OrganizationProfile에 대한 판별자 속성입니다. | 'AzureDevOps'(필수) |
| organizations | 풀이 있어야 하는 Azure DevOps 조직의 목록입니다. | 조직[](필수) |
| permissionProfile | Azure DevOps 풀의 관리자 계정을 결정하는 권한 유형입니다. | AzureDevOpsPermissionProfile |
AzureDevOpsPermissionProfile
| Name | Description | Value |
|---|---|---|
| groups | 전자 메일 주소 그룹화 | string[] |
| kind | Azure DevOps 풀에 대한 관리자 권한이 있는 사용자를 결정합니다. | 'CreatorOnly' 'Inherit' 'SpecificAccounts'(필수) |
| users | 사용자 전자 메일 주소 | string[] |
DataDisk
| Name | Description | Value |
|---|---|---|
| caching | 데이터 디스크에 사용할 캐싱 유형입니다. 캐싱의 기본값은 readwrite입니다. 캐싱 옵션에 대한 자세한 내용은 다음을 참조하세요. https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. | 'None' 'ReadOnly' 'ReadWrite' |
| diskSizeGiB | 초기 디스크 크기(기가바이트)입니다. | int |
| driveLetter | 빈 데이터 디스크의 드라이브 문자입니다. 지정하지 않으면 사용 가능한 첫 번째 문자가 됩니다. | string |
| storageAccountType | 데이터 디스크에 사용할 스토리지 계정 유형입니다. 생략하면 기본값은 "standard_lrs"입니다. | 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' |
DevOpsAzureSku
| Name | Description | Value |
|---|---|---|
| name | 풀에 있는 컴퓨터의 Azure SKU 이름입니다. | string(필수) |
FabricProfile
| Name | Description | Value |
|---|---|---|
| kind | 형식 VmssFabricProfile에 대해 'Vmss'로 설정합니다. | 'Vmss'(필수) |
GitHubOrganization
| Name | Description | Value |
|---|---|---|
| repositories | 풀을 만들어야 하는 리포지토리의 선택적 목록입니다. | string[] |
| url | 풀을 만들어야 하는 GitHub 조직 URL입니다. | string(필수) |
GitHubOrganizationProfile
| Name | Description | Value |
|---|---|---|
| kind | OrganizationProfile에 대한 판별자 속성입니다. | 'GitHub'(필수) |
| organizations | 풀이 있어야 하는 GitHub 조직/리포지토리 목록입니다. | GitHubOrganization[](필수) |
ManagedServiceIdentity
| Name | Description | Value |
|---|---|---|
| type | 관리 서비스 ID의 유형입니다(SystemAssigned 및 UserAssigned 형식이 모두 허용되는 경우). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned'(필수) |
| userAssignedIdentities | 리소스와 연결된 사용자 할당 ID 집합입니다. userAssignedIdentities 사전 키는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} 형식의 ARM 리소스 ID입니다. 사전 값은 요청에서 빈 개체({})일 수 있습니다. | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
| Name | Description | Value |
|---|
ManualResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | 대기 체계를 제공하는 방법을 결정합니다. | '수동'(필수) |
NetworkProfile
| Name | Description | Value |
|---|---|---|
| 정적 IpAddressCount | 풀에 할당된 나가는 연결에 대한 고정 공용 IP 주소 수입니다. | int |
| subnetId | 풀에 만든 모든 컴퓨터를 배치할 서브넷 ID입니다. | string |
Organization
| Name | Description | Value |
|---|---|---|
| 별명 | Azure DevOps 풀 이름을 참조하는 별칭입니다. | string |
| openAccess | 풀이 이 조직의 모든 프로젝트에 대해 열린 액세스 권한을 가져야 하는지 여부를 결정합니다. | bool |
| parallelism | 풀의 최대 동시성에서 이 조직에서 최대로 만들 수 있는 컴퓨터 수입니다. | int |
| projects | 풀을 만들어야 하는 프로젝트의 선택적 목록입니다. | string[] |
| url | 풀을 만들어야 하는 Azure DevOps 조직 URL입니다. | string(필수) |
OrganizationProfile
| Name | Description | Value |
|---|---|---|
| kind | AzureDevOpsOrganizationProfile 형식에 대해 'AzureDevOps'로 설정합니다. GitHubOrganizationProfile 형식에 대해 'GitHub'로 설정합니다. | 'AzureDevOps' 'GitHub'(필수) |
OsProfile
| Name | Description | Value |
|---|---|---|
| logonType | 서비스를 실행하는 방법을 결정합니다. 기본적으로 서비스로 설정됩니다. | 'Interactive' 'Service' |
| secretsManagementSettings | 풀에 있는 컴퓨터의 비밀 관리 설정입니다. | SecretsManagementSettings |
PoolImage
| Name | Description | Value |
|---|---|---|
| aliases | 이미지를 참조할 별칭 목록입니다. | string[] |
| buffer | 이 이미지에 할당할 버퍼의 백분율입니다. | string |
| ephemeralType | 이미지의 임시 형식입니다. | 'Automatic' 'CacheDisk' 'ResourceDisk' |
| resourceId | 이미지의 리소스 ID입니다. | string |
| wellKnownImageName | 고객이 사용할 수 있는 잘 알려진 이미지 집합에서 사용할 이미지입니다. | string |
PoolProperties
| Name | Description | Value |
|---|---|---|
| agentProfile | 컴퓨터가 작업을 실행한 후 처리되는 방법을 정의합니다. | AgentProfile (필수) |
| devCenterProjectResourceId | 풀이 속한 DevCenter Project의 리소스 ID입니다. | string(필수) |
| fabricProfile | 에이전트가 실행될 패브릭의 형식을 정의합니다. | FabricProfile (필수) |
| maximumConcurrency | 지정된 시간에 만들 수 있는 리소스 수를 정의합니다. | int Constraints: 최소값 = 1 최대값 = 10000(필수) |
| organizationProfile | 풀을 사용할 조직을 정의합니다. | OrganizationProfile (필수) |
| provisioningState | 현재 작업의 상태입니다. | 'Accepted' 'Canceled' 'Deleting' 'Failed' 'Provisioning' 'Succeeded' 'Updating' |
| 런타임구성 | 풀의 런타임 구성입니다. | 런타임 구성 |
ResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | AutomaticResourcePredictionsProfile 형식에 대해 'Automatic'으로 설정합니다. ManualResourcePredictionsProfile 형식에 대해 'Manual'로 설정합니다. | 'Automatic' '수동'(필수) |
런타임 구성
| Name | Description | Value |
|---|---|---|
| 작업 폴더 | 컴퓨터에 있는 작업 에이전트의 대상 작업 폴더입니다. | string |
SecretsManagementSettings
| Name | Description | Value |
|---|---|---|
| certificateStoreLocation | 컴퓨터에 인증서를 저장할 위치입니다. | string |
| certificateStoreName | 컴퓨터에서 사용할 인증서 저장소의 이름이며, 현재 'My' 및 'Root'가 지원됩니다. | 'My' 'Root' |
| keyExportable | 인증서의 키를 내보낼 수 있는지를 정의합니다. | bool(필수) |
| observedCertificates | 풀의 모든 컴퓨터에 설치할 인증서 목록입니다. | string[] (필수) |
Stateful
| Name | Description | Value |
|---|---|---|
| gracePeriodTimeSpan | 대기 에이전트가 없을 때 워크로드를 실행한 후 컴퓨터를 유지해야 하는 기간입니다. 최대값은 1주일입니다. | string |
| kind | AgentProfile에 대한 판별자 속성입니다. | '상태 저장'(필수) |
| maxAgentLifetime | 상태 저장 컴퓨터를 보관해야 하는 기간입니다. 최대값은 1주일입니다. | string |
StatelessAgentProfile
| Name | Description | Value |
|---|---|---|
| kind | AgentProfile에 대한 판별자 속성입니다. | '상태 비저장'(필수) |
StorageProfile
| Name | Description | Value |
|---|---|---|
| dataDisks | 연결할 빈 데이터 디스크 목록입니다. | DataDisk[] |
| osDiskStorageAccountType | 풀에 있는 컴퓨터의 Azure SKU 이름입니다. | 'Premium' 'Standard' 'StandardSSD' |
TrackedResourceTags
| Name | Description | Value |
|---|
UserAssignedIdentity
| Name | Description | Value |
|---|
VmssFabricProfile
| Name | Description | Value |
|---|---|---|
| images | 풀에 있는 컴퓨터의 VM 이미지입니다. | PoolImage[] (필수) |
| kind | FabricProfile에 대한 판별자 속성입니다. | 'Vmss'(필수) |
| networkProfile | 풀에 있는 컴퓨터의 네트워크 프로필입니다. | NetworkProfile |
| osProfile | 풀에 있는 컴퓨터의 OS 프로필입니다. | OsProfile |
| sku | 풀에 있는 컴퓨터의 Azure SKU입니다. | DevOpsAzureSku (필수) |
| storageProfile | 풀에 있는 컴퓨터의 스토리지 프로필입니다. | StorageProfile |
사용 예제
Azure 확인된 모듈
다음 Azure 확인된 모듈 사용하여 이 리소스 유형을 배포할 수 있습니다.
| Module | Description |
|---|---|
| DevOps 인프라 풀 | DevOps 인프라 풀용 AVM 리소스 모듈 |
ARM 템플릿 리소스 정의
풀 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.
각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.
리소스 형식
Microsoft.DevOpsInfrastructure/pools 리소스를 만들려면 템플릿에 다음 JSON을 추가합니다.
{
"type": "Microsoft.DevOpsInfrastructure/pools",
"apiVersion": "2025-09-20",
"name": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"properties": {
"agentProfile": {
"resourcePredictions": {},
"resourcePredictionsProfile": {
"kind": "string"
// For remaining properties, see ResourcePredictionsProfile objects
},
"kind": "string"
// For remaining properties, see AgentProfile objects
},
"devCenterProjectResourceId": "string",
"fabricProfile": {
"kind": "string"
// For remaining properties, see FabricProfile objects
},
"maximumConcurrency": "int",
"organizationProfile": {
"kind": "string"
// For remaining properties, see OrganizationProfile objects
},
"provisioningState": "string",
"runtimeConfiguration": {
"workFolder": "string"
}
},
"tags": {
"{customized property}": "string"
}
}
AgentProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
Stateful의 경우 다음을 사용합니다.
{
"gracePeriodTimeSpan": "string",
"kind": "Stateful",
"maxAgentLifetime": "string"
}
상태 비저장의 경우 다음을 사용합니다.
{
"kind": "Stateless"
}
FabricProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
Vmss의 경우 다음을 사용합니다.
{
"images": [
{
"aliases": [ "string" ],
"buffer": "string",
"ephemeralType": "string",
"resourceId": "string",
"wellKnownImageName": "string"
}
],
"kind": "Vmss",
"networkProfile": {
"staticIpAddressCount": "int",
"subnetId": "string"
},
"osProfile": {
"logonType": "string",
"secretsManagementSettings": {
"certificateStoreLocation": "string",
"certificateStoreName": "string",
"keyExportable": "bool",
"observedCertificates": [ "string" ]
}
},
"sku": {
"name": "string"
},
"storageProfile": {
"dataDisks": [
{
"caching": "string",
"diskSizeGiB": "int",
"driveLetter": "string",
"storageAccountType": "string"
}
],
"osDiskStorageAccountType": "string"
}
}
OrganizationProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
AzureDevOps의 경우 다음을 사용합니다.
{
"alias": "string",
"kind": "AzureDevOps",
"organizations": [
{
"alias": "string",
"openAccess": "bool",
"parallelism": "int",
"projects": [ "string" ],
"url": "string"
}
],
"permissionProfile": {
"groups": [ "string" ],
"kind": "string",
"users": [ "string" ]
}
}
GitHub의 경우 다음을 사용합니다.
{
"kind": "GitHub",
"organizations": [
{
"repositories": [ "string" ],
"url": "string"
}
]
}
ResourcePredictionsProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
자동의 경우 다음을 사용합니다.
{
"kind": "Automatic",
"predictionPreference": "string"
}
수동의 경우 다음을 사용합니다.
{
"kind": "Manual"
}
속성 값
Microsoft.DevOpsInfrastructure/pools
| Name | Description | Value |
|---|---|---|
| apiVersion | api 버전 | '2025-09-20' |
| identity | 이 리소스에 할당된 관리 서비스 ID입니다. | ManagedServiceIdentity |
| location | 리소스가 있는 지리적 위치 | string(필수) |
| name | 리소스 이름 | string Constraints: 패턴 = ^[a-zA-Z0-9][a-zA-Z0-9-.]*$(필수) |
| properties | 이 리소스에 대한 리소스별 속성입니다. | PoolProperties |
| tags | 리소스 태그 | 태그 이름 및 값의 사전입니다. 템플릿 |
| type | 리소스 종류 | 'Microsoft.DevOpsInfrastructure/pools' |
AgentProfile
| Name | Description | Value |
|---|---|---|
| kind | Stateful 형식에 대해 'Stateful'로 설정합니다. StatelessAgentProfile 형식에 대해 'Stateless'로 설정합니다. | 'Stateful' '상태 비저장'(필수) |
| resourcePredictions | 풀 버퍼/대기 에이전트를 정의합니다. | any |
| resourcePredictionsProfile | 풀 버퍼/대기 에이전트를 제공하는 방법을 정의합니다. | ResourcePredictionsProfile |
AutomaticResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | 대기 체계를 제공하는 방법을 결정합니다. | '자동'(필수) |
| predictionPreference | 비용과 성능 간의 균형을 결정합니다. | 'Balanced' 'BestPerformance' 'MoreCostEffective' 'MorePerformance' 'MostCostEffective' |
AzureDevOpsOrganizationProfile
| Name | Description | Value |
|---|---|---|
| 별명 | Azure DevOps 풀 이름을 참조하는 별칭입니다. | string |
| kind | OrganizationProfile에 대한 판별자 속성입니다. | 'AzureDevOps'(필수) |
| organizations | 풀이 있어야 하는 Azure DevOps 조직의 목록입니다. | 조직[](필수) |
| permissionProfile | Azure DevOps 풀의 관리자 계정을 결정하는 권한 유형입니다. | AzureDevOpsPermissionProfile |
AzureDevOpsPermissionProfile
| Name | Description | Value |
|---|---|---|
| groups | 전자 메일 주소 그룹화 | string[] |
| kind | Azure DevOps 풀에 대한 관리자 권한이 있는 사용자를 결정합니다. | 'CreatorOnly' 'Inherit' 'SpecificAccounts'(필수) |
| users | 사용자 전자 메일 주소 | string[] |
DataDisk
| Name | Description | Value |
|---|---|---|
| caching | 데이터 디스크에 사용할 캐싱 유형입니다. 캐싱의 기본값은 readwrite입니다. 캐싱 옵션에 대한 자세한 내용은 다음을 참조하세요. https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. | 'None' 'ReadOnly' 'ReadWrite' |
| diskSizeGiB | 초기 디스크 크기(기가바이트)입니다. | int |
| driveLetter | 빈 데이터 디스크의 드라이브 문자입니다. 지정하지 않으면 사용 가능한 첫 번째 문자가 됩니다. | string |
| storageAccountType | 데이터 디스크에 사용할 스토리지 계정 유형입니다. 생략하면 기본값은 "standard_lrs"입니다. | 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' |
DevOpsAzureSku
| Name | Description | Value |
|---|---|---|
| name | 풀에 있는 컴퓨터의 Azure SKU 이름입니다. | string(필수) |
FabricProfile
| Name | Description | Value |
|---|---|---|
| kind | 형식 VmssFabricProfile에 대해 'Vmss'로 설정합니다. | 'Vmss'(필수) |
GitHubOrganization
| Name | Description | Value |
|---|---|---|
| repositories | 풀을 만들어야 하는 리포지토리의 선택적 목록입니다. | string[] |
| url | 풀을 만들어야 하는 GitHub 조직 URL입니다. | string(필수) |
GitHubOrganizationProfile
| Name | Description | Value |
|---|---|---|
| kind | OrganizationProfile에 대한 판별자 속성입니다. | 'GitHub'(필수) |
| organizations | 풀이 있어야 하는 GitHub 조직/리포지토리 목록입니다. | GitHubOrganization[](필수) |
ManagedServiceIdentity
| Name | Description | Value |
|---|---|---|
| type | 관리 서비스 ID의 유형입니다(SystemAssigned 및 UserAssigned 형식이 모두 허용되는 경우). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned'(필수) |
| userAssignedIdentities | 리소스와 연결된 사용자 할당 ID 집합입니다. userAssignedIdentities 사전 키는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} 형식의 ARM 리소스 ID입니다. 사전 값은 요청에서 빈 개체({})일 수 있습니다. | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
| Name | Description | Value |
|---|
ManualResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | 대기 체계를 제공하는 방법을 결정합니다. | '수동'(필수) |
NetworkProfile
| Name | Description | Value |
|---|---|---|
| 정적 IpAddressCount | 풀에 할당된 나가는 연결에 대한 고정 공용 IP 주소 수입니다. | int |
| subnetId | 풀에 만든 모든 컴퓨터를 배치할 서브넷 ID입니다. | string |
Organization
| Name | Description | Value |
|---|---|---|
| 별명 | Azure DevOps 풀 이름을 참조하는 별칭입니다. | string |
| openAccess | 풀이 이 조직의 모든 프로젝트에 대해 열린 액세스 권한을 가져야 하는지 여부를 결정합니다. | bool |
| parallelism | 풀의 최대 동시성에서 이 조직에서 최대로 만들 수 있는 컴퓨터 수입니다. | int |
| projects | 풀을 만들어야 하는 프로젝트의 선택적 목록입니다. | string[] |
| url | 풀을 만들어야 하는 Azure DevOps 조직 URL입니다. | string(필수) |
OrganizationProfile
| Name | Description | Value |
|---|---|---|
| kind | AzureDevOpsOrganizationProfile 형식에 대해 'AzureDevOps'로 설정합니다. GitHubOrganizationProfile 형식에 대해 'GitHub'로 설정합니다. | 'AzureDevOps' 'GitHub'(필수) |
OsProfile
| Name | Description | Value |
|---|---|---|
| logonType | 서비스를 실행하는 방법을 결정합니다. 기본적으로 서비스로 설정됩니다. | 'Interactive' 'Service' |
| secretsManagementSettings | 풀에 있는 컴퓨터의 비밀 관리 설정입니다. | SecretsManagementSettings |
PoolImage
| Name | Description | Value |
|---|---|---|
| aliases | 이미지를 참조할 별칭 목록입니다. | string[] |
| buffer | 이 이미지에 할당할 버퍼의 백분율입니다. | string |
| ephemeralType | 이미지의 임시 형식입니다. | 'Automatic' 'CacheDisk' 'ResourceDisk' |
| resourceId | 이미지의 리소스 ID입니다. | string |
| wellKnownImageName | 고객이 사용할 수 있는 잘 알려진 이미지 집합에서 사용할 이미지입니다. | string |
PoolProperties
| Name | Description | Value |
|---|---|---|
| agentProfile | 컴퓨터가 작업을 실행한 후 처리되는 방법을 정의합니다. | AgentProfile (필수) |
| devCenterProjectResourceId | 풀이 속한 DevCenter Project의 리소스 ID입니다. | string(필수) |
| fabricProfile | 에이전트가 실행될 패브릭의 형식을 정의합니다. | FabricProfile (필수) |
| maximumConcurrency | 지정된 시간에 만들 수 있는 리소스 수를 정의합니다. | int Constraints: 최소값 = 1 최대값 = 10000(필수) |
| organizationProfile | 풀을 사용할 조직을 정의합니다. | OrganizationProfile (필수) |
| provisioningState | 현재 작업의 상태입니다. | 'Accepted' 'Canceled' 'Deleting' 'Failed' 'Provisioning' 'Succeeded' 'Updating' |
| 런타임구성 | 풀의 런타임 구성입니다. | 런타임 구성 |
ResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | AutomaticResourcePredictionsProfile 형식에 대해 'Automatic'으로 설정합니다. ManualResourcePredictionsProfile 형식에 대해 'Manual'로 설정합니다. | 'Automatic' '수동'(필수) |
런타임 구성
| Name | Description | Value |
|---|---|---|
| 작업 폴더 | 컴퓨터에 있는 작업 에이전트의 대상 작업 폴더입니다. | string |
SecretsManagementSettings
| Name | Description | Value |
|---|---|---|
| certificateStoreLocation | 컴퓨터에 인증서를 저장할 위치입니다. | string |
| certificateStoreName | 컴퓨터에서 사용할 인증서 저장소의 이름이며, 현재 'My' 및 'Root'가 지원됩니다. | 'My' 'Root' |
| keyExportable | 인증서의 키를 내보낼 수 있는지를 정의합니다. | bool(필수) |
| observedCertificates | 풀의 모든 컴퓨터에 설치할 인증서 목록입니다. | string[] (필수) |
Stateful
| Name | Description | Value |
|---|---|---|
| gracePeriodTimeSpan | 대기 에이전트가 없을 때 워크로드를 실행한 후 컴퓨터를 유지해야 하는 기간입니다. 최대값은 1주일입니다. | string |
| kind | AgentProfile에 대한 판별자 속성입니다. | '상태 저장'(필수) |
| maxAgentLifetime | 상태 저장 컴퓨터를 보관해야 하는 기간입니다. 최대값은 1주일입니다. | string |
StatelessAgentProfile
| Name | Description | Value |
|---|---|---|
| kind | AgentProfile에 대한 판별자 속성입니다. | '상태 비저장'(필수) |
StorageProfile
| Name | Description | Value |
|---|---|---|
| dataDisks | 연결할 빈 데이터 디스크 목록입니다. | DataDisk[] |
| osDiskStorageAccountType | 풀에 있는 컴퓨터의 Azure SKU 이름입니다. | 'Premium' 'Standard' 'StandardSSD' |
TrackedResourceTags
| Name | Description | Value |
|---|
UserAssignedIdentity
| Name | Description | Value |
|---|
VmssFabricProfile
| Name | Description | Value |
|---|---|---|
| images | 풀에 있는 컴퓨터의 VM 이미지입니다. | PoolImage[] (필수) |
| kind | FabricProfile에 대한 판별자 속성입니다. | 'Vmss'(필수) |
| networkProfile | 풀에 있는 컴퓨터의 네트워크 프로필입니다. | NetworkProfile |
| osProfile | 풀에 있는 컴퓨터의 OS 프로필입니다. | OsProfile |
| sku | 풀에 있는 컴퓨터의 Azure SKU입니다. | DevOpsAzureSku (필수) |
| storageProfile | 풀에 있는 컴퓨터의 스토리지 프로필입니다. | StorageProfile |
사용 예제
Terraform(AzAPI 공급자) 리소스 정의
풀 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.
각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.
리소스 형식
Microsoft.DevOpsInfrastructure/pools 리소스를 만들려면 템플릿에 다음 Terraform을 추가합니다.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.DevOpsInfrastructure/pools@2025-09-20"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
agentProfile = {
resourcePredictions = ?
resourcePredictionsProfile = {
kind = "string"
// For remaining properties, see ResourcePredictionsProfile objects
}
kind = "string"
// For remaining properties, see AgentProfile objects
}
devCenterProjectResourceId = "string"
fabricProfile = {
kind = "string"
// For remaining properties, see FabricProfile objects
}
maximumConcurrency = int
organizationProfile = {
kind = "string"
// For remaining properties, see OrganizationProfile objects
}
provisioningState = "string"
runtimeConfiguration = {
workFolder = "string"
}
}
}
}
AgentProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
Stateful의 경우 다음을 사용합니다.
{
gracePeriodTimeSpan = "string"
kind = "Stateful"
maxAgentLifetime = "string"
}
상태 비저장의 경우 다음을 사용합니다.
{
kind = "Stateless"
}
FabricProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
Vmss의 경우 다음을 사용합니다.
{
images = [
{
aliases = [
"string"
]
buffer = "string"
ephemeralType = "string"
resourceId = "string"
wellKnownImageName = "string"
}
]
kind = "Vmss"
networkProfile = {
staticIpAddressCount = int
subnetId = "string"
}
osProfile = {
logonType = "string"
secretsManagementSettings = {
certificateStoreLocation = "string"
certificateStoreName = "string"
keyExportable = bool
observedCertificates = [
"string"
]
}
}
sku = {
name = "string"
}
storageProfile = {
dataDisks = [
{
caching = "string"
diskSizeGiB = int
driveLetter = "string"
storageAccountType = "string"
}
]
osDiskStorageAccountType = "string"
}
}
OrganizationProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
AzureDevOps의 경우 다음을 사용합니다.
{
alias = "string"
kind = "AzureDevOps"
organizations = [
{
alias = "string"
openAccess = bool
parallelism = int
projects = [
"string"
]
url = "string"
}
]
permissionProfile = {
groups = [
"string"
]
kind = "string"
users = [
"string"
]
}
}
GitHub의 경우 다음을 사용합니다.
{
kind = "GitHub"
organizations = [
{
repositories = [
"string"
]
url = "string"
}
]
}
ResourcePredictionsProfile 개체
kind 속성을 설정하여 개체의 형식을 지정합니다.
자동의 경우 다음을 사용합니다.
{
kind = "Automatic"
predictionPreference = "string"
}
수동의 경우 다음을 사용합니다.
{
kind = "Manual"
}
속성 값
Microsoft.DevOpsInfrastructure/pools
| Name | Description | Value |
|---|---|---|
| identity | 이 리소스에 할당된 관리 서비스 ID입니다. | ManagedServiceIdentity |
| location | 리소스가 있는 지리적 위치 | string(필수) |
| name | 리소스 이름 | string Constraints: 패턴 = ^[a-zA-Z0-9][a-zA-Z0-9-.]*$(필수) |
| parent_id | 이 확장 리소스를 적용할 리소스의 ID입니다. | string(필수) |
| properties | 이 리소스에 대한 리소스별 속성입니다. | PoolProperties |
| tags | 리소스 태그 | 태그 이름 및 값의 사전입니다. |
| type | 리소스 종류 | "Microsoft.DevOpsInfrastructure/pools@2025-09-20" |
AgentProfile
| Name | Description | Value |
|---|---|---|
| kind | Stateful 형식에 대해 'Stateful'로 설정합니다. StatelessAgentProfile 형식에 대해 'Stateless'로 설정합니다. | 'Stateful' '상태 비저장'(필수) |
| resourcePredictions | 풀 버퍼/대기 에이전트를 정의합니다. | any |
| resourcePredictionsProfile | 풀 버퍼/대기 에이전트를 제공하는 방법을 정의합니다. | ResourcePredictionsProfile |
AutomaticResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | 대기 체계를 제공하는 방법을 결정합니다. | '자동'(필수) |
| predictionPreference | 비용과 성능 간의 균형을 결정합니다. | 'Balanced' 'BestPerformance' 'MoreCostEffective' 'MorePerformance' 'MostCostEffective' |
AzureDevOpsOrganizationProfile
| Name | Description | Value |
|---|---|---|
| 별명 | Azure DevOps 풀 이름을 참조하는 별칭입니다. | string |
| kind | OrganizationProfile에 대한 판별자 속성입니다. | 'AzureDevOps'(필수) |
| organizations | 풀이 있어야 하는 Azure DevOps 조직의 목록입니다. | 조직[](필수) |
| permissionProfile | Azure DevOps 풀의 관리자 계정을 결정하는 권한 유형입니다. | AzureDevOpsPermissionProfile |
AzureDevOpsPermissionProfile
| Name | Description | Value |
|---|---|---|
| groups | 전자 메일 주소 그룹화 | string[] |
| kind | Azure DevOps 풀에 대한 관리자 권한이 있는 사용자를 결정합니다. | 'CreatorOnly' 'Inherit' 'SpecificAccounts'(필수) |
| users | 사용자 전자 메일 주소 | string[] |
DataDisk
| Name | Description | Value |
|---|---|---|
| caching | 데이터 디스크에 사용할 캐싱 유형입니다. 캐싱의 기본값은 readwrite입니다. 캐싱 옵션에 대한 자세한 내용은 다음을 참조하세요. https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. | 'None' 'ReadOnly' 'ReadWrite' |
| diskSizeGiB | 초기 디스크 크기(기가바이트)입니다. | int |
| driveLetter | 빈 데이터 디스크의 드라이브 문자입니다. 지정하지 않으면 사용 가능한 첫 번째 문자가 됩니다. | string |
| storageAccountType | 데이터 디스크에 사용할 스토리지 계정 유형입니다. 생략하면 기본값은 "standard_lrs"입니다. | 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' |
DevOpsAzureSku
| Name | Description | Value |
|---|---|---|
| name | 풀에 있는 컴퓨터의 Azure SKU 이름입니다. | string(필수) |
FabricProfile
| Name | Description | Value |
|---|---|---|
| kind | 형식 VmssFabricProfile에 대해 'Vmss'로 설정합니다. | 'Vmss'(필수) |
GitHubOrganization
| Name | Description | Value |
|---|---|---|
| repositories | 풀을 만들어야 하는 리포지토리의 선택적 목록입니다. | string[] |
| url | 풀을 만들어야 하는 GitHub 조직 URL입니다. | string(필수) |
GitHubOrganizationProfile
| Name | Description | Value |
|---|---|---|
| kind | OrganizationProfile에 대한 판별자 속성입니다. | 'GitHub'(필수) |
| organizations | 풀이 있어야 하는 GitHub 조직/리포지토리 목록입니다. | GitHubOrganization[](필수) |
ManagedServiceIdentity
| Name | Description | Value |
|---|---|---|
| type | 관리 서비스 ID의 유형입니다(SystemAssigned 및 UserAssigned 형식이 모두 허용되는 경우). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned'(필수) |
| userAssignedIdentities | 리소스와 연결된 사용자 할당 ID 집합입니다. userAssignedIdentities 사전 키는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} 형식의 ARM 리소스 ID입니다. 사전 값은 요청에서 빈 개체({})일 수 있습니다. | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
| Name | Description | Value |
|---|
ManualResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | 대기 체계를 제공하는 방법을 결정합니다. | '수동'(필수) |
NetworkProfile
| Name | Description | Value |
|---|---|---|
| 정적 IpAddressCount | 풀에 할당된 나가는 연결에 대한 고정 공용 IP 주소 수입니다. | int |
| subnetId | 풀에 만든 모든 컴퓨터를 배치할 서브넷 ID입니다. | string |
Organization
| Name | Description | Value |
|---|---|---|
| 별명 | Azure DevOps 풀 이름을 참조하는 별칭입니다. | string |
| openAccess | 풀이 이 조직의 모든 프로젝트에 대해 열린 액세스 권한을 가져야 하는지 여부를 결정합니다. | bool |
| parallelism | 풀의 최대 동시성에서 이 조직에서 최대로 만들 수 있는 컴퓨터 수입니다. | int |
| projects | 풀을 만들어야 하는 프로젝트의 선택적 목록입니다. | string[] |
| url | 풀을 만들어야 하는 Azure DevOps 조직 URL입니다. | string(필수) |
OrganizationProfile
| Name | Description | Value |
|---|---|---|
| kind | AzureDevOpsOrganizationProfile 형식에 대해 'AzureDevOps'로 설정합니다. GitHubOrganizationProfile 형식에 대해 'GitHub'로 설정합니다. | 'AzureDevOps' 'GitHub'(필수) |
OsProfile
| Name | Description | Value |
|---|---|---|
| logonType | 서비스를 실행하는 방법을 결정합니다. 기본적으로 서비스로 설정됩니다. | 'Interactive' 'Service' |
| secretsManagementSettings | 풀에 있는 컴퓨터의 비밀 관리 설정입니다. | SecretsManagementSettings |
PoolImage
| Name | Description | Value |
|---|---|---|
| aliases | 이미지를 참조할 별칭 목록입니다. | string[] |
| buffer | 이 이미지에 할당할 버퍼의 백분율입니다. | string |
| ephemeralType | 이미지의 임시 형식입니다. | 'Automatic' 'CacheDisk' 'ResourceDisk' |
| resourceId | 이미지의 리소스 ID입니다. | string |
| wellKnownImageName | 고객이 사용할 수 있는 잘 알려진 이미지 집합에서 사용할 이미지입니다. | string |
PoolProperties
| Name | Description | Value |
|---|---|---|
| agentProfile | 컴퓨터가 작업을 실행한 후 처리되는 방법을 정의합니다. | AgentProfile (필수) |
| devCenterProjectResourceId | 풀이 속한 DevCenter Project의 리소스 ID입니다. | string(필수) |
| fabricProfile | 에이전트가 실행될 패브릭의 형식을 정의합니다. | FabricProfile (필수) |
| maximumConcurrency | 지정된 시간에 만들 수 있는 리소스 수를 정의합니다. | int Constraints: 최소값 = 1 최대값 = 10000(필수) |
| organizationProfile | 풀을 사용할 조직을 정의합니다. | OrganizationProfile (필수) |
| provisioningState | 현재 작업의 상태입니다. | 'Accepted' 'Canceled' 'Deleting' 'Failed' 'Provisioning' 'Succeeded' 'Updating' |
| 런타임구성 | 풀의 런타임 구성입니다. | 런타임 구성 |
ResourcePredictionsProfile
| Name | Description | Value |
|---|---|---|
| kind | AutomaticResourcePredictionsProfile 형식에 대해 'Automatic'으로 설정합니다. ManualResourcePredictionsProfile 형식에 대해 'Manual'로 설정합니다. | 'Automatic' '수동'(필수) |
런타임 구성
| Name | Description | Value |
|---|---|---|
| 작업 폴더 | 컴퓨터에 있는 작업 에이전트의 대상 작업 폴더입니다. | string |
SecretsManagementSettings
| Name | Description | Value |
|---|---|---|
| certificateStoreLocation | 컴퓨터에 인증서를 저장할 위치입니다. | string |
| certificateStoreName | 컴퓨터에서 사용할 인증서 저장소의 이름이며, 현재 'My' 및 'Root'가 지원됩니다. | 'My' 'Root' |
| keyExportable | 인증서의 키를 내보낼 수 있는지를 정의합니다. | bool(필수) |
| observedCertificates | 풀의 모든 컴퓨터에 설치할 인증서 목록입니다. | string[] (필수) |
Stateful
| Name | Description | Value |
|---|---|---|
| gracePeriodTimeSpan | 대기 에이전트가 없을 때 워크로드를 실행한 후 컴퓨터를 유지해야 하는 기간입니다. 최대값은 1주일입니다. | string |
| kind | AgentProfile에 대한 판별자 속성입니다. | '상태 저장'(필수) |
| maxAgentLifetime | 상태 저장 컴퓨터를 보관해야 하는 기간입니다. 최대값은 1주일입니다. | string |
StatelessAgentProfile
| Name | Description | Value |
|---|---|---|
| kind | AgentProfile에 대한 판별자 속성입니다. | '상태 비저장'(필수) |
StorageProfile
| Name | Description | Value |
|---|---|---|
| dataDisks | 연결할 빈 데이터 디스크 목록입니다. | DataDisk[] |
| osDiskStorageAccountType | 풀에 있는 컴퓨터의 Azure SKU 이름입니다. | 'Premium' 'Standard' 'StandardSSD' |
TrackedResourceTags
| Name | Description | Value |
|---|
UserAssignedIdentity
| Name | Description | Value |
|---|
VmssFabricProfile
| Name | Description | Value |
|---|---|---|
| images | 풀에 있는 컴퓨터의 VM 이미지입니다. | PoolImage[] (필수) |
| kind | FabricProfile에 대한 판별자 속성입니다. | 'Vmss'(필수) |
| networkProfile | 풀에 있는 컴퓨터의 네트워크 프로필입니다. | NetworkProfile |
| osProfile | 풀에 있는 컴퓨터의 OS 프로필입니다. | OsProfile |
| sku | 풀에 있는 컴퓨터의 Azure SKU입니다. | DevOpsAzureSku (필수) |
| storageProfile | 풀에 있는 컴퓨터의 스토리지 프로필입니다. | StorageProfile |
사용 예제
Azure 확인된 모듈
다음 Azure 확인된 모듈 사용하여 이 리소스 유형을 배포할 수 있습니다.
| Module | Description |
|---|---|
| DevOps 풀 | DevOps 풀용 AVM 리소스 모듈 |