Delen via


Azure CLI gebruiken om een sjabloon te exporteren

Als u hulp wilt bij het maken van Azure Resource Manager-sjablonen, kunt u een sjabloon exporteren uit bestaande resources. De geëxporteerde sjabloon helpt u inzicht te krijgen in de JSON-syntaxis en eigenschappen waarmee uw resources worden geïmplementeerd. Als u toekomstige implementaties wilt automatiseren, begint u met de geëxporteerde sjabloon en wijzigt u deze voor uw scenario. Het exportsjabloonproces probeert een bruikbare sjabloon te maken. Voor de meeste geëxporteerde sjablonen zijn echter enkele wijzigingen vereist voordat ze kunnen worden gebruikt voor het implementeren van Azure-resources.

Met Resource Manager kunt u een of meer resources kiezen voor het exporteren naar een sjabloon. U kunt zich richten op precies de resources die u nodig hebt in de sjabloon.

In dit artikel wordt beschreven hoe u sjablonen exporteert via Azure CLI. Zie voor andere opties:

De juiste exportoptie kiezen

Er zijn twee manieren om een sjabloon te exporteren:

  • Exporteren uit resourcegroep of resource. Met deze optie wordt een nieuwe sjabloon gegenereerd op basis van bestaande resources. De geëxporteerde sjabloon is een momentopname van de huidige status van de resourcegroep. U kunt een hele resourcegroep of specifieke resources binnen die resourcegroep exporteren.

  • Opslaan vanuit de geschiedenis. Met deze optie wordt een exacte kopie opgehaald van een sjabloon die wordt gebruikt voor implementatie. U geeft de implementatie op uit de implementatiegeschiedenis.

Afhankelijk van de optie die u kiest, hebben de geëxporteerde sjablonen verschillende kwaliteiten.

Van resourcegroep of resource Uit geschiedenis
Sjabloon wordt automatisch gegenereerd. Waarschijnlijk wilt u de code verbeteren voordat u deze implementeert. Sjabloon is een exacte kopie van de sjabloon die is gemaakt door de auteur van de sjabloon. Het is klaar om opnieuw te worden geïmplementeerd zonder wijzigingen.
Sjabloon is een momentopname van de huidige status van de resources. Het bevat eventuele handmatige wijzigingen die u na de implementatie hebt aangebracht. Sjabloon toont alleen de status van resources op het moment van de implementatie. Eventuele handmatige wijzigingen die u na de implementatie hebt aangebracht, zijn niet opgenomen.
U kunt selecteren welke resources u wilt exporteren uit een resourcegroep. Alle resources voor een specifieke implementatie zijn opgenomen. U kunt geen subset van deze resources kiezen of resources toevoegen die op een ander moment zijn toegevoegd.
Sjabloon bevat alle eigenschappen voor de resources, inclusief enkele eigenschappen die u normaal gesproken niet tijdens de implementatie zou instellen. U kunt deze eigenschappen verwijderen of opschonen voordat u de sjabloon opnieuw kunt gebruiken. Sjabloon bevat alleen de eigenschappen die nodig zijn voor de implementatie. De sjabloon is meer sparse en gemakkelijker te lezen.
Sjabloon bevat waarschijnlijk niet alle parameters die u nodig hebt voor hergebruik. De meeste eigenschapswaarden zijn vastgelegd in de sjabloon. Als u de sjabloon opnieuw wilt implementeren in andere omgevingen, moet u parameters toevoegen waarmee u de resources kunt configureren. U kunt de selectie Van parameters opnemen opheffen, zodat u uw eigen parameters kunt ontwerpen. Sjabloon bevat parameters waarmee u eenvoudig opnieuw kunt implementeren in verschillende omgevingen.

Exporteer de sjabloon uit een resourcegroep of resource wanneer:

  • U moet wijzigingen vastleggen in de resources die zijn aangebracht na de oorspronkelijke implementatie.
  • U wilt selecteren welke resources worden geëxporteerd.
  • De resources zijn niet gemaakt met een sjabloon.

Exporteer de sjabloon uit de geschiedenis wanneer:

  • U wilt een eenvoudig te hergebruiken sjabloon.
  • U hoeft geen wijzigingen op te nemen die u hebt aangebracht na de oorspronkelijke implementatie.

Beperkingen

Exporteren is niet gegarandeerd geslaagd. Exporteren is geen betrouwbare manier om bestaande resources om te zetten in sjablonen die in productie kunnen worden gebruikt. Het is beter om volledig nieuwe resources te maken met behulp van handgeschreven Bicep-bestand, ARM-sjabloon of terraform.

Wanneer u exporteert vanuit een resourcegroep of resource, wordt de geëxporteerde sjabloon gegenereerd op basis van de gepubliceerde schema's voor elk resourcetype. Af en toe heeft het schema niet de nieuwste versie voor een resourcetype. Controleer de geëxporteerde sjabloon om ervoor te zorgen dat deze de eigenschappen bevat die u nodig hebt. Bewerk indien nodig de geëxporteerde sjabloon om de API-versie te gebruiken die u nodig hebt.

Sommige wachtwoordparameters ontbreken mogelijk in de geëxporteerde sjablonen. U moet de sjabloonreferentie controleren en deze parameters handmatig toevoegen voordat u de sjablonen kunt gebruiken om resources te implementeren.

De exportsjabloonfunctie biedt geen ondersteuning voor het exporteren van Azure Data Factory-resources. Zie Een data factory kopiëren of klonen in Azure Data Factory voor meer informatie over het exporteren van Data Factory-resources.

Als u resources wilt exporteren die zijn gemaakt via het klassieke implementatiemodel, moet u ze migreren naar het Resource Manager-implementatiemodel.

Als u een waarschuwing krijgt bij het exporteren van een sjabloon die aangeeft dat een resourcetype niet is geëxporteerd, kunt u nog steeds de eigenschappen voor die resource detecteren. Zie de sjabloonreferentie voor resource-eigenschappen. U kunt ook de Azure REST API voor het resourcetype bekijken.

Er is een limiet van 200 resources in de resourcegroep waarvoor u de geëxporteerde sjabloon maakt. Als u probeert een resourcegroep met meer dan 200 resources te exporteren, wordt het foutbericht Export template is not supported for resource groups more than 200 resources weergegeven.

Sjabloon exporteren vanuit een resourcegroep

Nadat u de resourcegroep hebt ingesteld, kunt u een Azure Resource Manager-sjabloon voor de resourcegroep exporteren.

Als u alle resources in een resourcegroep wilt exporteren, gebruikt u az group export en geeft u de naam van de resourcegroep op.

az group export --name demoGroup

In het script wordt de sjabloon op de console weergegeven. Gebruik het volgende om op te slaan in een bestand:

az group export --name demoGroup > exportedtemplate.json

In plaats van alle resources in de resourcegroep te exporteren, kunt u selecteren welke resources u wilt exporteren.

Als u één resource wilt exporteren, geeft u die resource-id door.

storageAccountID=$(az resource show --resource-group demoGroup --name demostg --resource-type Microsoft.Storage/storageAccounts --query id --output tsv)
az group export --resource-group demoGroup --resource-ids $storageAccountID

Als u meer dan één resource wilt exporteren, geeft u de door spaties gescheiden resource-id's door. Als u alle resources wilt exporteren, geeft u dit argument niet op of geeft u *op.

az group export --resource-group <resource-group-name> --resource-ids $storageAccountID1 $storageAccountID2

Wanneer u de sjabloon exporteert, kunt u opgeven of parameters worden gebruikt in de sjabloon. Standaard worden parameters voor resourcenamen opgenomen, maar ze hebben geen standaardwaarde.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "type": "String"
  }
}

Als u de --skip-resource-name-params parameter gebruikt bij het exporteren van de sjabloon, worden parameters voor resourcenamen niet opgenomen in de sjabloon. In plaats daarvan wordt de resourcenaam rechtstreeks op de resource ingesteld op de huidige waarde. U kunt de naam niet aanpassen tijdens de implementatie.

"resources": [
  {
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2022-09-01",
    "name": "demoHostPlan",
    ...
  }
]

Als u de --include-parameter-default-value parameter gebruikt bij het exporteren van de sjabloon, bevat de sjabloonparameter een standaardwaarde die is ingesteld op de huidige waarde. U kunt deze standaardwaarde gebruiken of de standaardwaarde overschrijven door een andere waarde door te geven.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "defaultValue": "demoHostPlan",
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "defaultValue": "webSite3bwt23ktvdo36",
    "type": "String"
  }
}

Sjabloon opslaan uit de implementatiegeschiedenis

U kunt een sjabloon opslaan vanuit een implementatie in de implementatiegeschiedenis. De sjabloon die u krijgt, is precies de sjabloon die is gebruikt voor implementatie.

Gebruik de opdracht az deployment group export om een sjabloon op te halen uit een resourcegroepimplementatie. U geeft de naam op van de implementatie die moet worden opgehaald. Zie De implementatiegeschiedenis weergeven met Azure Resource Manager voor hulp bij het ophalen van de naam van een implementatie.

az deployment group export --resource-group demoGroup --name demoDeployment

De sjabloon wordt weergegeven in de console. Als u het bestand wilt opslaan, gebruikt u:

az deployment group export --resource-group demoGroup --name demoDeployment > demoDeployment.json

Als u sjablonen wilt implementeren op andere niveaus, gebruikt u:

Volgende stappen