Typy runbooků Azure Automation

Funkce Automatizace procesů Azure podporuje několik typů runbooků, jak je definováno v následující tabulce.

Typ Popis
PowerShell
(doporučené)
Textový runbook založený na skriptování prostředí Windows PowerShell. Aktuálně podporované verze jsou PowerShell 7.6, PowerShell 7.4 a PowerShell 5.1. Protože PowerShell 7.1 a PowerShell 7.2 již nejsou podporovány rodičovským produktem PowerShell, vytvořte runbooky podle dlouhodobě podporovaných verzí, jako jsou PowerShell 7.6 nebo PowerShell 7.4.
Pracovní postup PowerShellu Textový runbook založený na skriptování pracovního postupu Windows PowerShellu
Python
(doporučené)
Textový runbook založený na skriptování Pythonu Aktuálně podporovaná verze je Python 3.10. Vzhledem k tomu, že Python 2.7 a Python 3.8 už nejsou podporovány nadřazeným produktem Python, doporučujeme vytvářet runbooky v Pythonu 3.10.
Grafický Grafický runbook založený na prostředí Windows PowerShell a zcela vytvořený a upravený v grafickém editoru na webu Azure Portal.
Grafický pracovní postup PowerShellu Grafický runbook založený na pracovním postupu Windows PowerShellu a zcela vytvořený a upravený v grafickém editoru na webu Azure Portal.

Další informace o prostředí automatizace procesů najdete v tématu Spouštění runbooků ve službě Azure Automation.

Poznámka:

Azure Automation bude dodržovat životní cyklus podpory jazykových verzí PowerShellu a Pythonu v souladu s časovými osami publikovanými nadřazenými produkty, PowerShellem a Pythonem. Doporučujeme používat runbooky s podporovanými jazykovými verzemi.

Při určování typu, který se má použít pro konkrétní runbook, vezměte v úvahu následující aspekty:

  • Runbooky nelze převádět z grafického typu na textový ani naopak.
  • Při používání runbooků různých typů jako podřízených runbooků existují omezení. Další informace najdete v tématu Podřízené runbooky ve službě Azure Automation.

Runbooky PowerShell

Runbooky PowerShellu jsou založené na Windows PowerShellu. Kód runbooku přímo upravíte pomocí textového editoru na webu Azure Portal. Můžete také použít libovolný offline textový editor a importovat runbook do Služby Azure Automation.

Verze PowerShellu je určená zadanou verzí modulu runtime .

Stejný sandbox Azure a hybridní proces Worker Runbook mohou souběžně spouštět několik runbooků PowerShell, které jsou zaměřené na různé verze běhového prostředí. Verze PowerShell 7.6 a PowerShell 7.4 jsou podporovány jak pro cloudové, tak hybridní úlohy ve všech regionech.

Poznámka:

  • Pokud v době spuštění runbooku vyberete verzi modulu runtimejako verzi 7.4, použijí se moduly PowerShellu, které cílí na verzi modulu runtime 7.4, a pokud vyberete verzi modulu runtime runtime5.1, použijí se moduly PowerShellu, které cílí na verzi modulu runtime 5.1.

Ujistěte se, že jste pro moduly vybrali správnou verzi modulu runtime.

Příklad: Pokud spouštíte runbook pro scénář automatizace SharePointu ve verzi modulu runtime 7.4, naimportujte modul do verze modulu runtime7.4; pokud spouštíte runbook pro scénář automatizace SharePointu ve verzi modulu runtime 5.1, naimportujte modul do verze modulu runtime5.1.

Výhody

  • Implementujte veškerou složitou logiku pomocí kódu PowerShellu bez dalších složitostí pracovního postupu PowerShellu.
  • Spouštějí se rychleji než runbooky pracovních postupů PowerShellu, protože je před spuštěním není nutné kompilovat.
  • Spouští se v Azure i na hybridních pracovních procesech Runbook pro Windows i Linux.

Omezení a známé problémy

Tady jsou aktuální omezení a známé problémy s runbooky PowerShellu:

Omezení PowerShell 7.6 je dostupný v runtime environment experience.

  • Pro runtime verzi PowerShell 7.6 nejsou aktivity modulů extrahovány pro importované moduly.

  • PowerShell 7.x nepodporuje pracovní postupy. Pro více informací viz workflow PowerShell.

  • PowerShell 7.x aktuálně nepodporuje podepsané runbooky.

  • Integrace správy zdrojového kódu nepodporuje PowerShell 7.6. Také runbooky PowerShell 7.6 ve source managementu se vytvářejí v automatizačním účtu jako Runtime 5.1.

  • Modul Az 15.1.0 je nainstalován ve výchozím nastavení. Úplný seznam modulů komponent vybrané verze modulu Az se zobrazí po opětovné konfiguraci verze Az pomocí webu Azure Portal nebo rozhraní API.

  • Importované moduly PowerShell 7.6 jsou ověřeny během provádění úlohy. Ujistěte se, že jsou pro úspěšné spuštění úlohy importovány také všechny závislosti vybraného modulu.

  • Azure Automation runbooky nepodporují Start-Job s -Credential.

  • Azure nepodporuje všechny vstupní parametry PowerShellu. Další informace. Známé problémy

  • Runbooky závislé na interních cestách k souborům, jako je C:\modules, mohou selhat kvůli změnám v backendové infrastruktuře služby. Změňte kód runbooku, abyste zajistili, že neexistují žádné závislosti na interních cestách k souborům, a pomocí rutiny Get-ChildItem získejte požadované informace o modulu.

  • Get-AzStorageAccount rutina cmdlet může selhat s chybou: Příkaz Get-AzStorageAccount byl nalezen v modulu Az.Storage, ale modul se nepodařilo načíst.

  • Spouštění podřízených skriptů pomocí .\child-runbook.ps1 není podporováno.
    Alternativní řešení: K spuštění jiného runbooku z nadřazeného runbooku použijte Start-AutomationRunbook (interní rutinu) nebo Start-AzAutomationRunbook (z modulu Az.Automation ).

  • Pokud používáte modul ExchangeOnlineManagement verze: 3.0.0 nebo vyšší, můžete zaznamenat chyby. Pokud chcete tento problém vyřešit, ujistěte se, že explicitně nahrajete moduly PowerShellGet a PackageManagement .

  • Když použijete rutinu New-AzAutomationVariable v modulu Az.Automation k nahrání proměnné objektu typu, nebude operace fungovat podle očekávání. Alternativní řešení: Převeďte objekt na řetězec JSON pomocí rutiny ConvertTo-Json a pak nahrajte proměnnou s řetězcem JSON jako jeho hodnotou. Toto alternativní řešení zajišťuje správné zpracování proměnné v prostředí Azure Automation jako řetězec JSON.

    Příklad – Vytvořte PowerShell objekt, který ukládá informace o Azure VM

    azurepowershell
    
    # Retrieve Azure virtual machines with status information for the 'northeurope' region 
    $AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"} 
    
    $VMstopatch = @($AzVM).Id 
    
    # Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.) 
    New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch 
    
    # Convert the object to a JSON string 
    $jsonString = $VMstopatch | ConvertTo-Json 
    
    # Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook) 
    New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString 
    

Runbooky pracovního postupu PowerShellu

Runbooky pracovního postupu PowerShellu jsou textové runbooky založené na pracovním postupu Windows PowerShellu. Kód runbooku přímo upravíte pomocí textového editoru na webu Azure Portal. Můžete také použít libovolný offline textový editor a importovat runbook do Služby Azure Automation.

Poznámka:

PowerShell 7.1 (Preview) a PowerShell 7.2 nepodporují runbooky pracovních postupů.

Výhody

  • Implementujte veškerou složitou logiku pomocí kódu pracovního postupu PowerShellu.
  • Pokud dojde k chybě, použijte kontrolní body k obnovení operace.
  • Paralelní zpracování umožňuje provádět paralelně více akcí.
  • Může zahrnovat další grafické runbooky a runbooky pracovních postupů v PowerShellu jako podřízené runbooky k vytváření nadřazených pracovních postupů.

Omezení

  • Pracovní postup PowerShellu není ve verzích PowerShellu 7+ podporovaný. Proto zastaralé runbooky nelze upgradovat.
  • Neefektivní zpracování paralelního spouštění v porovnání s novějšími verzemi PowerShellu 7 nebo novějšími.
  • Pracovní postup PowerShellu interně funguje pomocí více procesů. Moduly dostupné v jednom procesu proto nemusí být dostupné v jiném procesu a způsobují výjimky, jako je například příkaz nenalezena.
  • Runbooky se musí vypořádat s další složitostí PowerShell Workflow, například s deserializovanými objekty.
  • Spuštění runbooků trvá déle než powershellové runbooky, protože je nutné je před spuštěním zkompilovat.
  • Runbooky PowerShell můžete jako podřízené runbooky zahrnout pouze pomocí cmdletu Start-AzAutomationRunbook.
  • Runbooky nelze spustit na linuxovém Hybrid Runbook Workeru.

Runbooky v Pythonu

Runbooky Pythonu se kompilují v Pythonu 3.10. Kód runbooku můžete přímo upravit pomocí textového editoru na webu Azure Portal. Můžete také použít offline textový editor a importovat runbook do Služby Azure Automation. Nadřazený produkt už nepodporuje Python 2.7 a Python 3.8 a doporučuje se vytvářet runbooky ve verzi modulu runtime Python 3.10.

Verze Python 3.10 pro běh je podporována jak pro cloudové, tak hybridní úlohy ve všech regionech.

Výhody

Poznámka:

Import balíčku Pythonu může trvat několik minut.

  • Používá robustní knihovny Pythonu.
  • Může běžet v Azure nebo na pracovních procesech Hybrid Runbook Worker.
  • Skripty a balíčky z jakékoli verze 3.x můžou fungovat, pokud je kód kompatibilní napříč různými verzemi.
  • V případě hybridních úloh Pythonu 3.10 na počítačích s Windows můžete nainstalovat libovolnou verzi 3.x, kterou chcete použít.
  • V případě hybridních úloh Pythonu 3.10 na počítačích s Linuxem závisíme na verzi Pythonu 3 nainstalované na počítači, aby bylo možné spustit DSC OMSConfig a Linux Hybrid Worker. Různé verze by měly fungovat, pokud mezi verzemi Pythonu 3 nedojde k žádným zásadním změnám v podpisech metod nebo kontraktech.

Omezení

Omezení runbooků Pythonu jsou:

  • U modulů Pythonu 3.10 se v současné době podporují jenom soubory wheel, které cílí na cp310 Linux OS. Další informace
  • Integrace správy zdrojového kódu není podporovaná.
  • Vlastní balíčky pro Python 3.10 se ověřují pouze během běhu úlohy. Úloha se očekává, že selže, pokud balíček není kompatibilní v modulu runtime nebo pokud nejsou do účtu Automation importovány požadované závislosti balíčků.
  • Runbooky Pythonu 3.10 se v současné době podporují jenom z webu Azure Portal a rozhraní REST API.

Poznámka:

Použití webhooku ke spuštění runbooku Pythonu se nepodporuje.

Více verzí Pythonu

Platí pro hybridní pracovníky používající Windows. U služby Windows Runbook Worker se při spuštění runbooku Python 2 nejprve vyhledá proměnná prostředí PYTHON_2_PATH a ověří se, zda odkazuje na platný spustitelný soubor. Například pokud je instalační složka C:\Python2, zkontrolovalo by se, zda je C:\Python2\python.exe platná cesta. Pokud ji nenajde, hledá v proměnné prostředí PATH, aby provedla podobnou kontrolu.

V případě Pythonu 3 nejprve vyhledá proměnnou PYTHON_3_PATH env a pak se vrátí zpět do PATH proměnné prostředí.

Pokud používáte jenom jednu verzi Pythonu, můžete do PATH proměnné přidat instalační cestu. Pokud chcete použít obě verze v modulu Runbook Worker, nastavte PYTHON_2_PATH a PYTHON_3_PATH nastavte umístění modulu pro tyto verze.

Známé problémy

U cloudových úloh někdy úlohy Pythonu 3.8 selhávají se zprávou o výjimce invalid interpreter executable path. Tato výjimka se může zobrazit, pokud je úloha zpožděná, spustí se až po více než 10 minutách nebo se ke spuštění runbooků Python 3.8 používá Start-AutomationRunbook. Pokud je úloha zpožděna, mělo by stačit restartování runbooku.

Grafické runbooky

Pomocí grafického editoru na webu Azure Portal můžete vytvářet a upravovat grafické a grafické runbooky pracovních postupů PowerShellu. Tento typ runbooku ale nemůžete vytvořit ani upravit pomocí jiného nástroje. Hlavní funkce grafických runbooků:

  • Exportováno do souborů ve vašem účtu Automation a poté importováno do jiného účtu Automation.
  • Vygenerujte kód PowerShellu.
  • Během importu převedeno do grafických runbooků PowerShell Workflow nebo z nich.

Výhody

  • Použijte vizuální model tvorby vložit-propojit-konfigurovat.
  • Zaměřte se na to, jak data procházejí procesem.
  • Vizuálně představují procesy správy.
  • Zahrňte další runbooky jako podřízené runbooky a vytvořte tak nadřazené pracovní postupy.
  • Povzbuďte modulární programování.

Omezení

  • Nelze vytvářet ani upravovat mimo portál Azure.
  • Může vyžadovat aktivitu kódu obsahující kód PowerShellu ke spuštění složité logiky.
  • Nelze převést na jeden z textových formátů, ani nemůžete převést textový runbook na grafický formát.
  • Nelze zobrazit ani přímo upravit kód PowerShellu, který grafický pracovní postup vytvoří. Kód, který vytvoříte, můžete zobrazit v libovolné aktivitě kódu.
  • Na Hybrid Runbook Workeru pro Linux nelze spouštět runbooky. Viz Automatizace prostředků v datacentru nebo cloudu pomocí funkce Hybrid Runbook Worker.
  • Grafické runbooky nelze digitálně podepsat.

Další kroky