Dela via


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

För att hjälpa dig att skapa Azure Resource Manager-mallar kan du 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. Exportmallen 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.

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

Den här artikeln visar hur du exporterar mallar via Azure CLI. 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 inom 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 viss distribution ingår. Du kan inte välja en delmängd av dessa resurser eller lägga till resurser som lades 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 igen. 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 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 den exporterade mallen för att se till att den innehåller de egenskaper du behöver. Om det behövs redigerar du den exporterade mallen för att använda den API-version som du behöver.

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

Funktionen exportmall 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 az group export och anger resursgruppens namn.

az group export --name demoGroup

Skriptet visar mallen i konsolen. Om du vill spara i en fil använder du:

az group export --name demoGroup > exportedtemplate.json

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.

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

Om du vill exportera mer än en resurs skickar du de blankstegsavgränsade resurs-ID:na. Om du vill exportera alla resurser anger du inte det här argumentet eller anger "*".

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

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 --skip-resource-name-params 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 --include-parameter-default-value 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 du får är exakt den som användes för distributionen.

Om du vill hämta en mall från en resursgruppsdistribution använder du kommandot az deployment group export . Du anger namnet på distributionen som ska hämtas. Mer information om hur du hämtar namnet på en distribution finns i Visa distributionshistorik med Azure Resource Manager.

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

Mallen visas i konsolen. Spara filen genom att använda:

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

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

Nästa steg