Azure CLI gebruiken om een sjabloon te exporteren

Als u wilt helpen 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. Tijdens het exportsjabloonproces wordt geprobeerd een bruikbare sjabloon te maken. Voor de meeste geëxporteerde sjablonen zijn echter enkele wijzigingen vereist voordat ze kunnen worden gebruikt om Azure-resources te implementeren.

met Resource Manager kunt u een of meer resources kiezen die u naar een sjabloon wilt exporteren. 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 vanuit de implementatiegeschiedenis.

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

Van resourcegroep of resource Uit de 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 implementatie. Handmatige wijzigingen die u na de implementatie hebt aangebracht, worden niet opgenomen.
U kunt selecteren welke resources uit een resourcegroep u wilt exporteren. Alle resources voor een specifieke implementatie zijn opgenomen. U kunt geen subset van deze resources kiezen of resources toevoegen die op een ander tijdstip zijn toegevoegd.
De sjabloon bevat alle eigenschappen voor de resources, inclusief enkele eigenschappen die u normaal gesproken niet zou instellen tijdens de implementatie. U kunt deze eigenschappen verwijderen of opschonen voordat u de sjabloon opnieuw gebruikt. De sjabloon bevat alleen de eigenschappen die nodig zijn voor de implementatie. De sjabloon is meer verspreid en gemakkelijker te lezen.
De 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 die de mogelijkheid om de resources te configureren vergroten. U kunt de selectie van Parameters opnemen opheffen, zodat u uw eigen parameters kunt maken. De sjabloon bevat parameters waarmee u eenvoudig opnieuw kunt implementeren in verschillende omgevingen.

Exporteer de sjabloon uit een resourcegroep of resource in de volgende gevallen:

  • 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 sjabloon die eenvoudig opnieuw kan worden gebruikt.
  • U hoeft geen wijzigingen op te nemen die u hebt aangebracht na de oorspronkelijke implementatie.

Beperkingen

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

Bij het exporteren vanuit een resourcegroep of resource wordt de geëxporteerde sjabloon gegenereerd op basis van de gepubliceerde schema's voor elk resourcetype. Soms heeft het schema niet de meest recente versie voor een resourcetype. Controleer de geëxporteerde sjabloon om te controleren of 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 functie voor het exporteren van sjablonen 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 sjabloonreferentie voor resource-eigenschappen. U kunt ook de Azure REST API bekijken voor het resourcetype.

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

Sjabloon exporteren vanuit een resourcegroep

Nadat de resourcegroep is 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. Als u het bestand wilt opslaan in een bestand, gebruikt u:

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 in de sjabloon worden gebruikt. 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 uit de implementatiegeschiedenis opslaan

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

Als u een sjabloon wilt ophalen uit een resourcegroepimplementatie, gebruikt u de opdracht az deployment group export . U geeft de naam op van de implementatie die u wilt ophalen. Zie 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 op andere niveaus wilt implementeren, gebruikt u:

Volgende stappen