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:
- Sjabloon exporteren met Azure Portal
- Sjabloon exporteren met Azure PowerShell
- REST API-export uit resourcegroep en REST API-export uit de implementatiegeschiedenis.
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:
- az deployment sub export for deployments to subscriptions
- az deployment mg export for deployments to management groups
- az deployment tenant export for deployments to tenants
Volgende stappen
- Meer informatie over het exporteren van sjablonen met Azure Portal, Azure PowerShell of REST API.
- Zie De structuur en syntaxis van Azure Resource Manager-sjablonen begrijpen voor meer informatie over de syntaxis van de Resource Manager-sjabloon.
- Zie de stapsgewijze zelfstudies voor meer informatie over het ontwikkelen van sjablonen.