Sjablonen inzetten op verschillende niveaus

Voltooid

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, managementGroupof 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 subscriptionheeft, 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.