Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pelajari cara menggunakan scope
properti dengan jenis sumber daya ekstensi di templat Azure Resource Manager (ARM). Sumber daya ekstensi memungkinkan Anda mengubah atau menambahkan kemampuan ke sumber daya lain, seperti menetapkan peran atau menerapkan kunci.
Sumber daya ekstensi adalah cara yang ampuh untuk mengelola izin, kebijakan, dan pengaturan lainnya pada sumber daya Azure. Untuk daftar lengkapnya, lihat Jenis sumber daya yang memperluas kemampuan sumber daya lain.
Properti scope
hanya tersedia untuk jenis sumber daya ekstensi. Untuk menentukan cakupan yang berbeda untuk jenis sumber daya yang bukan jenis ekstensi, gunakan penyebaran berlapis atau tertaut. Untuk informasi selengkapnya, lihat:
- Penyebaran grup sumber daya
- Penerapan layanan berlangganan
- Penyebaran grup manajemen
- Penyebaran penyewa
Terapkan pada cakupan penyebaran
Untuk menerapkan jenis sumber daya ekstensi pada cakupan penyebaran target, Anda menambahkan sumber daya ke templat Anda, seperti halnya dengan jenis sumber daya apa pun. Cakupan yang tersedia adalah:
- Grup sumber daya
- Langganan
- Grup Manajemen
- Penyewa
Templat berikut menyebarkan kunci.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
"name": "rgLock",
"properties": {
"level": "CanNotDelete",
"notes": "Resource Group should not be deleted."
}
}
]
}
Saat disebarkan ke grup sumber daya, grup sumber daya akan mengunci grup sumber daya.
az deployment group create \
--resource-group ExampleGroup \
--template-uri "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/scope/locktargetscope.json"
Contoh berikutnya menetapkan peran.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"principalId": {
"type": "string",
"metadata": {
"description": "The principal to assign the role to"
}
},
"builtInRoleType": {
"type": "string",
"allowedValues": [
"Owner",
"Contributor",
"Reader"
],
"metadata": {
"description": "Built-in role to assign"
}
},
"roleNameGuid": {
"type": "string",
"metadata": {
"description": "The role assignment name"
}
}
},
"variables": {
"roleDefinitionIds": {
"Owner": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635', subscription().subscriptionId)]",
"Contributor": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c', subscription().subscriptionId)]",
"Reader": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7', subscription().subscriptionId)]"
}
},
"resources": [
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
"name": "[parameters('roleNameGuid')]",
"properties": {
"roleDefinitionId": "[variables('roleDefinitionIds')[parameters('builtInRoleType')]]",
"principalId": "[parameters('principalId')]"
}
}
]
}
Saat disebarkan ke langganan, langganan menetapkan peran ke langganan.
az deployment sub create \
--name demoSubDeployment \
--location centralus \
--template-uri "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/scope/roletargetscope.json"
Terapkan ke sumber daya
Untuk menerapkan sumber daya ekstensi ke sumber daya, gunakan properti scope
. Atur properti cakupan ke nama sumber daya yang Anda tambahkan ekstensi. Properti cakupan adalah properti akar untuk jenis sumber daya ekstensi.
Contoh berikut membuat akun penyimpanan dan menerapkan peran padanya.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"principalId": {
"type": "string",
"metadata": {
"description": "The principal to assign the role to"
}
},
"builtInRoleType": {
"type": "string",
"allowedValues": [
"Owner",
"Contributor",
"Reader"
],
"metadata": {
"description": "Built-in role to assign"
}
},
"roleNameGuid": {
"type": "string",
"defaultValue": "[newGuid()]",
"metadata": {
"description": "A new GUID used to identify the role assignment"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location for the resources"
}
}
},
"variables": {
"roleDefinitionIds": {
"Owner": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635', subscription().subscriptionId)]",
"Contributor": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c', subscription().subscriptionId)]",
"Reader": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7', subscription().subscriptionId)]"
},
"storageName": "[format('storage{0}', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-01-01",
"name": "[variables('storageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
},
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
"scope": "[format('Microsoft.Storage/storageAccounts/{0}', variables('storageName'))]",
"name": "[parameters('roleNameGuid')]",
"properties": {
"roleDefinitionId": "[variables('roleDefinitionIds')[parameters('builtInRoleType')]]",
"principalId": "[parameters('principalId')]"
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', variables('storageName'))]"
]
}
]
}
ResourceGroup dan properti langganan hanya diizinkan pada penyebaran berlapis atau tertaut. Properti ini tidak diperbolehkan pada sumber daya individu. Gunakan penyebaran berlapis atau tertaut jika Anda ingin menyebarkan sumber daya ekstensi dengan cakupan yang diatur ke sumber daya di grup sumber daya yang berbeda.
Langkah selanjutnya
- Untuk memahami cara menentukan parameter dalam templat Anda, lihat Memahami struktur dan sintaksis templat ARM.
- Untuk tips mengatasi kesalahan penyebaran umum, lihat Memecahkan masalah kesalahan penyebaran Azure umum dengan Azure Resource Manager.
- Untuk informasi tentang menyebarkan templat yang memerlukan token SAS, lihat Menyebarkan templat ARM privat dengan token SAS.