Použití Azure PowerShell k exportu šablony

Pokud chcete pomoct s vytvářením šablon Azure Resource Manager, můžete šablonu exportovat z existujících prostředků. Exportovaná šablona vám pomůže porozumět syntaxi JSON a vlastnostem, které nasazují vaše prostředky. Pokud chcete automatizovat budoucí nasazení, začněte s exportovanou šablonou a upravte ji podle svého scénáře. Proces exportu šablony se pokusí vytvořit použitelnou šablonu. Většina exportovaných šablon ale před nasazením prostředků Azure vyžaduje určité úpravy.

Resource Manager umožňuje vybrat jeden nebo více prostředků pro export do šablony. V šabloně se můžete zaměřit přesně na prostředky, které potřebujete.

Tento článek ukazuje, jak exportovat šablony prostřednictvím Azure PowerShell. Další možnosti najdete tady:

Zvolte správnou možnost exportu.

Existují dva způsoby, jak exportovat šablonu:

  • Export ze skupiny prostředků nebo prostředku Tato možnost vygeneruje novou šablonu z existujících prostředků. Exportovaná šablona je "snímek" aktuálního stavu skupiny prostředků. V této skupině prostředků můžete exportovat celou skupinu prostředků nebo konkrétní prostředky.

  • Uložit z historie. Tato možnost načte přesnou kopii šablony použité k nasazení. Nasazení zadáte z historie nasazení.

V závislosti na zvolené možnosti mají exportované šablony různé kvality.

Ze skupiny prostředků nebo prostředku Z historie
Šablona se vygeneruje automaticky. Před nasazením budete pravděpodobně chtít kód vylepšit. Šablona je přesná kopie šablony vytvořené autorem šablony. Je připravený k opětovnému nasazení bez jakýchkoli změn.
Šablona je snímek aktuálního stavu prostředků. Zahrnuje všechny ruční změny, které jste udělali po nasazení. Šablona zobrazuje pouze stav prostředků v době nasazení. Žádné ruční změny, které jste udělali po nasazení, nejsou zahrnuté.
Můžete vybrat, které prostředky ze skupiny prostředků chcete exportovat. Jsou zahrnuté všechny prostředky pro konkrétní nasazení. Nemůžete vybrat podmnožinu těchto prostředků ani přidat prostředky, které byly přidány v jinou dobu.
Šablona obsahuje všechny vlastnosti prostředků, včetně některých vlastností, které byste při nasazování normálně nenastavili. Před dalším využitím šablony můžete tyto vlastnosti odebrat nebo vyčistit. Šablona obsahuje pouze vlastnosti potřebné pro nasazení. Šablona je řídší a čitelnější.
Šablona pravděpodobně neobsahuje všechny parametry, které potřebujete pro opakované použití. Většina hodnot vlastností je pevně zakódována v šabloně. Pokud chcete šablonu znovu nasadit v jiných prostředích, musíte přidat parametry, které zvyšují schopnost konfigurovat prostředky. Výběr zahrnout parametry můžete zrušit, abyste mohli vytvářet vlastní parametry. Šablona obsahuje parametry, které usnadňují opětovné nasazení v různých prostředích.

Exportujte šablonu ze skupiny prostředků nebo prostředku v následujících případech:

  • Musíte zaznamenat změny prostředků, které byly provedeny po původním nasazení.
  • Chcete vybrat, které prostředky se mají exportovat.
  • Prostředky se nevytvořily pomocí šablony.

Exportujte šablonu z historie, když:

  • Chcete šablonu, která se dá snadno znovu použít.
  • Změny, které jste udělali po původním nasazení, nemusíte zahrnovat.

Omezení

Není zaručeno, že export proběhne úspěšně. Export není spolehlivý způsob, jak převést existující prostředky na šablony, které se dají použít v produkčním prostředí. Je lepší vytvářet prostředky od začátku pomocí ručně napsaného souboru Bicep, šablony ARM nebo terraformu.

Při exportu ze skupiny prostředků nebo prostředku se exportovaná šablona generuje z publikovaných schémat pro každý typ prostředku. V některých případech schéma nemá nejnovější verzi pro typ prostředku. Zkontrolujte exportovanou šablonu a ujistěte se, že obsahuje vlastnosti, které potřebujete. V případě potřeby upravte exportovanou šablonu tak, aby používala verzi rozhraní API, kterou potřebujete.

V exportovaných šablonách můžou chybět některé parametry hesla. Abyste mohli použít šablony k nasazení prostředků, musíte zkontrolovat referenční informace k šabloně a ručně přidat tyto parametry.

Funkce šablony exportu nepodporuje export Azure Data Factory prostředků. Informace o tom, jak exportovat prostředky služby Data Factory, najdete v tématu Kopírování nebo klonování datové továrny v Azure Data Factory.

Pokud chcete exportovat prostředky vytvořené prostřednictvím modelu nasazení Classic, musíte je migrovat do modelu nasazení Resource Manager.

Pokud se při exportu šablony zobrazí upozornění, které indikuje, že se typ prostředku neexportoval, můžete přesto zjistit vlastnosti daného prostředku. Informace o vlastnostech prostředku najdete v referenčních informacích k šabloně. Můžete se také podívat na azure REST API pro daný typ prostředku.

Ve skupině prostředků, pro kterou vytvoříte exportovanou šablonu, platí limit 200 prostředků. Pokud se pokusíte exportovat skupinu prostředků, která obsahuje více než 200 prostředků, zobrazí se chybová zpráva Export template is not supported for resource groups more than 200 resources .

Export šablony ze skupiny prostředků

Po nastavení skupiny prostředků můžete exportovat šablonu Azure Resource Manager pro skupinu prostředků.

Pokud chcete exportovat všechny prostředky ve skupině prostředků, použijte rutinu Export-AzResourceGroup a zadejte název skupiny prostředků.

Export-AzResourceGroup -ResourceGroupName demoGroup

Uloží šablonu jako místní soubor.

Místo exportu všech prostředků ve skupině prostředků můžete vybrat, které prostředky se mají exportovat.

Pokud chcete exportovat jeden prostředek, předejte toto ID prostředku.

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

Pokud chcete exportovat více prostředků, předejte ID prostředků v poli.

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

Při exportu šablony můžete určit, jestli se v šabloně použijí parametry. Ve výchozím nastavení jsou parametry pro názvy prostředků zahrnuté, ale nemají výchozí hodnotu.

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

Pokud při exportu -SkipResourceNameParameterization šablony použijete parametr, parametry pro názvy prostředků se do šablony nezahrnou. Místo toho se název prostředku nastaví přímo na prostředek na jeho aktuální hodnotu. Během nasazování nemůžete název přizpůsobit.

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

Pokud použijete -IncludeParameterDefaultValue parametr při exportu šablony, parametr šablony obsahuje výchozí hodnotu, která je nastavena na aktuální hodnotu. Můžete buď použít tuto výchozí hodnotu, nebo přepsat výchozí hodnotu předáním jiné hodnoty.

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

Uložení šablony z historie nasazení

Šablonu z nasazení můžete uložit v historii nasazení. Šablona, kterou získáte, je přesně ta, která se použila k nasazení.

Pokud chcete získat šablonu z nasazení skupiny prostředků, použijte rutinu Save-AzResourceGroupDeploymentTemplate . Zadáte název nasazení, které se má načíst. Nápovědu k získání názvu nasazení najdete v tématu Zobrazení historie nasazení pomocí Azure Resource Manager.

Save-AzResourceGroupDeploymentTemplate -ResourceGroupName demoGroup -DeploymentName demoDeployment

Šablona se uloží jako místní soubor s názvem nasazení.

Pokud chcete získat šablony nasazené na jiných úrovních, použijte:

Další kroky