Använda Azure PowerShell för att exportera en mall

Du kan hjälpa till med att skapa Azure Resource Manager-mallar genom att exportera en mall från befintliga resurser. Den exporterade mallen hjälper dig att förstå JSON-syntaxen och egenskaperna som distribuerar dina resurser. Om du vill automatisera framtida distributioner börjar du med den exporterade mallen och ändrar den för ditt scenario. Exportmallsprocessen försöker skapa en användbar mall. De flesta exporterade mallar kräver dock vissa ändringar innan de kan användas för att distribuera Azure-resurser.

Resource Manager kan du välja en eller flera resurser för att exportera till en mall. Du kan fokusera på exakt de resurser som du behöver i mallen.

Den här artikeln visar hur du exporterar mallar via Azure PowerShell. Andra alternativ finns i:

Välj rätt exportalternativ

Det finns två sätt att exportera en mall:

  • Exportera från resursgrupp eller resurs. Det här alternativet genererar en ny mall från befintliga resurser. Den exporterade mallen är en "ögonblicksbild" av resursgruppens aktuella tillstånd. Du kan exportera en hel resursgrupp eller specifika resurser i den resursgruppen.

  • Spara från historiken. Det här alternativet hämtar en exakt kopia av en mall som används för distribution. Du anger distributionen från distributionshistoriken.

Beroende på vilket alternativ du väljer har de exporterade mallarna olika egenskaper.

Från resursgrupp eller resurs Från historik
Mallen genereras automatiskt. Du vill förmodligen förbättra koden innan du distribuerar den. Mallen är en exakt kopia av den som skapats av mallförfattaren. Den är redo att distribueras om utan några ändringar.
Mallen är en ögonblicksbild av resursernas aktuella tillstånd. Den innehåller alla manuella ändringar som du har gjort efter distributionen. Mallen visar endast tillståndet för resurser vid tidpunkten för distributionen. Eventuella manuella ändringar som du har gjort efter distributionen ingår inte.
Du kan välja vilka resurser från en resursgrupp som ska exporteras. Alla resurser för en specifik distribution ingår. Du kan inte välja en delmängd av dessa resurser eller lägga till resurser som har lagts till vid en annan tidpunkt.
Mallen innehåller alla egenskaper för resurserna, inklusive vissa egenskaper som du normalt inte skulle ange under distributionen. Du kanske vill ta bort eller rensa dessa egenskaper innan du återanvänder mallen. Mallen innehåller endast de egenskaper som behövs för distributionen. Mallen är mer gles och lättare att läsa.
Mallen innehåller förmodligen inte alla parametrar som du behöver för återanvändning. De flesta egenskapsvärden är hårdkodade i mallen. Om du vill distribuera om mallen i andra miljöer måste du lägga till parametrar som ökar möjligheten att konfigurera resurserna. Du kan avmarkera Inkludera parametrar så att du kan skapa egna parametrar. Mallen innehåller parametrar som gör det enkelt att distribuera om i olika miljöer.

Exportera mallen från en resursgrupp eller resurs när:

  • Du måste samla in ändringar i de resurser som gjordes efter den ursprungliga distributionen.
  • Du vill välja vilka resurser som ska exporteras.
  • Resurserna skapades inte med en mall.

Exportera mallen från historiken när:

  • Du vill ha en lättanvänd mall.
  • Du behöver inte inkludera ändringar som du gjorde efter den ursprungliga distributionen.

Begränsningar

Exporten är inte garanterad att lyckas. Export är inte ett tillförlitligt sätt att omvandla befintliga resurser till mallar som kan användas i produktion. Det är bättre att skapa resurser från grunden med hjälp av en handskriven Bicep-fil, ARM-mall eller terraform.

När du exporterar från en resursgrupp eller resurs genereras den exporterade mallen från de publicerade schemana för varje resurstyp. Ibland har schemat inte den senaste versionen för en resurstyp. Kontrollera att den exporterade mallen innehåller de egenskaper du behöver. Om det behövs redigerar du den exporterade mallen för att använda den API-version du behöver.

Vissa lösenordsparametrar kanske saknas i de exporterade mallarna. Du måste kontrollera mallreferensen och manuellt lägga till dessa parametrar innan du kan använda mallarna för att distribuera resurser.

Exportmallsfunktionen stöder inte export av Azure Data Factory resurser. Mer information om hur du kan exportera Data Factory-resurser finns i Kopiera eller klona en datafabrik i Azure Data Factory.

Om du vill exportera resurser som skapats via den klassiska distributionsmodellen måste du migrera dem till Resource Manager distributionsmodellen.

Om du får en varning när du exporterar en mall som anger att en resurstyp inte har exporterats kan du fortfarande identifiera egenskaperna för den resursen. Information om resursegenskaper finns i mallreferens. Du kan också titta på Azure REST API för resurstypen.

Det finns en gräns på 200 resurser i resursgruppen som du skapar den exporterade mallen för. Om du försöker exportera en resursgrupp som har fler än 200 resurser visas felmeddelandet Export template is not supported for resource groups more than 200 resources .

Exportera en mall från en resursgrupp

När du har konfigurerat resursgruppen kan du exportera en Azure Resource Manager-mall för resursgruppen.

Om du vill exportera alla resurser i en resursgrupp använder du cmdleten Export-AzResourceGroup och anger resursgruppens namn.

Export-AzResourceGroup -ResourceGroupName demoGroup

Mallen sparas som en lokal fil.

I stället för att exportera alla resurser i resursgruppen kan du välja vilka resurser som ska exporteras.

Om du vill exportera en resurs skickar du det resurs-ID:t.

$resource = Get-AzResource `
  -ResourceGroupName <resource-group-name> `
  -ResourceName <resource-name> `
  -ResourceType <resource-type>
Export-AzResourceGroup `
  -ResourceGroupName <resource-group-name> `
  -Resource $resource.ResourceId

Om du vill exportera fler än en resurs skickar du resurs-ID:t i en matris.

Export-AzResourceGroup `
  -ResourceGroupName <resource-group-name> `
  -Resource @($resource1.ResourceId, $resource2.ResourceId)

När du exporterar mallen kan du ange om parametrar ska användas i mallen. Som standard inkluderas parametrar för resursnamn, men de har inget standardvärde.

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

Om du använder parametern -SkipResourceNameParameterization när du exporterar mallen inkluderas inte parametrar för resursnamn i mallen. I stället anges resursnamnet direkt på resursen till dess aktuella värde. Du kan inte anpassa namnet under distributionen.

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

Om du använder parametern -IncludeParameterDefaultValue när du exporterar mallen innehåller mallparametern ett standardvärde som är inställt på det aktuella värdet. Du kan antingen använda det standardvärdet eller skriva över standardvärdet genom att skicka in ett annat värde.

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

Spara mallen från distributionshistoriken

Du kan spara en mall från en distribution i distributionshistoriken. Mallen som du får är exakt den som användes för distribution.

Om du vill hämta en mall från en resursgruppsdistribution använder du cmdleten Save-AzResourceGroupDeploymentTemplate . Du anger namnet på distributionen som ska hämtas. Hjälp med att hämta namnet på en distribution finns i Visa distributionshistorik med Azure Resource Manager.

Save-AzResourceGroupDeploymentTemplate -ResourceGroupName demoGroup -DeploymentName demoDeployment

Mallen sparas som en lokal fil med namnet på distributionen.

Om du vill få mallar distribuerade på andra nivåer använder du:

Nästa steg