Om een resource group aan te maken en een lock toe te passen, moet je de bovenstaande template op subscriptieniveau uitvoeren. In deze opzet maakt de main Bicep file de resource group aan en roept daarna een module aan om de lock toe te passen.
Bicep
targetScope = 'subscription'
param rgName string
param rgLocation string
resource createRg 'Microsoft.Resources/resourceGroups@2025-04-01 = {
name: rgName
location: rgLocation
}
module deployRgLock './lockRg.bicep' = {
name: 'lockDeployment'
scope: resourceGroup(createRg.name)
}
De module gebruikt een apart Bicep-bestand, lockRg.bicep om de resource group-lock te creëren.
resource createRgLock 'Microsoft.Authorization/locks@2020-05-01' = {
name: 'rgLock'
properties: {
level: 'CanNotDelete'
notes: 'Resource group and its resources should not be deleted.'
}
}
Wanneer je een specifieke resource binnen de resource group wilt vergrendelen, gebruik je de scope eigenschap in de lockdefinitie. Stel in op de naam van de resource die je wilt beveiligen.
param hostingPlanName string
param location string = resourceGroup().location
var siteName = 'ExampleSite${uniqueString(resourceGroup().id)}'
Het onderstaande voorbeeld toont een template die een App Service Plan, een website en een lock op de website aanmaakt. De lock bevat de scope-eigenschap, ingesteld op de website, zodat alleen die specifieke resource wordt beschermd.
resource serverFarm 'Microsoft.Web/serverfarms@2024-11-01' = {
name: hostingPlanName
location: location
sku: {
tier: 'Free'
name: 'f1'
capacity: 0
}
properties: {
targetWorkerCount: 1
}
}
resource webSite 'Microsoft.Web/sites@2024-11-01' = {
name: siteName
location: location
properties: {
serverFarmId: serverFarm.name
}
}
resource siteLock 'Microsoft.Authorization/locks@2020-05-01' = {
name: 'siteLock'
scope: webSite
properties:{
level: 'CanNotDelete'
notes: 'Site should not be deleted.'
}
}
Conclusie
We hebben besproken hoe Azure Resource Locks een effectieve manier zijn om onbedoelde verwijderingen of wijzigingen van resources te voorkomen.
Onthoud dat locks niet waterdicht zijn; ze voorkomen fouten, maar kunnen opzettelijke acties van bevoegde (of onbevoegde) gebruikers niet stoppen. Denk altijd goed na over mogelijke effecten op normale operaties voordat je locks toepast.