Distribuera mallar i olika omfång
Nu förstår du de olika omfång där du kan distribuera resurser. I den här lektionen får du lära dig hur du börjar skriva Bicep-filer som ska distribueras i dessa omfång.
Ange målomfånget för en Bicep-fil
Bicep måste känna till omfånget där en fil distribueras. Den här informationen är viktig eftersom Bicep måste se till att de resurser du distribuerar är giltiga för det omfång som du använder. Till exempel varnar Bicep-tillägget för Visual Studio Code om du försöker definiera en resurs i ett omfång som inte stöds.
Använd nyckelordet targetScope
för att berätta för Bicep att resurserna i filen är för ett specifikt omfång. Här är ett exempel på en Bicep-fil som distribuerar resurser i hanteringsgruppens omfång:
targetScope = 'managementGroup'
resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2024-05-01' = {
// ...
}
Observera att du uppmanar Bicep att distribuera resurserna i omfånget för en hanteringsgrupp, men du anger inte vilken hanteringsgrupp. När du distribuerar mallen berättar du för Bicep exakt vilken hanteringsgrupp du vill distribuera resurserna till. Azure CLI- och Azure PowerShell-cmdletarna innehåller argument för att ange den här informationen.
Du kan ange targetScope
för filen till resourceGroup
, subscription
, managementGroup
eller tenant
. Om du inte anger ett målomfång förutsätter Bicep omfånget resourceGroup
.
Skapa resursgrupper
Nu när du förstår hur du skapar distributioner i olika omfång kan du prova att använda den här förståelsen för att skapa en resursgrupp, som är en resurs med prenumerationsomfång:
targetScope = 'subscription'
resource resourceGroup 'Microsoft.Resources/resourceGroups@2024-07-01' = {
name: 'example-resource-group'
location: 'westus'
}
Observera i det här exemplet att Bicep-filen har en targetScope
av subscription
, vilket innebär att Bicep anser att alla resurser i filen är prenumerationsomfång som standard.
Kommentar
Du ser hur du använder Bicep för att skapa Azure-prenumerationer och hanteringsgrupper senare i den här modulen.
Skicka en distribution
När du initierar en distribution måste du tala om för Azure vilket omfång du vill distribuera den. Det innebär att du använder ett annat Azure CLI-kommando för varje distributionsomfång, som du ser här:
Så här distribuerar du i det här omfånget: | Kör det här Azure CLI-kommandot: |
---|---|
Resursgrupp | az deployment group create |
Prenumeration | az deployment sub create |
Hanteringsgrupp | az deployment mg create |
Klientorganisation | az deployment tenant create |
När du initierar en distribution måste du tala om för Azure vilket omfång du vill distribuera den. Det innebär att du använder en annan PowerShell-cmdlet för varje distributionsomfång, som du ser här:
Så här distribuerar du i det här omfånget: | Använd den här PowerShell-cmdleten: |
---|---|
Resursgrupp | New-AzResourceGroupDeployment |
Prenumeration | New-AzSubscriptionDeployment |
Hanteringsgrupp | New-AzManagementGroupDeployment |
Klientorganisation | New-AzTenantDeployment |
Azure lagrar metadata om varje distribution. Till skillnad från distributioner i resursgruppens omfång finns det viss information som du behöver ange när du distribuerar i andra omfång så att Azure kan lagra metadata korrekt:
Plats: Distributionsmetadata måste lagras på en plats som du anger. Du behöver inte ange någon plats för distributioner av resursgruppsomfång eftersom distributionsmetadata använder samma plats som resursgruppen. Men när du skapar en distribution i prenumerationen, hanteringsgruppen eller klientomfånget måste du ange den Azure-region som distributionsmetadata lagras i. Resurserna för distributionen i dessa omfång skapas inte alltid på samma plats som du angav för metadata.
Namn: Alla distributioner i Azure har ett namn. Du kan be Azure om information om en distribution med hjälp av dess namn. När du använder Azure CLI eller Azure PowerShell för att skicka en distribution behöver du inte ange namnet. Men om du inte gör det används mallfilens filnamn som distributionsnamn.
Kombinationen av distributionens omfång, plats och namn måste vara unik. Anta till exempel att du skapar en prenumerationsdistribution med namnet my-deployment
och använder platsen USA, östra för att lagra dess metadata. Du kan inte skapa en annan distribution till samma prenumeration med namnet my-deployment
, även om den finns på en annan plats som Europa, västra. Om du skapar en annan distribution med namnet my-deployment
i USA, östra skriver den över den befintliga distributionen.