Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje problémy s runbooky, ke kterým může dojít a jak je vyřešit. Obecné informace najdete v tématu Spouštění runbooků ve službě Azure Automation.
Grafické runbooky pracovních postupů PowerShellu s podřízenými runbooky selžou při spuštění
Problém
Grafické runbooky pracovního postupu PowerShellu s podřízenými runbooky se nespustí tak, jak se očekávalo.
Příčina
Aby se zlepšil stav zabezpečení runbooků grafického pracovního postupu PowerShellu, služba už nespouští runbooky grafického pracovního postupu PowerShellu s podřízenými skripty.
Rozlišení
Alternativním řešením je použití Start-AzAutomationRunbook (z modulu Az.Automation) z nadřazeného runbooku ke spuštění podřízeného runbooku. Například použijte blok InlineScript:
$job = Start-AzAutomationRunbook `
-AutomationAccountName "MyAccount" `
-ResourceGroupName "MyRG" `
-Name "ReusableTaskRunbook" `
-Parameters @{ TaskId = '1234' }
#Optional: Wait for job completion
do {
Start-Sleep -Seconds 5
$jobStatus = Get-AzAutomationJob -Id $job.Id -AutomationAccountName "MyAccount" -ResourceGroupName "MyRG"} while ($jobStatus.Status -ne "Completed")
V grafických runboocích PowerShellu už není možné používat rutiny z importovaných ne výchozích modulů.
Problém
Při importu modulu PowerShellu nebudete moct používat jeho rutiny v grafických runboocích PowerShellu.
Příčina
Aby se zlepšil stav zabezpečení runbooků PowerShellu, služba už nespouští soubor manifestu modulu za účelem exportu rutin a funkcí. To znamená, že se nedají použít při vytváření grafických runbooků PowerShellu.
Rozlišení
Spuštění existujících runbooků není ničím ovlivněno. V případě nových runbooků, které používají jiné než výchozí moduly PowerShellu, doporučujeme místo grafických runbooků PowerShellu použít textové runbooky k vyřešení tohoto problému. Rozšíření Azure Automation pro VS Code můžete použít k vytváření a úpravám runbooků PowerShellu, které využívá GitHub Copilot ke zjednodušení prostředí pro vytváření runbooků.
Start-AzAutomationRunbook selže s chybovou zprávou RunbookName neodpovídá očekávanému vzoru
Problém
Když spustíte Start-AzAutomationRunbook k zahájení konkrétních skriptů/procesů:
start-azautomationRunbook -Name "Test_2" -AutomationAccountName "AutomationParent" -ResourceGroupName "AutomationAccount"
Selže s následující chybou:
Start-AzAutomationRunbook: "runbookname" does not match expected pattern '^[a-zA-Z]*-*[a-zA-Z0-9]*$'
Příčina
Kód, který byl zaveden ve verzi 1.9.0 modulu Az.Automation, ověřuje názvy runbooků tak, aby se spouštěly a nesprávně označí runbooky s více znaky "-" nebo znakem "_" v názvu jako neplatný.
Alternativní řešení
Doporučujeme vrátit se k verzi modulu 1.8.0.
Rozlišení
V současné době pracujeme na nasazení opravy tohoto problému.
Diagnostika problémů s runbooky
Pokud se při provádění runbooků v Azure Automation zobrazí chyby, můžete k diagnostice problémů použít následující kroky:
Ujistěte se, že se skript runbooku úspěšně spustil na místním počítači.
Referenční informace o jazyku a výukové moduly najdete v dokumentaci k PowerShellu nebo dokumentace k Pythonu. Místní spuštění skriptu může odhalit a vyřešit běžné chyby, jako jsou:
- Chybějící moduly
- Syntaktické chyby
- Logické chyby
Prozkoumejte datové proudy chyb runbooku.
Podívejte se na tyto datové proudy, vyhledejte konkrétní zprávy a porovnejte je s chybami zdokumentovanými v tomto článku.
Ujistěte se, že vaše uzly a pracovní prostor Automation obsahují požadované moduly.
Pokud váš runbook importuje nějaké moduly, pomocí kroků v tématu Import modulů ověřte, že jsou dostupné pro váš účet Automation. Aktualizujte moduly PowerShellu na nejnovější verzi podle pokynů v tématu Aktualizace modulů Azure PowerShell v Azure Automation. Další informace o řešení potíží najdete v tématu Řešení potíží s moduly.
Pokud je vaše provozní příručka pozastavena nebo neočekávaně selže:
- Pokud se pokoušíte ke spuštění runbooku použít webhook s prošlou platností, obnovte webhook.
- Zkontrolujte stav úloh a zjistěte aktuální stav runbooků a některé možné příčiny problému.
- Přidejte k runbooku další výstup, abyste zjistili, co se stane před pozastavením runbooku.
- Zpracujte všechny výjimky vyvolané vaší úlohou.
Proveďte tento krok, pokud úloha runbooku nebo prostředí na Hybrid Runbook Worker nereaguje.
Pokud spouštíte runbooky pomocí funkce Hybrid Runbook Worker místo použití služby Azure Automation, možná bude potřeba vyřešit potíže se samotnou rolí Hybrid Worker.
Scénář: Nejde vytvořit novou automatizační úlohu v oblasti Západní Evropa
Problém
Při vytváření nových úloh v rámci nástroje Automation se můžete setkat se zpožděním nebo selháním při jejich vytvoření. Naplánované úlohy se automaticky ukončí a úlohy spuštěné prostřednictvím portálu lze ukončit, pokud dojde k selhání.
Příčina
Důvodem je vysoké zatížení runbooků zákazníků využívajících službu Automation v oblasti Západní Evropa.
Rozlišení
Pokud je to podle vašeho požadavku a prostředí možné, proveďte následující akci, aby se snížila pravděpodobnost selhání:
- Pokud používáte horní část hodiny pro vytvoření úlohy (v 12:00, 1:00, 2:00 atd.), obvykle v hodině nebo půl hodině, doporučujeme přesunout čas zahájení úlohy na pět minut před hodinou nebo půlhodinou. Důvodem je to, že většina zákazníků používá začátek hodiny pro provádění úloh, což výrazně zvyšuje zatížení služby, zatímco zatížení je relativně nízké v ostatních časových slotech.
Scénář: Runbook selže s chybovou zprávou "this.Client.SubscriptionId nemůže mít hodnotu null."
Problém
Váš runbook s využitím spravované identity Connect-AzAccount –Identity, který se pokouší spravovat objekty Azure, selže a zaznamená následující chybu: this.Client.SubscriptionId cannot be null.
get-azvm : 'this.Client.SubscriptionId' cannot be null. At line:5 char:1 + get-azvm + ~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzVM], ValidationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.GetAzureVMCommand
Příčina
K tomu může dojít v případě, že spravovaná identita (nebo jiný účet použitý v runbooku) nemá udělená žádná oprávnění pro přístup k předplatnému.
Rozlišení
Spravované identitě (nebo jinému účtu používanému v runbooku) udělte odpovídající přiřazení role v předplatném. Další informace
Scénář: Zablokování přístupu ke službě Azure Storage, Azure Key Vault nebo Azure SQL
Tento scénář používá jako příklad Službu Azure Storage . Informace se ale stejně vztahují ke službě Azure Key Vault a Azure SQL.
Problém
Při pokusu o přístup ke službě Azure Storage z runbooku dojde k chybě podobné následující zprávě: The remote server returned an error: (403) Forbidden. HTTP Status Code: 403 - HTTP Error Message: This request is not authorized to perform this operation.
Příčina
Služba Azure Firewall ve službě Azure Storage je povolená.
Rozlišení
Povolení služby Azure Firewall ve službě Azure Storage, Azure Key Vault nebo Azure SQL blokuje přístup z runbooků Azure Automation pro tyto služby. Přístup se zablokuje i v případě, že je povolená výjimka brány firewall pro povolení důvěryhodných služeb Microsoftu, protože služba Automation není součástí seznamu důvěryhodných služeb. S povolenou bránou firewall je možné přístup vytvořit pouze pomocí funkce Hybrid Runbook Worker a koncového bodu služby virtuální sítě.
Scénář: Runbook selže s chybou Žádná oprávnění nebo Zakázáno 403
Problém
Váš runbook selže s chybou Bez oprávnění (403) nebo Zakázáno (403) nebo podobnou chybou.
Příčina
Účty 'Spustit jako' nemusí mít stejná oprávnění k prostředkům Azure jako váš aktuální účet Automation.
Rozlišení
Ujistěte se, že váš účet Spustit jako má oprávnění pro přístup k prostředkům používaným ve skriptu.
Scénář: Přihlášení k účtu Azure selhalo
Problém
Při práci s rutinou Connect-AzAccount obdržíte jednu z následujících chyb:
Unknown_user_type: Unknown User Type
No certificate was found in the certificate store with thumbprint
Příčina
K těmto chybám dochází v případě, že název prostředku přihlašovacích údajů není platný. Může k nim dojít také v případě, že není platné uživatelské jméno a heslo, které jste použili k nastavení prostředku přihlašovacích údajů služby Automation.
Rozlišení
Pokud chcete zjistit, co je špatně, postupujte takto:
Ujistěte se, že nepoužíváte žádné speciální znaky. Mezi tyto znaky patří znak
\@v názvu prostředku přihlašovacích údajů služby Automation, který používáte pro připojení k Azure.Zkontrolujte, jestli můžete použít uživatelské jméno a heslo, které jsou uložené v přihlašovacích údajích Azure Automation v místním editoru integrovaného skriptovacího prostředí (ISE) v prostředí PowerShell. V integrovaném skriptovacím prostředí (ISE) v prostředí PowerShell spusťte následující rutiny.
$Cred = Get-Credential #Using Azure Service Management Add-AzureAccount -Credential $Cred #Using Azure Resource Manager Connect-AzAccount -Credential $CredPokud se ověřování nezdaří místně, nenastavili jste správně přihlašovací údaje Microsoft Entra. Pokud chcete správně nastavit účet Microsoft Entra, přečtěte si článek Ověření v Azure pomocí Microsoft Entra ID.
Pokud se zdá, že je chyba přechodná, zkuste ověřování udělat robustnější přidáním logiky opakování do vaší ověřovací rutiny.
$logonAttempt = 0 $logonResult = $False while(!($connectionResult) -And ($logonAttempt -le 10)) { $LogonAttempt++ #Logging in to Azure... $connectionResult = Connect-AzAccount ` Start-Sleep -Seconds 30 if($connectionResult) { $logonResult = $True } }
Scénář: Přihlášení spuštěním rutiny Login-AzureRMAccount
Problém
Při spuštění runbooku se zobrazí následující chyba:
Run Login-AzureRMAccount to login.
Příčina
K této chybě může dojít, když nepoužíváte účet Spustit jako nebo vypršela platnost účtu Spustit jako.
Tato chyba má dvě hlavní příčiny:
- Existují různé verze modulu AzureRM nebo Az.
- Pokoušíte se získat přístup k prostředkům v jiném předplatném.
Rozlišení
Pokud se tato chyba zobrazí po aktualizaci jednoho modulu AzureRM nebo Az, aktualizujte všechny moduly na stejnou verzi.
Pokud se pokoušíte získat přístup k prostředkům v jiném předplatném, nakonfigurujte oprávnění pomocí následujícího postupu:
Přejděte do účtu Spustit jako Automation a zkopírujte ID aplikace a otisk.
Přejděte do předplatného Řízení přístupu, kde účet Automation není hostován, a přidejte nové přiřazení role.
Přidejte ID aplikace shromážděné dříve. Vyberte oprávnění přispěvatele .
Zkopírujte název předplatného.
Teď můžete pomocí následujícího kódu runbooku otestovat oprávnění z účtu Automation do jiného předplatného. Nahraďte
<CertificateThumbprint>hodnotou zkopírovanou v kroku 1. Nahraďte"<SubscriptionName>"hodnotou zkopírovanou v kroku 4.$Conn = Get-AutomationConnection -Name AzureRunAsConnection Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint "<CertificateThumbprint>" #Select the subscription you want to work with Select-AzSubscription -SubscriptionName '<YourSubscriptionNameGoesHere>' #Test and get outputs of the subscriptions you granted access. $subscriptions = Get-AzSubscription foreach($subscription in $subscriptions) { Set-AzContext $subscription Write-Output $subscription.Name }
Scénář: Nepovedlo se najít předplatné Azure
Problém
Když pracujete s rutinami Select-AzureSubscription, Select-AzureRMSubscription, nebo Select-AzSubscription, zobrazí se následující chyba:
The subscription named <subscription name> cannot be found.
Chyba
K této chybě může dojít v následujících případech:
- Název předplatného není platný.
- Uživatel Microsoft Entra, který se pokouší získat podrobnosti o předplatném, není nakonfigurovaný jako správce předplatného.
- Cmdlet není dostupný.
- Došlo k přepínání kontextu.
Rozlišení
Přepínání kontextu najdete v tématu Přepínání kontextu ve službě Azure Automation.
cs-CZ: Scénář: Runbooky selhávají při práci s několika předplatnými
Problém
Při spouštění runbooků se runbooku nedaří spravovat prostředky Azure.
Příčina
Runbook při spuštění nepoužívá správný kontext. Důvodem může být to, že runbook se omylem pokouší získat přístup k nesprávnému předplatnému.
Můžou se zobrazit chyby podobné tomuto:
Get-AzVM : The client '<client-id>' with object id '<object-id> does not have authorization to perform action 'Microsoft.Compute/virtualMachines/read' over scope '/subscriptions/<subscriptionIdOfSubscriptionWhichDoesntContainTheVM>/resourceGroups/REsourceGroupName/providers/Microsoft.Compute/virtualMachines/VMName '.
ErrorCode: AuthorizationFailed
StatusCode: 403
ReasonPhrase: Forbidden Operation
ID : <AGuidRepresentingTheOperation> At line:51 char:7 + $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $UNBV... +
nebo podobný tomuto:
Get-AzureRmResource : Resource group "SomeResourceGroupName" could not be found.
... resources = Get-AzResource -ResourceGroupName $group.ResourceGro ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Get-AzResource], CloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResourceCmdlet
Rozlišení
Pokud se chcete vyhnout náhodnému pokusu o přístup k nesprávnému předplatnému, přečtěte si téma Přepínání kontextu ve službě Azure Automation.
Scénář: Ověřování do Azure selhává, protože je povolené vícefaktorové ověřování
Problém
Při ověřování v Azure s uživatelským jménem a heslem Azure se zobrazí následující chyba:
Add-AzureAccount: AADSTS50079: Strong authentication enrollment (proof-up) is required
Příčina
Pokud máte ve svém účtu Azure vícefaktorové ověřování, nemůžete k ověření v Azure použít uživatele Microsoft Entra. Místo toho budete muset k ověření použít certifikát nebo služební principál.
Rozlišení
Pokud chcete použít instanční objekt s rutinami Azure Resource Manageru, přečtěte si téma Vytvoření instančního objektu pomocí webu Azure Portal a ověřování instančního objektu pomocí Azure Resource Manageru.
Scénář: Runbook selže s chybovou zprávou Úloha byla zrušena
Problém
Váš runbook selže s podobnou chybou jako v následujícím příkladu:
Exception: A task was cancelled.
Příčina
Příčinou této chyby může být použití zastaralých modulů Azure.
Rozlišení
Tuto chybu můžete vyřešit aktualizací modulů Azure na nejnovější verzi:
- Ve svém účtu Automation vyberte Moduly a pak vyberte Aktualizovat moduly Azure.
- Aktualizace trvá přibližně 15 minut. Po dokončení znovu spusťte runbook, který selhal.
Další informace o upgradu modulů najdete v tématu Aktualizace modulů Azure ve službě Azure Automation.
Scénář: Výraz se nerozpoznal jako název rutiny, funkce nebo skriptu
Problém
Váš runbook selže s podobnou chybou jako v následujícím příkladu:
The term 'Connect-AzAccount' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if the path was included verify that the path is correct and try again.
Příčina
Tato chyba může mít následující důvody:
- Modul, který obsahuje rutinu, není importován do účtu 'Automation'.
- Modul, který obsahuje rutinu, je naimportován, ale je zastaralý.
Rozlišení
Pokud chcete tuto chybu vyřešit, proveďte jednu z následujících úloh:
- Pro modul Azure se podívejte na Postup aktualizace modulů Azure PowerShellu ve službě Azure Automation, abyste zjistili, jak aktualizovat vaše moduly v účtu Azure Automation.
- V případě modulu mimo Azure se ujistěte, že je importovaný do vašeho účtu Automation.
Scénář: Selhání cmdletu v runbooku PowerShellu PnP s Azure Automation
Problém
Když runbook zapíše přímo do výstupu Azure Automation objekt vygenerovaný PnP PowerShellem, výstup rutiny nemůže streamovat zpět do služby Automation.
Příčina
K tomuto problému nejčastěji dochází v případě, že Azure Automation zpracovává runbooky, které například vyvolávají rutiny PowerShellu PnP, add-pnplistitembez zachycení vrácených objektů.
Rozlišení
Upravte skripty a přiřaďte všechny návratové hodnoty proměnným, aby se rutiny nepokoušly zapisovat celé objekty do standardního výstupu. Skript může přesměrovat výstupní datový proud na cmdlet, jak je znázorněno zde.
$null = add-pnplistitem
Pokud skript analyzuje výstup rutiny, musí uložit výstup do proměnné a manipulovat s proměnnou místo pouhého streamování výstupu.
$SomeVariable = add-pnplistitem ....
if ($SomeVariable.someproperty -eq ....
Scénář: Při spouštění runbooku nebyl cmdlet rozpoznán
Problém
Úloha runbooku selže s chybou:
<cmdlet name>: The term <cmdlet name> is not recognized as the name of a cmdlet, function, script file, or operable program.
Příčina
Tato chyba je způsobená tím, že modul PowerShellu nemůže najít rutinu, kterou používáte v runbooku. Je možné, že v účtu chybí modul obsahující cmdlet, došlo ke konfliktu názvu s názvem runbooku, nebo cmdlet existuje také v jiném modulu a služba Automation nemůže název vyřešit.
Rozlišení
Problém vyřešíte pomocí některého z následujících řešení:
- Ujistěte se, že jste zadali název cmdletu správně.
- Ujistěte se, že cmdlet existuje ve vašem účtu Automatizace a že nedochází ke konfliktům. Pokud chcete ověřit, jestli je rutina k dispozici, otevřete runbook v režimu úprav a vyhledejte rutinu, kterou chcete najít v knihovně, nebo spusťte
Get-Command <CommandName>příkaz . Jakmile ověříte dostupnost cmdletu pro účet a ujistíte se, že nejsou žádné konflikty názvů s jinými cmdlety nebo runbooky, přidejte cmdlet na plochu. Ujistěte se, že v runbooku používáte platnou sadu parametrů. - Pokud dochází ke konfliktu názvů a rutina je k dispozici ve dvou různých modulech, vyřešte problém použitím plně kvalifikovaného názvu rutiny. Můžete použít třeba
ModuleName\CmdletName. - Pokud spouštíte runbook místně ve skupině rolí Hybrid Worker, ujistěte se, že modul a rutina jsou nainstalovány na počítači, který je hostitelem Hybrid Worker.
Scénář: Nesprávný odkaz na objekt při volání Add-AzAccount
Problém
Tato chyba se zobrazí při práci s Add-AzAccount, což je alias pro cmdlet Connect-AzAccount:
Add-AzAccount : Object reference not set to an instance of an object
Příčina
K této chybě může dojít, pokud runbook neprovádí správné kroky před voláním Add-AzAccount pro přidání účtu Automation. Příkladem jednoho z nezbytných kroků je přihlášení pomocí účtu Spustit jako. Správné operace, které se mají použít v runbooku, najdete v tématu Spouštění runbooků ve službě Azure Automation.
Scénář: Odkaz na objekt není nastaven na instanci objektu
Problém
Při vyvolání podřízeného runbooku s parametrem Wait a pokud výstupní stream obsahuje objekt, se zobrazí následující chyba:
Object reference not set to an instance of an object
Příčina
Pokud stream obsahuje objekty, Start-AzAutomationRunbook nezpracuje výstupní datový proud správně.
Rozlišení
Implementujte logiku dotazování a pomocí rutiny Get-AzAutomationJobOutput načtěte výstup. Tady je definována ukázka této logiky:
$AutomationAccountName = "ContosoAutomationAccount"
$RunbookName = "ChildRunbookExample"
$ResourceGroupName = "ContosoRG"
function IsJobTerminalState([string]$Status) {
$TerminalStates = @("Completed", "Failed", "Stopped", "Suspended")
return $Status -in $TerminalStates
}
$StartAzAutomationRunbookParameters = @{
Name = $RunbookName
AutomationAccountName = $AutomationAccountName
ResourceGroupName = $ResourceGroupName
}
$Job = Start-AzAutomationRunbook @StartAzAutomationRunBookParameters
$PollingSeconds = 5
$MaxTimeout = New-TimeSpan -Hours 3 | Select-Object -ExpandProperty TotalSeconds
$WaitTime = 0
while(-NOT (IsJobTerminalState $Job.Status) -and $WaitTime -lt $MaxTimeout) {
Start-Sleep -Seconds $PollingSeconds
$WaitTime += $PollingSeconds
$Job = $Job | Get-AzAutomationJob
}
$Job | Get-AzAutomationJobOutput | Get-AzAutomationJobOutputRecord | Select-Object -ExpandProperty Value
Scénář: Runbook selže kvůli problému s deserializovaným objektem
Problém
Váš runbook selže s chybou:
Cannot bind parameter <ParameterName>.
Cannot convert the <ParameterType> value of type Deserialized <ParameterType> to type <ParameterType>.
Příčina
Pokud je runbook pracovním postupem PowerShellu, ukládá složité objekty v deserializovaném formátu, aby se zachoval stav runbooku, pokud je pracovní postup pozastavený.
Rozlišení
Tento problém můžete vyřešit pomocí některého z následujících řešení:
- Pokud propojujete komplexní objekty z jedné rutiny do druhé, zabalte tyto rutiny do aktivity
InlineScript. - Místo předání celého objektu předejte název nebo hodnotu, kterou potřebujete z komplexního objektu.
- Použijte runbook PowerShellu místo runbooku PowerShell Workflow.
Scénář: Stav 400 – Chybný požadavek při volání webhooku
Problém
Při pokusu o vyvolání webhooku pro runbook Azure Automation se zobrazí následující chyba:
400 Bad Request : This webhook has expired or is disabled
Příčina
Webhook, který se pokoušíte volat, je zakázaný nebo vypršela jeho platnost.
Rozlišení
Pokud je webhook zakázaný, můžete ho znovu povolit prostřednictvím webu Azure Portal. Pokud vypršela platnost webhooku, musíte ho odstranit a znovu vytvořit. Platnost webhooku můžete obnovit jenom v případě, že ještě nevypršela.
Scénář: 429: Frekvence požadavků je momentálně příliš vysoká
Problém
Při spuštění rutiny Get-AzAutomationJobOutput se zobrazí následující chybová zpráva:
429: The request rate is currently too large. Please try again
Příčina
K této chybě může dojít při načítání výstupu úlohy z runbooku, který obsahuje mnoho podrobných toků.
Rozlišení
Pokud chcete tuto chybu vyřešit, proveďte jednu z následujících věcí:
- Upravte runbook a snižte počet pracovních toků, které generuje.
- Snižte počet datových proudů, které se mají načíst při spuštění cmdletu. Uděláte to tak, že nastavíte hodnotu parametru
Streampro rutinu Get-AzAutomationJobOutput , která načte pouze výstupní streamy.
Scénář: Úloha runbooku selže, protože došlo k překročení přidělené kvóty
Problém
Úloha runbooku selže s chybou:
The quota for the monthly total job run time has been reached for this subscription
Příčina
K této chybě dochází, když provádění úlohy překročí 500minutovou bezplatnou kvótu pro váš účet. Tato kvóta se vztahuje na všechny typy úloh provádění úloh. Některé z těchto úloh testují úlohu, spouští úlohu z portálu, spouští úlohu pomocí webhooků nebo plánuje spuštění úlohy pomocí webu Azure Portal nebo vašeho datacentra. Další informace o cenách služby Automation najdete v tématu Ceny služby Automation.
Rozlišení
Pokud chcete použít více než 500 minut zpracování za měsíc, změňte předplatné z úrovně Free na úroveň Basic:
- Přihlaste se ke svému předplatnému Azure.
- Vyberte účet Automation, který chcete upgradovat.
- Vyberte Nastavení a pak vyberte Ceny.
- Výběrem možnosti Povolit na stránce dole upgradujte svůj účet na úroveň Basic.
Scénář: Datový tok výstupu runbooku větší než 1 MB
Problém
Váš runbook spuštěný v sandboxu Azure selže s následující chybou:
The runbook job failed due to a job stream being larger than 1MB, this is the limit supported by an Azure Automation sandbox.
Příčina
K této chybě dochází, protože se váš runbook pokusil napsat příliš mnoho výjimkových dat do výstupního datového proudu.
Rozlišení
U výstupního datového proudu úlohy platí limit 1 MB. Ujistěte se, že runbook uzavře volání spustitelného souboru nebo podprocesu pomocí try a catch bloků. Pokud operace vyvolá výjimku, zapište zprávu z této výjimky do proměnné „Automation“. Tato technika zabraňuje zápisu zprávy do výstupního datového proudu úkolu. U spuštěných úloh Hybrid Runbook Worker se výstupní datový proud zkrátí na 1 MB bez chybové zprávy.
Scénář: Pokus o spuštění úlohy runbooku byl proveden třikrát, ale pokaždé došlo k selhání při spuštění.
Problém
Runbook selže s následující chybou:
The job was tried three times but it failed
Příčina
K této chybě dochází z některého z následujících důvodů:
Limit paměti. Úloha může selhat, pokud používá více než 400 MB paměti. Zdokumentovaná omezení paměti přidělené sandboxu najdete v tématu Omezení služby Automation.
Síťové sokety. Sandboxy Azure jsou omezené na 1 000 souběžných síťových soketů. Další informace najdete v tématu Omezení služby Automation.
Modul není kompatibilní. Závislosti modulů nemusí být správné. V takovém případě runbook obvykle vrací zprávu
Command not foundneboCannot bind parameter.Žádné ověřování ve službě Active Directory pro sandbox. Váš runbook se pokusil volat spustitelný soubor nebo podproces, který běží v sandboxu Azure. Konfigurace runbooků pro ověřování s Microsoft Entra ID pomocí knihovny Azure Active Directory Authentication Library (ADAL) není podporována.
Rozlišení
Limit paměti, síťové sokety. Navrhované způsoby práce v rámci limitů paměti jsou rozdělení úlohy mezi několik runbooků, zpracování méně dat v paměti, zabránění zápisu zbytečného výstupu z runbooků a zvážení počtu kontrolních bodů, které jsou zapsány do runbooků pracovního postupu PowerShellu. Pomocí metody clear, například
$myVar.clear, vymazat proměnné a použijte[GC]::Collectke spuštění garbage collection okamžitě. Tyto akce snižují paměťové nároky vašeho runbooku při jeho spuštění.Modul není kompatibilní. Aktualizujte moduly Azure podle kroků v tématu Postup aktualizace modulů Azure PowerShellu ve službě Azure Automation.
Žádné ověřování ve službě Active Directory pro sandbox. Když se ověřujete v Microsoft Entra ID pomocí runbooku, ujistěte se, že je ve vašem účtu pro automatizaci k dispozici modul Azure AD. Nezapomeňte účtu Spustit jako udělit potřebná oprávnění k provádění úloh, které runbook automatizuje.
Pokud váš runbook nemůže volat spustitelný soubor nebo podproces spuštěný v sandboxu Azure, použijte runbook na Hybrid Runbook Worker. Hybridní pracovní procesy nejsou omezené limity paměti a sítě, které mají sandboxy Azure.
Scénář: Úloha PowerShellu selže s chybovou zprávou Nejde vyvolat metodu
Problém
Při spuštění úlohy PowerShellu v runbooku, který běží v Azure, se zobrazí následující chybová zpráva:
Exception was thrown - Cannot invoke method. Method invocation is supported only on core types in this language mode.
Příčina
Tato chyba může značit, že runbooky, které běží v sandboxu Azure, nemůžou běžet v režimu full language.
Rozlišení
Tuto chybu můžete vyřešit dvěma způsoby:
- Místo použití Start-Job použijte Start-AzAutomationRunbook ke spuštění runbooku.
- Zkuste spustit runbook ve funkci Hybrid Runbook Worker.
Další informace o tomto chování a dalším chování runbooků Azure Automation najdete v tématu Spouštění runbooků ve službě Azure Automation.
Scénář: Dlouho běžící runbook se nepodaří dokončit
Problém
Runbook se zobrazuje ve stavu Zastaveno po tříhodinovém běhu. Může se zobrazit také tato chyba:
The job was evicted and subsequently reached a Stopped state. The job cannot continue running.
Toto chování je záměrem v sandboxech Azure kvůli spravedlivému přerozdělení procesů ve službě Azure Automation. Pokud se proces spustí déle než tři hodiny, spravedlivé sdílení runbook automaticky zastaví. Stav runbooku, který překračuje časový limit pro rovnoměrné rozdělení zdrojů, se liší podle typu runbooku. Runbooky PowerShellu a Pythonu jsou nastavené na stav Zastaveno. Běhové knihy pracovního postupu PowerShellu byly označeny jako selhané.
Příčina
Runbook přesáhl tříhodinový limit stanovený principem spravedlivého sdílení v sandboxu Azure.
Rozlišení
Jedním z doporučených řešení je spuštění runbooku na Hybrid Runbook Worker. Hybridní pracovníci nejsou omezeni limitem tříhodinového rovnoměrného využívání runbooku, které platí pro sandboxy Azure. Runbooky, které běží v hybrid Runbook Worker, by měly být vyvinuty tak, aby podporovaly chování při restartování, pokud dojde k neočekávaným problémům s místní infrastrukturou.
Dalším řešením je optimalizovat runbook vytvořením podřízených runbooků. Pokud runbook opakovaně provádí stejnou funkci na několika prostředcích, například při provádění databázové operace na několika databázích, můžete tuto funkci přesunout do podřízeného runbooku. Každý podřízený runbook se spouští paralelně v samostatném procesu. Toto chování snižuje celkovou dobu dokončení nadřazeného runbooku.
Cmdlety PowerShellu, které podporují scénář podřízeného runbooku, jsou:
- Start-AzAutomationRunbook. Tento cmdlet vám umožní spustit runbook a předat do něj parametry.
- Get-AzAutomationJob. Pokud jsou operace, které je potřeba provést po dokončení podřízeného runbooku, tento cmdlet umožňuje zkontrolovat stav úlohy pro každý podřízený runbook.
Scénář: Chyba v datových proudech úloh týkající se metody get_SerializationSettings
Problém
V datových tocích úloh runbooku se zobrazí následující chyba:
Connect-AzAccount : Method 'get_SerializationSettings' in type
'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly
'Microsoft.Azure.Commands.ResourceManager.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
does not have an implementation.
At line:16 char:1
+ Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -Appl ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Connect-AzAccount], TypeLoadException
+ FullyQualifiedErrorId : System.TypeLoadException,Microsoft.Azure.Commands.Profile.ConnectAzAccountCommand
Příčina
Příčinou této chyby je pravděpodobně neúplná migrace z azureRM na moduly Az ve vašem runbooku. Tato situace může způsobit, že Azure Automation spustí úlohu runbooku jenom pomocí modulů AzureRM a pak spustí jinou úlohu jenom pomocí modulů Az, což vede k chybovému ukončení sandboxu.
Rozlišení
Nedoporučujeme používat rutiny Az a AzureRM ve stejném runbooku. Další informace o správném použití modulů najdete v tématu Migrace na Az moduly.
Scénář: Přístup odepřen při použití sandboxu Azure pro runbook nebo aplikaci
Problém
Když se runbook nebo aplikace pokusí spustit v sandboxu Azure, prostředí odepře přístup.
Příčina
Tento problém může nastat, protože sandboxy Azure brání přístupu ke všem serverům COM mimo proces. Například aplikace v izolovaném prostoru (sandbox) nebo runbook nemůžou volat na WMI (Windows Management Instrumentation) ani do služby Windows Installer (msiserver.exe).
Rozlišení
Podrobnosti o používání sandboxů Azure najdete v tématu Prostředí spouštění runbooků.
Scénář: Neplatný stavový kód Zakázáno při použití služby Key Vault v runbooku
Problém
Při pokusu o přístup ke službě Azure Key Vault prostřednictvím runbooku Azure Automation se zobrazí následující chyba:
Operation returned an invalid status code 'Forbidden'
Příčina
Možné příčiny tohoto problému:
- Nepoužívejte účet typu Spustit jako.
- Nedostatečná oprávnění.
Rozlišení
Nepoužívání účtu Spustit jako
Postupujte podle kroku 5 – Přidejte ověřování pro správu prostředků Azure, abyste se ujistili, že používáte účet Spustit jako pro přístup ke službě Key Vault.
Nedostatečná oprávnění
Přidejte oprávnění ke službě Key Vault, abyste měli jistotu, že váš účet Spustit jako má dostatečná oprávnění pro přístup ke službě Key Vault.
Scénář: Runbook selže s chybou „Překročení délky parametru“.
Problém
Váš runbook používá parametry a selže s následující chybou:
Total Length of Runbook Parameter names and values exceeds the limit of 30,000 characters. To avoid this issue, use Automation Variables to pass values to runbook.
Příčina
Existuje omezení celkové délky znaků všech parametrů, které je možné zadat v runbookech Python 2.7, Python 3.8 a PowerShell 7.1. Celková délka všech názvů parametrů a hodnot parametru nesmí překročit 30 000 znaků.
Rozlišení
K vyřešení tohoto problému můžete použít proměnné Azure Automation k předání hodnot do runbooku. Můžete také snížit počet znaků v názvech parametrů a hodnotách parametru, abyste zajistili, že celková délka nepřekročí 30 000 znaků.
Doporučené dokumenty
Další kroky
Pokud se tady váš problém nezobrazuje nebo nemůžete problém vyřešit, zkuste získat další podporu některým z následujících kanálů:
- Získejte odpovědi od odborníků na Azure prostřednictvím fór Azure.
- Spojte se s @AzureSupport, oficiálním účtem Microsoft Azure pro zlepšení uživatelského prostředí. Podpora Azure vás spojuje s komunitou Azure a poskytuje odpovědi, podporu a odborníky.
- Pokud potřebujete další pomoc, můžete podat incident podpory Azure. Přejděte na web podpora Azure a vyberte Získat podporu.