Sjablonen inzetten op verschillende niveaus
U begrijpt nu de verschillende niveaus waarop u resources kunt inzetten. In deze module leert u hoe u kunt beginnen met het schrijven van Bicep-bestanden voor deze doelstellingen.
Het doelbereik van een Bicep-bestand specificeren
Bicep moet het bereik weten waarop een bestand wordt geïmplementeerd. Deze informatie is belangrijk omdat Bicep ervoor moet zorgen dat de resources die u implementeert geldig zijn voor het bereik dat u gebruikt. De Bicep-extensie voor Visual Studio Code waarschuwt u bijvoorbeeld als u een resource probeert te definiëren in een niet-ondersteund bereik.
Gebruik het trefwoord targetScope
om Bicep te laten weten dat de resources in het bestand voor een specifiek bereik zijn. Hier is een voorbeeld van een Bicep-bestand dat resources implementeert op het niveau van de beheergroep:
targetScope = 'managementGroup'
resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2024-05-01' = {
// ...
}
Let op dat je Bicep vertelt om de resources op het niveau van een beheergroep uit te rollen, maar je specificeert niet welke beheergroep. Wanneer u de sjabloon implementeert, geeft u Bicep precies aan in welke beheergroep u de resources wilt implementeren. De Azure CLI- en Azure PowerShell-cmdlets bieden argumenten om deze informatie op te geven.
U kunt de targetScope
voor het bestand instellen op resourceGroup
, subscription
, managementGroup
of tenant
. Als u geen doelbereik opgeeft, wordt door Bicep uitgegaan van het resourceGroup
bereik.
Resourcegroepen maken
Nu u begrijpt hoe u implementaties maakt op verschillende bereiken, kunt u deze kennis toepassen op het maken van een resourcegroep. Dit is een resource met abonnementsbereik:
targetScope = 'subscription'
resource resourceGroup 'Microsoft.Resources/resourceGroups@2024-07-01' = {
name: 'example-resource-group'
location: 'westus'
}
In dit voorbeeld ziet u dat het Bicep-bestand een targetScope
van subscription
heeft, wat betekent dat Bicep standaard alle resources in het bestand als abonnementsbereik beschouwt.
Notitie
Verderop in deze module ziet u hoe u Bicep gebruikt om Azure-abonnementen en -beheergroepen te maken.
Een implementatie verzenden
Wanneer u een implementatie initieert, moet u Azure vertellen op welk bereik u deze wilt implementeren. Dit betekent dat u een andere Azure CLI-opdracht gebruikt voor elk implementatiebereik, zoals hier wordt weergegeven:
Ga als volgt te werk om in dit bereik uit te voeren: | Voer deze Azure CLI-opdracht uit: |
---|---|
Resourcegroep | az deployment group create |
Abonnement | az deployment sub create |
Beheergroep | az deployment mg create |
Huurder | az deployment tenant create |
Wanneer u een implementatie initieert, moet u Azure vertellen op welk bereik u deze wilt implementeren. Dit betekent dat u een andere PowerShell-cmdlet gebruikt voor elk implementatiebereik, zoals hier wordt weergegeven:
Om te implementeren binnen deze reikwijdte, doe het volgende: | Gebruik deze PowerShell-cmdlet: |
---|---|
Resourcegroep | New-AzResourceGroupDeployment |
Abonnement | New-AzSubscriptionDeployment |
Beheergroep | New-AzManagementGroupDeployment |
Huurder | New-AzTenantDeployment |
Azure slaat metagegevens over elke implementatie op. In tegenstelling tot implementaties op resourcegroepniveau, moet u bij implementaties op andere niveaus bepaalde gegevens opgeven, zodat Azure de metadata correct kan opslaan.
Locatie: de metagegevens van de implementatie moeten worden opgeslagen op een locatie die u opgeeft. U hoeft geen locatie op te geven voor resourcegroepsbereikimplementaties, omdat de metagegevens van de implementatie dezelfde locatie gebruiken als de resourcegroep. Wanneer u echter een implementatie maakt in het abonnement, de beheergroep of het tenantbereik, moet u de Azure-regio opgeven waarin de metagegevens van de implementatie zijn opgeslagen. De resources voor uw implementatie in deze scopes worden niet altijd gemaakt op de locatie die u voor de metagegevens hebt opgegeven.
naam: alle implementaties in Azure hebben een naam. U kunt Azure vragen om informatie over een implementatie met behulp van de naam. Wanneer u de Azure CLI of Azure PowerShell gebruikt om een implementatie te verzenden, hoeft u de naam niet op te geven. Maar als u dat niet doet, wordt de bestandsnaam van het sjabloonbestand gebruikt als de implementatienaam.
De combinatie van het bereik, de locatie en de naam van de implementatie moet uniek zijn. Stel dat u een abonnementsimplementatie met de naam my-deployment
maakt en de locatie VS - oost gebruikt om de metagegevens op te slaan. U kunt geen andere implementatie maken voor hetzelfde abonnement met de naam my-deployment
, zelfs als deze zich op een andere locatie bevindt, zoals Europa - west. Als u een andere implementatie maakt met de naam my-deployment
in de Oost-VS, wordt de bestaande implementatie overschreven.