Použití Azure CLI k exportu šablony

Pokud chcete pomoct s vytvářením šablon Azure Resource Manageru, můžete šablonu exportovat z existujících prostředků. Exportovaná šablona vám pomůže pochopit syntaxi a vlastnosti JSON, které nasazují vaše prostředky. Pokud chcete automatizovat budoucí nasazení, začněte exportovanou šablonou a upravte ji pro svůj scénář. 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. Můžete se zaměřit na přesně prostředky, které potřebujete v šabloně.

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

Volba správné možnosti exportu

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

  • Exportujte 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é pro nasazení. Určíte nasazení z historie nasazení.

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

Ze skupiny prostředků nebo prostředku Z historie
Šablona se automaticky vygeneruje. Před nasazením pravděpodobně budete chtít kód vylepšit. Šablona je přesná kopie šablony, kterou vytvořil autor š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 provedli po nasazení. Šablona zobrazuje stav prostředků pouze v době nasazení. Všechny ruční změny, které jste provedli po nasazení, nebudou zahrnuty.
Můžete vybrat, které prostředky ze skupiny prostředků chcete exportovat. Součástí jsou 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 jiném okamžiku.
Šablona obsahuje všechny vlastnosti pro prostředky, včetně některých vlastností, které byste normálně nenastavili během nasazování. Před opětovnou instalací š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ódovaná 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. Můžete zrušit výběr parametrů Zahrnout, abyste mohli vytvořit vlastní parametry. Šablona obsahuje parametry, které usnadňují opětovné nasazení v různých prostředích.

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

  • Potřebujete zaznamenat změny prostředků, které byly provedeny po původním nasazení.
  • Chcete vybrat, které prostředky se exportují.
  • Prostředky nebyly vytvořeny pomocí šablony.

Exportujte šablonu z historie v následujících případech:

  • Chcete snadno použít šablonu.
  • Změny, které jste provedli po původním nasazení, nemusíte zahrnovat.

Omezení

Export není zaručen, že bude úspěšný. Export není spolehlivý způsob, jak převést existující prostředky na šablony, které lze 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 vygeneruje 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 požadovanou verzi rozhraní API.

V exportovaných šablonách můžou chybět některé parametry hesla. Před nasazením prostředků je potřeba zkontrolovat referenční informace k šablonám a ručně přidat tyto parametry.

Funkce šablony exportu nepodporuje export prostředků Azure Data Factory. Informace o tom, jak exportovat prostředky služby Data Factory, najdete v tématu Kopírování nebo klonování datové továrny ve službě 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 typ prostředku nebyl exportován, můžete stále zjistit vlastnosti daného prostředku. Informace o vlastnostech prostředků najdete v referenčních informacích k šabloně. Můžete se také podívat na rozhraní Azure REST API pro daný typ prostředku.

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

Export šablony ze skupiny prostředků

Po úspěšném nastavení skupiny prostředků můžete exportovat šablonu Azure Resource Manageru pro skupinu prostředků.

Pokud chcete exportovat všechny prostředky ve skupině prostředků, použijte příkaz az group export a zadejte název skupiny prostředků.

az group export --name demoGroup

Skript zobrazí šablonu v konzole. Pokud chcete soubor uložit, použijte:

az group export --name demoGroup > exportedtemplate.json

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.

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

Pokud chcete exportovat více prostředků, předejte ID prostředků oddělených mezerami. Pokud chcete exportovat všechny prostředky, nezadávejte tento argument ani nezadávejte "*".

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

Při exportu šablony můžete určit, jestli se v šabloně používají 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 --skip-resource-name-params šablony použijete parametr, nebudou do šablony zahrnuty parametry názvů prostředků. Místo toho je název prostředku nastavený 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 při exportu --include-parameter-default-value šablony použijete parametr, parametr šablony obsahuje výchozí hodnotu nastavenou na aktuální hodnotu. Tuto výchozí hodnotu můžete použít nebo ji přepsat 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 můžete uložit z nasazení v historii nasazení. Šablona, kterou získáte, je přesně ta, která byla použita k nasazení.

Pokud chcete získat šablonu z nasazení skupiny prostředků, použijte příkaz az deployment group export . 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 Manageru.

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

Šablona se zobrazí v konzole. Pokud chcete soubor uložit, použijte:

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

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

Další kroky