ARM 템플릿의 범위 함수
Resource Manager는 Azure Resource Manager 템플릿(ARM 템플릿)에서 개발 범위 값을 가져오기 위한 다음 함수를 제공합니다.
매개 변수, 변수 또는 현재 배포에서 값을 가져오려면 배포 값 함수를 참조하세요.
managementGroup
managementGroup()
현재 배포에서 관리 그룹의 속성이 있는 개체를 반환합니다.
Bicep에서 managementGroup 범위 함수를 사용합니다.
설명
managementGroup()
은 관리 그룹 배포에만 사용될 수 있습니다. 배포 작업에 대한 현재 관리 그룹을 반환합니다. 현재 관리 그룹에 대한 속성을 가져오는 데 사용합니다.
반환 값
현재 관리 그룹에 대한 속성이 있는 개체입니다.
관리 그룹의 예
다음 예제에서는 현재 관리 그룹에 대한 속성을 반환합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"mgInfo": "[managementGroup()]"
},
"resources": [],
"outputs": {
"mgResult": {
"type": "object",
"value": "[variables('mgInfo')]"
}
}
}
그러면 다음을 반환합니다.
"mgResult": {
"type": "Object",
"value": {
"id": "/providers/Microsoft.Management/managementGroups/examplemg1",
"name": "examplemg1",
"properties": {
"details": {
"parent": {
"displayName": "Tenant Root Group",
"id": "/providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000"
},
"updatedBy": "00000000-0000-0000-0000-000000000000",
"updatedTime": "2020-07-23T21:05:52.661306Z",
"version": "1"
},
"displayName": "Example MG 1",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"type": "/providers/Microsoft.Management/managementGroups"
}
}
다음 예제에서는 새 관리 그룹을 만들고 이 기능을 사용하여 부모 관리 그룹을 설정합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[format('mg-{0}', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2020-05-01",
"scope": "/",
"name": "[parameters('mgName')]",
"properties": {
"details": {
"parent": {
"id": "[managementGroup().id]"
}
}
}
}
],
"outputs": {
"newManagementGroup": {
"type": "string",
"value": "[parameters('mgName')]"
}
}
}
resourceGroup
resourceGroup()
현재 리소스 그룹을 나타내는 개체를 반환합니다.
Bicep에서 resourceGroup 범위 함수를 사용합니다.
반환 값
반환된 개체는 다음 형식으로 되어 있습니다.
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"name": "{resourceGroupName}",
"type":"Microsoft.Resources/resourceGroups",
"location": "{resourceGroupLocation}",
"managedBy": "{identifier-of-managing-resource}",
"tags": {
},
"properties": {
"provisioningState": "{status}"
}
}
managedBy 속성은 다른 서비스에서 관리하는 리소스를 포함하는 리소스 그룹에 대해서만 반환됩니다. 관리형 애플리케이션, Databricks 및 AKS의 경우 속성 값은 관리하는 리소스의 리소스 ID입니다.
설명
resourceGroup()
함수는 구독 수준에서 배포된 템플릿에서 사용할 수 없습니다. 리소스 그룹에 배포된 템플릿에서만 사용할 수 있습니다. 부모 템플릿이 구독에 배포되는 경우에도 리소스 그룹을 대상으로 하는 연결된 템플릿 또는 중첩된 템플릿(내부 범위 포함)에서 resourceGroup()
함수를 사용할 수 있습니다. 이 시나리오에서는 연결된 템플릿이나 중첩된 템플릿이 리소스 그룹 수준에서 배포됩니다. 구독 수준 배포에서 리소스 그룹을 대상으로 지정하는 방법에 대한 자세한 내용은 둘 이상의 구독 또는 리소스 그룹에 Azure 리소스 배포를 참조하세요.
resourceGroup 함수는 일반적으로 리소스 그룹과 동일한 위치에 리소스를 만드는 데 사용됩니다. 다음 예제에서는 기본 매개 변수 값에 대해 리소스 그룹 위치를 사용합니다.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
또한 resourceGroup
함수를 사용하여 리소스 그룹의 태그를 리소스에 적용할 수 있습니다. 자세한 내용은 리소스 그룹에서 태그 적용을 참조하세요.
중첩된 템플릿을 사용하여 여러 리소스 그룹에 배포하는 경우 resourceGroup
함수를 평가하는 범위를 지정할 수 있습니다. 자세한 내용은 둘 이상의 구독 또는 리소스 그룹에 Azure 리소스 배포를 참조하세요.
리소스 그룹 예제
다음 예제에서는 리소스 그룹의 속성을 반환합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"resourceGroupOutput": {
"type": "object",
"value": "[resourceGroup()]"
}
}
}
앞의 예제는 다음과 같은 형식의 개체를 반환합니다.
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
구독
subscription()
현재 배포에 대한 구독 관련 세부 정보를 반환합니다.
Bicep에서 subscription 범위 함수를 사용합니다.
반환 값
이 함수는 다음 형식을 반환합니다.
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
설명
중첩된 템플릿을 사용하여 여러 구독에 배포하는 경우 subscription 함수를 평가하는 범위를 지정할 수 있습니다. 자세한 내용은 둘 이상의 구독 또는 리소스 그룹에 Azure 리소스 배포를 참조하세요.
구독 예제
다음 예에서는 출력 섹션에서 호출되는 구독 함수를 보여 줍니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"subscriptionOutput": {
"type": "object",
"value": "[subscription()]"
}
}
}
tenant
tenant()
사용자의 테넌트를 반환합니다.
Bicep에서 tenant 범위 함수를 사용합니다.
설명
tenant()
는 모든 배포 범위에서 사용될 수 있습니다. 항상 현재 테넌트를 반환합니다. 이 함수를 사용하여 현재 테넌트의 속성을 가져옵니다.
연결된 템플릿 또는 확장 리소스에 대한 범위를 설정할 때는 구문 "scope": "/"
를 사용합니다.
반환 값
현재 테넌트에 대한 속성이 있는 개체입니다.
테넌트의 예
다음 예제에서는 테넌트에 대한 속성을 반환합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"tenantInfo": "[tenant()]"
},
"resources": [],
"outputs": {
"tenantResult": {
"type": "object",
"value": "[variables('tenantInfo')]"
}
}
}
그러면 다음을 반환합니다.
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
다음 단계
- ARM 템플릿의 섹션에 대한 설명은 ARM 템플릿의 구조 및 구문 이해를 참조하십시오.
- 여러 템플릿을 병합하려면 Azure 리소스를 배포할 때 연결된 템플릿 및 중첩된 템플릿 사용을 참조하세요.
- 리소스 형식을 만들 때 지정된 횟수만큼 반복하려면 ARM 템플릿의 리소스 반복을 참조하세요.
- 만든 템플릿을 배포하는 방법을 보려면 ARM 템플릿 및 Azure PowerShell을 사용하여 리소스 배포를 참조하세요.