Sjablonen implementeren op verschillende bereiken

Voltooid

U begrijpt nu de verschillende bereiken waarmee u resources kunt implementeren. In deze les leert u hoe u Bicep-bestanden schrijft om deze bereiken te implementeren.

Het doelbereik voor een Bicep-bestand opgeven

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 targetScope trefwoord om Bicep te laten weten dat de resources in het bestand voor een specifiek bereik zijn. Hier volgt een voorbeeld van een Bicep-bestand dat resources implementeert binnen het bereik van de beheergroep:

targetScope = 'managementGroup'

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2020-09-01' = {
  // ...
}

U ziet dat u Bicep vertelt om de resources te implementeren binnen het bereik van een beheergroep, maar u geeft niet op 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 het targetScope bestand instellen op resourceGroup, subscriptionof managementGrouptenant. 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@2021-01-01' = {
  name: 'example-resource-group'
  location: 'westus'
}

In dit voorbeeld ziet u dat het Bicep-bestand een targetScope van subscriptionheeft, wat betekent dat Bicep alle resources in het bestand standaard 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 te implementeren op dit bereik: Voer deze Azure CLI-opdracht uit:
Resourcegroep az deployment group create
Abonnement az deployment sub create
Beheergroep az deployment mg create
Tenant 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:

Ga als volgt te werk om te implementeren op dit bereik: Gebruik deze PowerShell-cmdlet:
Resourcegroep New-AzResourceGroupDeployment
Abonnement New-AzSubscriptionDeployment
Beheergroep New-AzManagementGroupDeployment
Tenant New-AzTenantDeployment

Azure slaat metagegevens over elke implementatie op. In tegenstelling tot implementaties binnen het bereik van de resourcegroep, zijn er enkele gegevens die u moet opgeven wanneer u implementeert op andere bereiken, zodat Azure de metagegevens 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 bereiken worden niet altijd gemaakt op dezelfde locatie die u hebt opgegeven voor de metagegevens.

  • 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 maakt met de naam my-deployment en de locatie VS - oost gebruikt om de metagegevens op te slaan. U kunt geen andere implementatie maken voor hetzelfde abonnement my-deployment, zelfs als deze zich op een andere locatie bevindt, zoals Europa - west. Als u een andere implementatie met de naam my-deployment VS - oost maakt, wordt de bestaande implementatie overschreven.