Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du distribuerar dina resurser anger du att distributionen antingen är en inkrementell uppdatering eller en fullständig uppdatering. Skillnaden mellan dessa två lägen är hur Resource Manager hanterar befintliga resurser i resursgruppen som inte finns i mallen.
Viktigt!
Använd distributionsstackar för att utföra resursborttagningar när du använder ARM-mallar eller Bicep-filer, eftersom det fullständiga läget gradvis kommer att bli inaktuellt.
För båda lägena försöker Resource Manager skapa alla resurser som anges i mallen. Om resursen redan finns i resursgruppen och dess inställningar är oförändrade vidtas ingen åtgärd för resursen. Om du ändrar egenskapsvärdena för en resurs uppdateras resursen med de nya värdena. Om du försöker uppdatera platsen eller typen av en befintlig resurs misslyckas distributionen med ett fel. Distribuera i stället en ny resurs med den plats eller typ som du behöver.
Standardläget är inkrementellt.
Inkrementellt läge
I inkrementellt läge lämnar Resource Manager oförändrade resurser som finns i resursgruppen men som inte anges i mallen. Resurser i mallen läggs till i resursgruppen.
Viktigt!
Det rekommenderade distributionsläget är inkrementellt läge. Om du behöver ta bort resurser som en del av en Bicep-fil eller ARM JSON-mall använder du distributionsstackar.
När du distribuerar om en befintlig resurs i inkrementellt läge tillämpas alla egenskaper igen. Egenskaperna läggs inte till stegvis. Ett vanligt missförstånd är att tro att egenskaper som inte anges i mallen lämnas oförändrade. Om du inte anger vissa egenskaper tolkar Resource Manager distributionen som att skriva över dessa värden. Egenskaper som inte ingår i mallen återställs till standardvärdena. Ange alla värden som inte är standard för resursen, inte bara de som du uppdaterar. Resursdefinitionen i mallen innehåller alltid resursens slutliga tillstånd. Det kan inte representera en partiell uppdatering av en befintlig resurs.
Varning
I sällsynta fall kan du ange egenskaper antingen för en resurs eller för någon av dess underordnade resurser. Två vanliga exempel är undernät i virtuella nätverk och platskonfigurationsvärden för webbappar. I dessa fall måste du hantera inkrementella uppdateringar noggrant.
För undernät anger du värdena via subnets egenskapen på resursen Microsoft.Network/virtualNetworks . Definiera inte värdena via den underordnade resursen Microsoft.Network/virtualNetworks/undernät. Så länge undernäten har definierats i det virtuella nätverket kan du distribuera om det virtuella nätverket och inte förlora undernäten.
För platskonfigurationsvärden implementeras värdena i den underordnade resurstypen Microsoft.Web/sites/config. Om du distribuerar om webbappen och anger ett tomt objekt för platskonfigurationsvärdena uppdateras inte den underordnade resursen. Men om du anger nya webbplatskonfigurationsvärden uppdateras den underordnade resurstypen.
Fullständigt läge
Varning
Slutfört läge rekommenderas inte. Om du vill utföra borttagningar med Bicep- eller ARM-malldistributioner använder du Distributionsstackar.
I fullständigt läge tar Resource Manager bort resurser som finns i resursgruppen men som inte anges i mallen.
Anmärkning
Använd alltid what-if-operationen innan du distribuerar en mall i fullständigt läge. What-if visar vilka resurser som ska skapas, tas bort eller ändras. Använd "what-if"-analyser för att undvika att resurser tas bort oavsiktligt.
Om mallen innehåller en resurs som inte distribueras eftersom villkoret utvärderas till false beror resultatet på vilken REST API-version du använder för att distribuera mallen. Om du använder en tidigare version än 2019-05-10 tas inte resursen bort. Med 2019-05-10 eller senare tas resursen bort. De senaste versionerna av Azure PowerShell och Azure CLI tar bort resursen.
Var försiktig med att använda fullständigt läge med kopieringsloopar. Alla resurser som inte anges i mallen när du har löst kopieringsloopen tas bort.
Om du distribuerar till mer än en resursgrupp i en mall kan resurser i resursgruppen som anges i distributionsåtgärden tas bort. Resurser i de sekundära resursgrupperna tas inte bort.
Det finns vissa skillnader i hur resurstyper hanterar fullständig borttagning av lägen. Överordnade resurser tas bort automatiskt när de inte finns i en mall som distribueras i fullständigt läge. Vissa underordnade resurser tas inte bort automatiskt när de inte är med i mallen. Dessa underordnade resurser tas dock bort om den överordnade resursen tas bort.
Om din resursgrupp till exempel innehåller en DNS-zon (Microsoft.Network/dnsZones resurstyp) och en CNAME-post (Microsoft.Network/dnsZones/CNAME resurstyp) är DNS-zonen den överordnade resursen för CNAME-posten. Om du distribuerar i fullständigt läge och inte inkluderar DNS-zonen i mallen tas BÅDE DNS-zonen och CNAME-posten bort. Om du inkluderar DNS-zonen i mallen men inte inkluderar CNAME-posten tas inte CNAME bort.
En lista över hur resurstyper hanterar borttagning finns i Ta bort Azure-resurser för distributioner i fullständigt läge.
Om resursgruppen är låst tar inte slutfört läge bort resurserna.
Anmärkning
Endast mallar på rotnivå stöder fullständigt distributionsläge. För länkade eller kapslade mallar måste du använda inkrementellt läge.
Distributioner på prenumerationsnivå stöder inte fullständigt läge.
Portalen stöder för närvarande inte fullständigt läge.
Exempelresultat
Tänk på följande scenario för att illustrera skillnaden mellan inkrementella och fullständiga lägen.
Resursgruppen innehåller:
- Resurs A
- Resurs B
- Resurs C
Mallen innehåller:
- Resurs A
- Resurs B
- Resurs D
När resursgruppen distribueras i inkrementellt läge har den:
- Resurs A
- Resurs B
- Resurs C
- Resurs D
När resurs C distribueras i fullständigt läge tas den bort. Resursgruppen har:
- Resurs A
- Resurs B
- Resurs D
Ange distributionsläge
Om du vill ange distributionsläget när du distribuerar med PowerShell använder du parametern Mode .
New-AzResourceGroupDeployment `
  -Mode Complete `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile c:\MyTemplates\storage.json
Om du vill ange distributionsläget när du distribuerar med Azure CLI använder du parametern mode .
az deployment group create \
  --mode Complete \
  --name ExampleDeployment \
  --resource-group ExampleResourceGroup \
  --template-file storage.json
I följande exempel visas en länkad mall inställd på inkrementellt distributionsläge:
"resources": [
  {
    "type": "Microsoft.Resources/deployments",
    "apiVersion": "2020-10-01",
    "name": "linkedTemplate",
    "properties": {
      "mode": "Incremental",
          <nested-template-or-external-template>
    }
  }
]
Nästa steg
- Mer information om hur du skapar Resource Manager-mallar finns i Förstå strukturen och syntaxen för ARM-mallar.
- Mer information om hur du distribuerar resurser finns i Distribuera resurser med ARM-mallar och Azure PowerShell.
- Information om hur du visar åtgärder för en resursprovider finns i Azure REST API.