Převod a migrace prostředků do souboru Bicep

Dokončeno

Když zahájíte proces migrace na Bicep, je důležité postupovat podle strukturovaného procesu, aby se zajistilo, že váš soubor Bicep správně popisuje vaše prostředky Azure. Musíte se ujistit, že váš kód Bicep dodržuje osvědčené postupy a že je plně otestovaný a bezpečný pro následné nasazení. V této lekci se dozvíte o prvních dvou fázích migrace Bicep: fázi převodu a fázi migrace.

Diagram that shows the convert and migrate phases of the recommended workflow for migrating Azure resources to Bicep.

Hlavním cílem těchto dvou fází je připravit nový soubor Bicep, než ho později refaktorujete a otestujete.

Fáze převodu

Cílem fáze převodu migrace prostředků do Bicep je zachycení počáteční reprezentace vašich prostředků Azure. Soubor Bicep, který vytvoříte v této fázi, není dokončený a není připravený k použití. Soubor vám ale poskytne výchozí bod pro migraci.

Fáze převodu se skládá ze dvou možných kroků, které dokončíte postupně:

  1. Zachyťte reprezentaci vašich prostředků Azure.
  2. V případě potřeby pomocí příkazu převeďte reprezentaci JSON na Bicep decompile .

Diagram that shows a JSON template decompiled to JSON, and Azure resources that are exported to a JSON template, which is then decompiled.

Pokud máte existující šablonu JSON, kterou převádíte na Bicep, je první krok snadný, protože už máte zdrojovou šablonu. V této lekci se dozvíte, jak ho dekompilovat do Bicep.

Pokud převádíte prostředky Azure nasazené pomocí webu Azure Portal nebo jiného nástroje, musíte zaznamenat definice prostředků. Definice prostředků můžete exportovat a převést je na Bicep nebo můžete pomocí příkazu Vložit prostředek v editoru Visual Studio Code vložit reprezentaci prostředku Azure.

Jak Azure představuje prostředky

Azure Resource Manager je služba, která se používá k nasazení a správě prostředků v Azure. Resource Manager sleduje všechny prostředky nasazené do Azure bez ohledu na metodu použitou k nasazení prostředku. K interakci s Resource Managerem můžete použít Azure Portal, Azure CLI, Azure PowerShell, rozhraní REST API Resource Manageru a sady Azure SDK.

Diagram that shows Resource Manager accepting requests from all Azure clients and libraries.

V Azure existují dva typy operací: operace řídicí roviny a operace roviny dat. Operace řídicí roviny slouží ke správě prostředků ve vašem předplatném. Operace roviny dat se používají pro přístup k funkcím, které jsou vystaveny prostředkem. Například k vytvoření virtuálního počítače použijete operaci řídicí roviny, ale k připojení k virtuálnímu počítači pomocí protokolu RDP (Remote Desktop Protocol) použijete operaci roviny dat.

Export existujících prostředků do šablony JSON

Bez ohledu na to, jak se prostředky Azure vytvářejí, Resource Manager zpřístupňuje informace o jednotlivých prostředcích ve formátu JSON. Když požádáte o kopii reprezentace prostředku JSON, exportujete prostředek. Soubor JSON, který exportujete, se dá dekompilovat do Bicep.

Resource Manager nabízí několik způsobů, jak exportovat prostředky Azure do šablony. Pomocí webu Azure Portal, Azure CLI a rutin Azure PowerShellu můžete exportovat jednotlivé prostředky, více prostředků a celé skupiny prostředků.

Proces exportu je operace řídicí roviny, což znamená, že exportuje pouze konfiguraci prostředků Azure. Například při exportu virtuálního počítače se data na pevném disku virtuálního počítače neexportují. A když exportujete účet úložiště, objekty blob a další obsah účtu úložiště se do procesu exportu nezahrnou.

Při exportu existujících prostředků je potřeba zvážit několik věcí:

  • Exportovaná definice prostředku je snímek aktuálního stavu daného prostředku. Zahrnuje všechny změny provedené v prostředku od jeho počátečního nasazení.
  • Exportovaná šablona může obsahovat některé výchozí vlastnosti prostředků, které jsou obvykle vynechány z definice Bicep. Proces exportu může například přidat vlastnosti jen pro čtení, které Azure nastaví automaticky. Nemá smysl zahrnout tyto vlastnosti, protože jsou jen pro čtení. Při migraci na Bicep zvažte odebrání těchto vlastností z definic prostředků, aby soubory Bicep zůstaly bez zbytečného kódu, které by mohly způsobit nejasnosti.
  • Exportovaná šablona pravděpodobně nebude obsahovat všechny parametry, které budete potřebovat k opětovnému použití šablony. Při exportu šablony bude mnoho vlastností pevně zakódováno do šablony. Později v tomto modulu se dozvíte, jak přidat parametry.
  • Některé prostředky se nedají exportovat pomocí tohoto přístupu a musíte je v souboru Bicep definovat ručně. Později v této lekci se dozvíte, jak tyto prostředky znovu vytvořit.

Uložení nasazení do šablony JSON

Pokud jste někdy prostředek nasadili ručně z webu Azure Portal, možná jste si všimli možnosti Stáhnout šablonu pro automatizaci na kartě Zkontrolovat a vytvořit . Tato možnost uloží šablonu ARM JSON, která je založená na názvech a vlastnostech, které jste nastavili při vytváření prostředku na portálu.

Resource Manager také sleduje nasazení prostředků. Operace nasazení zahrnují změny odeslané prostředím pro vytváření prostředků webu Azure Portal a všemi nasazeními šablon ARM. Změny existujících prostředků provedených pomocí webu Azure Portal, rutin Azure PowerShellu, Azure CLI nebo jiných nástrojů obvykle nevytvoří nasazení.

Pokud byla nasazení vytvořená pomocí kompatibilního nástroje, můžete k šabloně nasazení přistupovat z historie nasazení skupiny prostředků. K ukládání nasazení můžete použít Azure Portal, Azure CLI nebo Azure PowerShell.

Při ukládání šablon je potřeba vzít v úvahu několik věcí pomocí této metody:

  • Uložená šablona zobrazuje stav prostředků v době nasazení. Nezahrnuje žádné změny, které byly provedeny po nasazení.
  • Pokud nasazení obsahovalo více prostředků, nemůžete vybrat konkrétní prostředky, které chcete zahrnout a vyloučit. Tato operace stáhne definici všech prostředků, které byly součástí počátečního nasazení. Když ale přejdete do fáze migrace procesu, můžete prostředky, které nepotřebujete, ignorovat ručně.
  • Šablona obsahuje pouze vlastnosti prostředků, které jsou potřeba pro nasazení.
  • Šablona může obsahovat parametry, které můžete použít k opětovnému nasazení šablony ve více prostředích. Musíte ale potvrdit, že tyto parametry vyhovují vašim potřebám.
  • Šablona pravděpodobně neobsahuje nadbytečné vlastnosti, ale přesto byste měli zkontrolovat, že šablona obsahuje vše, co očekáváte, a odeberte všechny nepotřebné vlastnosti.

Poznámka:

Prostředky ale exportujete buď exportem existujících prostředků, nebo uložením nasazení, zacházíte s exportovaným souborem jako s výchozím bodem a nepoužíváte ho přímo. Místo toho ji použijte jako výchozí bod pro konečnou šablonu.

Vložení existujících prostředků do Bicep

Rozšíření Bicep pro Visual Studio Code obsahuje příkaz Vložit prostředek , který zachycuje reprezentaci prostředku Azure bicep. Tento příkaz přečte definici JSON prostředku z Azure, odebere vlastnosti rozpoznané jako jen pro čtení a dekompiluje JSON do Bicep. Stejně jako u funkce exportu je možné výsledný kód Bicep použít jako výchozí bod pro konečný soubor Bicep.

Prostředek můžete vložit otevřením palety příkazů editoru Visual Studio Code. Použijte kombinaci kláves Ctrl+Shift+P ve Windows a Linuxu a ⌘+Shift+P v systému macOS.

Dekompilování zdrojové šablony ARM JSON

Druhým krokem při migraci prostředků Azure do Bicep je převod šablon JSON ARM a prostředků Azure na šablony Bicep. Nástroje Bicep zahrnují decompile příkaz pro převod šablon. Příkaz můžete vyvolat decompile z Azure CLI nebo rozhraní příkazového řádku Bicep.

Proces dekompilace nezaručuje úplné mapování z JSON na Bicep. Před nasazením prostředků možná budete muset vygenerovaný soubor Bicep upravit tak, aby vyhovoval osvědčeným postupům šablony. Zvažte to jako výchozí bod migrace. Později v tomto modulu se dozvíte, jak vyřešit všechny problémy, se kterými se setkáte během procesu dekompilace.

Po dekompilování šablony jste dokončili fázi převodu. Teď máte platný soubor Bicep, od který chcete začít.

Fáze migrace

Cílem fáze migrace prostředků do Bicep je vytvoření prvního konceptu nasaditelného souboru Bicep a zajištění, že definuje všechny prostředky Azure, které jsou v rozsahu migrace.

Fáze migrace se skládá ze tří kroků, které dokončíte postupně:

  1. Vytvořte nový prázdný soubor Bicep.
  2. Zkopírujte každý prostředek z dekompilované šablony.
  3. Identifikujte a znovu vytvořte všechny chybějící prostředky.

Diagram that shows the steps for migrating a template to Bicep.

Vytvoření nového souboru Bicep

Je vhodné vytvořit nový soubor Bicep. Soubor, který jste vytvořili ve fázi převodu, je referenčním bodem, na který se můžete podívat, ale neměli byste ho považovat za konečný nebo ho nasadit tak, jak je.

Kopírování prostředků do nového souboru Bicep

Každý prostředek zkopírujte jednotlivě z převedeného souboru Bicep do nového souboru Bicep. Tento proces vám pomůže vyřešit všechny problémy na základě jednotlivých prostředků a vyhnout se nejasnostem, jakmile se šablona zvětší.

Opětovné vytvoření nepodporovaných prostředků

Ne všechny typy prostředků Azure je možné exportovat prostřednictvím webu Azure Portal, Azure CLI nebo Azure PowerShellu. Například rozšíření virtuálních počítačů jako DependencyAgentWindows a MMAExtension (Microsoft Monitoring Agent) jsou typy prostředků, které nemůžete exportovat.

Když se pokusíte exportovat prostředek pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu a zahrne se nepodporovaný typ prostředku, vygeneruje se podrobná chybová zpráva. V novém souboru Bicep musíte znovu vytvořit jakýkoli prostředek, který se neexportoval, například rozšíření virtuálních počítačů. Můžete si vybrat z několika nástrojů a přístupů k opětovnému vytvoření prostředků, včetně Azure Resource Exploreru, referenčních informací k šabloně ARM a šablon Azure Pro rychlý start.

Průzkumník prostředků Azure

Azure Resource Explorer je nástroj, který je vložený na webu Azure Portal. Portál nezobrazuje určité typy prostředků, ale Průzkumník prostředků vám poskytne reprezentaci vašich prostředků ve formátu JSON. Pokud chcete získat přístup k Průzkumníku prostředků, vyhledejte ho ve vyhledávacím poli:

Screenshot of the Azure portal that shows the search box with resource explorer entered.

V podokně výsledků se zobrazí seznam registrovaných poskytovatelů prostředků pro vaše předplatné a podrobnosti o všech prostředcích, skupinách prostředků a předplatných, která máte oprávnění k zobrazení. Pokud chcete zobrazit reprezentaci PROSTŘEDKU ve formátu JSON, vyberte hierarchii na levé straně podokna:

Screenshot of the Azure portal that shows Azure Resource Explorer.

Výběrem prostředku můžete zobrazit reprezentaci JSON, například v tomto příkladu:

{
    "name": "DependencyAgentWindows",
    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-app-prod-truckline/providers/Microsoft.Compute/virtualMachines/vm-prod-001/extensions/DependencyAgentWindows",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "eastus",
    "properties": {
        "autoUpgradeMinorVersion": true,
        "provisioningState": "Succeeded",
        "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
        "type": "DependencyAgentWindows",
        "typeHandlerVersion": "9.10"
    }
}

Pomocí reprezentace JSON můžete definovat prostředek Bicep:

resource dependencyAgentWindows 'Microsoft.Compute/virtualMachines/extensions@2022-08-01' = {
  parent: virtualMachine
  name: 'DependencyAgentWindows'
  location: 'eastus'
  properties: {
    autoUpgradeMinorVersion: true
    publisher: 'Microsoft.Azure.Monitoring.DependencyAgent'
    type: 'DependencyAgentWindows'
    typeHandlerVersion: '9.10'
  }
}

Poznámka:

Reprezentace JSON obsahuje vlastnost s názvem provisioningState. Vlastnost provisioningState je jen pro čtení a azure ji automaticky nastaví, takže není součástí definice prostředku Bicep.

Tip

Rozšíření Bicep pro Visual Studio Code vám pomůže definovat prostředky Azure v Bicep. Například reprezentace prostředku Bicep zahrnuje verzi rozhraní API, ale exportovaná verze JSON ne. Když v editoru Visual Studio Code začnete zadávat typ prostředku, automaticky se navrhne verze rozhraní API.

Referenční informace k šablonám ARM

Referenční informace k šablonám ARM jsou zdrojem informací o struktuře šablon ARM, typech prostředků, verzích rozhraní API a definicích vlastností pro prostředky Azure. Dokumentace obsahuje příklady ve formátech Bicep i JSON.

Můžete zvolit konkrétní poskytovatele prostředků a typy prostředků, například Microsoft.Web/serverfarmsa jejich verze rozhraní API. Můžete zkontrolovat, které vlastnosti prostředku jsou povinné a které jsou volitelné. Můžete také zobrazit popisy vlastností, které vám pomůžou pochopit, co vlastnosti dělají.

Šablony Azure pro rychlý start

Úložiště šablon Azure Pro rychlý start je kolekce šablon, které přispěly komunitou. Toto úložiště prohledávatelných šablon poskytuje příklady mnoha prostředků a řešení Azure. V některých rychlých startech je k dispozici jak šablona JSON ARM, tak šablona ARM Bicep. Tyto šablony můžete použít jako referenční bod, který vám pomůže sestavovat a ověřovat šablony pro nasazení.

Předpokládejme, že chcete najít šablonu, která sestaví plán služby Aplikace Azure Service a aplikaci. Každá šablona rychlého startu nabízí možnost nasadit šablonu přímo do Azure nebo zobrazit šablonu na GitHubu.

Screenshot that shows an Azure Quickstart Template that deploys a basic Linux web app.

Mějte na paměti, že šablony Azure Pro rychlý start představují příspěvky komunity. Některé z příkladů můžou být zastaralé, protože funkce se pravidelně přidávají do služeb Azure. Příklady také můžou zahrnovat prostředky a vlastnosti, které pro použití šablony nepotřebujete. Úložiště šablon pro rychlý start je ale užitečným prostředkem, který vám pomůže pochopit, jak můžete prostředky nasadit pomocí šablon ARM.