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 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
Omezení
Poznámka:
Verze PowerShell 7.4 pro běh podporuje jak cloudové, tak hybridní úlohy ve všech regionech.
- PowerShell 7.4 je k dispozici pouze ve vývojovém prostředí.
- U runtime verze PowerShellu 7.4 nejsou aktivity modulů pro importované moduly extrahovány. Použijte rozšíření Azure Automation pro VS Code k zjednodušení procesu vytváření runbooků.
- PowerShell 7.x nepodporuje pracovní postupy. Další informace najdete v článku workflow PowerShellu.
- PowerShell 7.x aktuálně nepodporuje podepsané runbooky.
- Integrace správy zdrojového kódu nepodporuje PowerShell 7.4. Také se skripty PowerShell 7.4 ve správě zdrojového kódu vytvoří v účtu Automation jako Runtime 5.1.
- Modul Az 12.3.0 je ve výchozím nastavení nainstalovaný. Úplný seznam modulů komponent vybrané verze modulu Az se zobrazí po opětovné konfiguraci verze Az pomocí webu Azure Portal nebo rozhraní API.
- Importovaný modul PowerShellu 7.4 se ověří 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.
- Runbook služby Azure nepodporuje
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ření objektu PowerShellu, který obsahuje uložené informace o virtuálních počítačích Azure
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
Omezení
Poznámka:
Verze PowerShell 7.2 již není podporována mateřským produktem PowerShell.
- V běhovém prostředí PowerShell 7.2 se aktivity z importovaných modulů neextrahují.
- PowerShell 7.x nepodporuje pracovní postupy. Další informace najdete v článku workflow PowerShellu.
- PowerShell 7.x aktuálně nepodporuje podepsané runbooky.
- Integrace správy zdrojového kódu nepodporuje PowerShell 7.2. Runbooky PowerShell 7.2 ve správě verzí se také v účtu Automation vytvoří jako Runtime 5.1.
- Modul Az 8.3.0 je ve výchozím nastavení nainstalovaný. Úplný seznam modulů komponent vybrané verze modulu Az se zobrazí po opětovné konfiguraci verze Az pomocí webu Azure Portal nebo rozhraní API.
- Importovaný modul PowerShellu 7.2 se ověří 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.
- Runbook služby Azure nepodporuje
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ření objektu PowerShellu, který obsahuje uložené informace o virtuálních počítačích Azure
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
Omezení
- Runbooky nemůžou paralelně provádět více akcí pomocí paralelního zpracování .
- Runbooky nemohou použít kontrolní body k obnovení runbooku, pokud dojde k chybě.
- Jako podřízené runbooky lze pomocí rutiny Start-AzAutomationRunbook, čímž se vytvoří nová úloha, zahrnout pouze PowerShell, runbooky pracovních postupů PowerShellu a grafické runbooky.
- Runbooky nemohou používat příkaz #Requires v PowerShellu, protože není podporován v sandboxu Azure ani na hybridních pracovních procesech Runbook Worker a může způsobit selhání úlohy.
- Runbook služby Azure nepodporuje
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.
Ukázkový skript
# Get information about module "Microsoft.Graph.Authentication"
$ModuleName = "Microsoft.Graph.Authentication"
$NewPath = "C:\usr\src\PSModules\$ModuleName"
$OldPath = "C:\Modules\User\$ModuleName"
if (Test-Path -Path $NewPath -PathType Container) {
Get-ChildItem -Path $NewPath
} elseif (Test-Path -Path $OldPath -PathType Container) {
Get-ChildItem -Path $OldPath
} else {
Write-Output "Module $ModuleName not present."
}
# Getting the path to the Temp folder, if needed.
$tmp = $env:TEMP
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.
Runbooky PowerShellu nemohou načíst nezašifrovanou položku proměnné s hodnotou null.
Runbooky PowerShell nemohou načíst asset proměnné, který má v názvu *~*.
Operace Get-Process ve smyčce runbooku PowerShellu může po přibližně 80 iteracích dojít k chybovému ukončení.
Runbook PowerShellu může selhat, pokud se pokusí napsat velké množství dat do výstupního datového proudu najednou. Tento problém můžete obvykle obejít tak, že runbook vypíše jenom informace potřebné k práci s velkými objekty. Například místo použití Get-Process bez omezení můžete mít výstup rutiny pouze požadované parametry jako v Get-Process | Select ProcessName, CPU.
Pokud používáte modul ExchangeOnlineManagement verze 3.0.0 nebo vyšší, může dojít k chybám. Pokud chcete tento problém vyřešit, ujistěte se, že explicitně nahrajete moduly PowerShellGet a PackageManagement .
Pokud importujete modul Az.Accounts verze 2.12.3 nebo novější, ujistěte se, že importujete modul Newtonsoft.Json v10 explicitně, pokud runbooky PowerShellu 5.1 mají závislost na této verzi modulu. Alternativním řešením tohoto problému je použití runbooků PowerShellu 7.2.
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ření objektu PowerShellu, který obsahuje uložené informace o virtuálních počítačích Azure
# 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
Omezení
-
PowerShell 7.1 už nadřazený produkt PowerShell nepodporuje. Doporučujeme vytvořit nové runbooky v PowerShellu 7.4 pro dlouhodobou podporu a aktualizovat zastaralé runbooky.
- Interní rutiny PowerShellu pro Azure Automation nejsou podporované ve funkci Hybrid Runbook Worker pro Linux. Pokud chcete získat přístup k funkcím sdílených prostředků účtu Automation, musíte modul
automationassets importovat na začátku runbooku PowerShellu.
- Ve verzi modulu runtime PowerShellu 7 se aktivity modulu pro importované moduly neextrahují.
-
Typ parametru runbooku PSCredential není ve verzi modulu runtime PowerShellu 7 podporovaný.
- PowerShell 7.x nepodporuje pracovní postupy. Další informace najdete v tématu Pracovní postup PowerShellu, kde najdete další podrobnosti.
- PowerShell 7.x aktuálně nepodporuje podepsané runbooky.
- Integrace správy zdrojového kódu nepodporuje PowerShell 7.1 (Preview) Také runbooky PowerShellu 7.1 (Preview) ve správě zdrojového kódu se vytvoří v účtu Automation jako runtime 5.1.
- Správa modulů PowerShellu 7.1 není podporována prostřednictvím rutin
Get-AzAutomationModule.
- Runbook selže bez jakéhokoli záznamu v protokolu, pokud vstupní hodnota obsahuje znak '.
- Runbook služby Azure nepodporuje
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.
Ukázkový skript
# Get information about module "Microsoft.Graph.Authentication"
$ModuleName = "Microsoft.Graph.Authentication"
$NewPath = "C:\usr\src\PSModules\$ModuleName"
$OldPath = "C:\Modules\User\$ModuleName"
if (Test-Path -Path $NewPath -PathType Container) {
Get-ChildItem -Path $NewPath
} elseif (Test-Path -Path $OldPath -PathType Container) {
Get-ChildItem -Path $OldPath
} else {
Write-Output "Module $ModuleName not present."
}
# Getting the path to the Temp folder, if needed.
$tmp = $env:TEMP
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í v této verzi Preview podporováno.
Alternativní řešení: Použijte Start-AutomationRunbook (interní rutinu) nebo Start-AzAutomationRunbook (z Az.Automation modulu) ke spuštění jiného runbooku z nadřazeného runbooku.
V prostředí PowerShell 7 nejsou podporovány vlastnosti runbooku určující nastavení protokolování.
Alternativní řešení: Explicitně nastavte předvolbu na začátku runbooku následujícím postupem:
$VerbosePreference = "Continue"
$ProgressPreference = "Continue"
Vyhněte se importu Az.Accounts modulu do verze 2.4.0 pro modul runtime PowerShellu 7, protože při použití této verze ve službě Azure Automation může dojít k neočekávanému chování.
Můžete narazit na problémy s formátováním u proudů chybového výstupu pro úlohu spuštěnou v prostředí PowerShellu 7.
Když importujete modul PowerShellu 7.1, který je závislý na jiných modulech, můžete zjistit, že tlačítko importu je šedé i v případě, že je nainstalovaná verze závislého modulu PowerShellu 7.1. Například modul Az PowerShell Compute verze 4.20.0 závisí na modulu Az.Accounts ve verzi >= 2.6.0. K tomuto problému dochází v případě, že ekvivalentní závislý modul v PowerShellu 5.1 nesplňuje požadavky na verzi. Například verze 5.1 pro Az.Accounts byla < 2.6.0.
Když spustíte runbook PowerShell 7 pomocí webhooku, automaticky převede vstupní parametr webhooku na neplatný json.
Doporučujeme použít modul ExchangeOnlineManagement verze: 3.0.0 nebo nižší, protože verze: 3.0.0 nebo vyšší může vést k selhání úloh.
Pokud importujete modul Az.Accounts verze 2.12.3 nebo novější, ujistěte se, že importujete modul Newtonsoft.Json v10 explicitně, pokud runbooky PowerShellu 7.1 mají závislost na této verzi modulu. Alternativním řešením tohoto problému je použití runbooků PowerShellu 7.2.
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ření objektu PowerShellu, který obsahuje uložené informace o virtuálních počítačích Azure
# 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.
- Python 3.8 už není podporován nadřazeným produktem Python. Doporučujeme vytvořit nové runbooky v podporovaných verzích a aktualizovat zastaralé runbooky.
- Musíte být obeznámeni se skriptováním Pythonu.
- Integrace správy zdrojového kódu není podporovaná.
- Pro moduly Pythonu 3.8 použijte soubory kol, které cílí na cp38-amd64.
- Pokud chcete používat knihovny třetích stran, musíte balíčky importovat do účtu Automation.
- Při použití cmdletu Start-AutomationRunbook v PowerShellu nebo PowerShell Workflow ke spuštění runbooku Python 3.8 to nefunguje. K řešení tohoto omezení můžete použít rutinu Start-AzAutomationRunbook z modulu Az.Automation nebo rutiny Start-AzureRmAutomationRunbook z modulu AzureRm.Automation.
- Azure Automation nepodporuje sys.stderr.
- Balíček AutomationAssets v Pythonu není na pypi.org dostupný, takže není k dispozici pro import na počítač s Windows.
-
Python 2.7 už nadřazený produkt Python nepodporuje. Doporučujeme vytvořit nové runbooky v podporovaných verzích a aktualizovat zastaralé runbooky.
- Musíte být obeznámeni se skriptováním Pythonu.
- Pro moduly Pythonu 2.7.12 použijte soubory kol cp27-amd6.
- Pokud chcete používat knihovny třetích stran, musíte balíčky importovat do účtu Automation.
- Azure Automation nepodporuje sys.stderr.
- Balíček AutomationAssets v Pythonu není na pypi.org dostupný, takže není k dispozici pro import na počítač s Windows.
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