Sdílet prostřednictvím


Řešení problémů s runbooky

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:

  1. 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
  2. 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.

  3. 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.

  4. Pokud je vaše provozní příručka pozastavena nebo neočekávaně selže:

  5. 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

 Snímek obrazovky znázorňující přiřazení rolí Azure

Snímek obrazovky, který ukazuje, jak přidat přiřazení role

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:

  1. 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.

  2. 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 $Cred
    
  3. Pokud 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.

  4. 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:

  1. Přejděte do účtu Spustit jako Automation a zkopírujte ID aplikace a otisk.

    Kopírování ID aplikace a kryptografického otisku

  2. Přejděte do předplatného Řízení přístupu, kde účet Automation není hostován, a přidejte nové přiřazení role.

    Řízení přístupu

  3. Přidejte ID aplikace shromážděné dříve. Vyberte oprávnění přispěvatele .

    Přidat přiřazení role

  4. Zkopírujte název předplatného.

  5. 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:

  1. Ve svém účtu Automation vyberte Moduly a pak vyberte Aktualizovat moduly Azure.
  2. 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:

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 Stream pro 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:

  1. Přihlaste se ke svému předplatnému Azure.
  2. Vyberte účet Automation, který chcete upgradovat.
  3. Vyberte Nastavení a pak vyberte Ceny.
  4. 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 found nebo Cannot 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]::Collect ke 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:

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ů.

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.