Problemen met runbooks oplossen
In dit artikel worden runbookproblemen beschreven die kunnen optreden en hoe u deze kunt oplossen. Zie Runbook-uitvoering in Azure Automation voor algemene informatie.
Het is niet meer mogelijk om cmdlets te gebruiken uit geïmporteerde niet-standaardmodules in grafische PowerShell-runbooks
Probleem
Wanneer u een PowerShell-module importeert, kunt u de bijbehorende cmdlets niet gebruiken in grafische PowerShell-runbooks.
Oorzaak
Om de beveiligingspostuur van PowerShell-runbooks te verbeteren, verwerkt de service het manifestbestand van de module niet meer om de cmdlets en functies te exporteren. Dit betekent dat ze niet kunnen worden gebruikt bij het ontwerpen van grafische PowerShell-runbooks.
Oplossing
Er is geen invloed op de uitvoering van bestaande runbooks. Voor nieuwe runbooks die gebruikmaken van niet-standaard PowerShell-modules, raden we u aan om tekstuele runbooks te gebruiken in plaats van grafische PowerShell-runbooks om dit probleem op te lossen. U kunt de Azure Automation-extensie voor VScode gebruiken voor het ontwerpen en bewerken van PowerShell-runbooks die gebruikmaken van GitHub Copilot om de ontwerpervaring van runbooks te vereenvoudigen.
Start-AzAutomationRunbook mislukt met het foutbericht runbookName komt niet overeen met het verwachte patroon
Probleem
Wanneer u uitvoert Start-AzAutomationRunbook
om specifieke runbooks te starten:
start-azautomationRunbook -Name "Test_2" -AutomationAccountName "AutomationParent" -ResourceGroupName "AutomationAccount"
Dit mislukt met de volgende fout:
Start-AzAutomationRunbook: "runbookname" does not match expected pattern '^[a-zA-Z]*-*[a-zA-Z0-9]*$'
Oorzaak
Code die is geïntroduceerd in versie 1.9.0 van de Az.Automation-module controleert de namen van de runbooks om runbooks te starten en onjuist te markeren met meerdere '-'-tekens of met een '_'-teken in de naam als ongeldig.
Tijdelijke oplossing
Het is raadzaam om terug te keren naar versie 1.8.0 van de module.
Oplossing
Momenteel werken we aan het implementeren van een oplossing om dit probleem op te lossen.
Problemen met runbook vaststellen
Wanneer u fouten ontvangt tijdens de uitvoering van het runbook in Azure Automation, kunt u de volgende stappen gebruiken om de problemen vast te stellen:
Zorg ervoor dat het runbookscript correct wordt uitgevoerd op uw lokale computer.
Zie de PowerShell-documenten of Python-documenten voor taalreferenties en leermodules. Als u uw script lokaal uitvoert, kunnen veelvoorkomende fouten worden gedetecteerd en opgelost, zoals:
- Ontbrekende modules
- Syntaxisfouten
- Logische fouten
Onderzoek runbookfoutstromen.
Bekijk deze stromen voor specifieke berichten en vergelijk ze met de fouten die in dit artikel worden beschreven.
Zorg ervoor dat uw knooppunten en Automation-werkruimte de vereiste modules hebben.
Als uw runbook modules importeert, controleert u of deze beschikbaar zijn voor uw Automation-account met behulp van de stappen in Modules importeren. Werk uw PowerShell-modules bij naar de nieuwste versie door de instructies te volgen in Azure PowerShell modules bijwerken in Azure Automation. Zie Problemen met modules oplossen voor meer informatie over het oplossen van problemen.
Als uw runbook tijdelijk niet actief is of onverwachts mislukt:
- Vernieuw de webhook als u een verlopen webhook probeert te gebruiken om het runbook te starten.
- Controleer de taakstatussen om de huidige runbookstatussen en enkele mogelijke oorzaken van het probleem te bepalen.
- Voeg aanvullende uitvoer toe aan het runbook om vast te stellen wat er gebeurt voordat het runbook wordt onderbroken.
- Verwerk alle uitzonderingen die uw taak veroorzaakt.
Voer deze stap uit als de runbooktaak of de omgeving in Hybrid Runbook Worker niet reageert.
Als u de runbooks uitvoert met behulp van een Hybrid Runbook Worker in plaats van Azure Automation, moet u problemen met de Hybrid Worker mogelijk zelf oplossen.
Scenario: Kan geen nieuwe Automation-taak maken in de regio Europa - west
Probleem
Wanneer u nieuwe Automation-taken maakt, ondervindt u wellicht een vertraging of een fout bij het maken van een taak. Geplande taken worden automatisch buiten gebruik gesteld en taken die via de portal worden uitgevoerd, kunnen buiten gebruik worden gesteld als er een fout optreedt.
Oorzaak
Dit komt door de hoge belasting van runbooks van klanten met behulp van de Automation-service in de regio Europa - west.
Oplossing
Voer de volgende actie uit als het haalbaar is op basis van uw behoeften en omgeving om de kans op fouten te verminderen:
- Als u het begin van het uur voor het maken van de taak gebruikt (om 12:00, 1:00, 2:00, enzovoort), meestal op het uur of half uur, raden we u aan de begintijd van de taak te verplaatsen naar vijf minuten voor of na het uur/half uur. Dit komt doordat de meeste klanten het begin van het uur gebruiken voor het uitvoeren van taken, waardoor de belasting van de service drastisch wordt verhoogd, terwijl de belasting relatief laag is op de andere tijdsleuven.
Scenario: Runbook mislukt met 'dit. Client.SubscriptionId kan niet null zijn." foutbericht
Probleem
Uw runbook met behulp van een beheerde identiteit Connect-AzAccount -Identity die Probeert Azure-objecten te beheren, werkt niet goed en registreert de volgende fout - 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
Oorzaak
Dit kan gebeuren wanneer aan de beheerde identiteit (of een ander account dat in het runbook wordt gebruikt) geen machtigingen zijn verleend voor toegang tot het abonnement.
Oplossing
Verleen de beheerde identiteit (of een ander account dat in het runbook wordt gebruikt) een geschikt rollidmaatschap in het abonnement. Meer informatie
Scenario: toegang geblokkeerd tot Azure Storage, Azure Key Vault of Azure SQL
In dit scenario wordt Azure Storage als voorbeeld gebruikt. De informatie is echter even van toepassing op Azure Key Vault en Azure SQL.
Probleem
Als u probeert toegang te krijgen tot Azure Storage vanuit een runbook, treedt er een fout op die vergelijkbaar is met het volgende bericht: The remote server returned an error: (403) Forbidden. HTTP Status Code: 403 - HTTP Error Message: This request is not authorized to perform this operation.
Oorzaak
De Azure Firewall in Azure Storage is ingeschakeld.
Oplossing
Als u de Azure Firewall inschakelt in Azure Storage, Azure Key Vault of Azure SQL, blokkeert u de toegang vanuit Azure Automation-runbooks voor deze services. De toegang wordt geblokkeerd, zelfs als de firewall-uitzondering om vertrouwde Microsoft-services toe te staan is ingeschakeld, omdat Automation geen deel uitmaakt van de lijst met vertrouwde services. Met een ingeschakelde firewall kan alleen toegang worden gemaakt met behulp van een Hybrid Runbook Worker en een service-eindpunt voor een virtueel netwerk.
Scenario: runbook mislukt met de fout 403 Geen machtiging of Verboden
Probleem
Uw runbook mislukt met de fout Geen machtiging of Verboden 403, of gelijkwaardig.
Oorzaak
Uitvoeren als-accounts hebben mogelijk niet dezelfde machtigingen voor Azure-resources als uw huidige Automation-account.
Oplossing
Zorg ervoor dat uw Uitvoeren als-account machtigingen heeft voor toegang tot alle resources die in uw script worden gebruikt.
Scenario: aanmelden bij Azure-account mislukt
Probleem
U ontvangt een van de volgende fouten wanneer u met de Connect-AzAccount
cmdlet werkt:
Unknown_user_type: Unknown User Type
No certificate was found in the certificate store with thumbprint
Oorzaak
Deze fouten treden op als de naam van de aanmeldingsgegevensasset ongeldig is. Ze kunnen ook optreden als de gebruikersnaam en het wachtwoord die u hebt gebruikt om de Automation-aanmeldingsgegevensasset in te stellen niet geldig zijn.
Oplossing
Voer de volgende stappen uit om te bepalen wat er mis is:
Zorg ervoor dat u geen speciale tekens gebruikt. Deze tekens bevatten het teken
\@
in de naam van de Automation-referentieasset die u gebruikt om verbinding te maken met Azure.Controleer of u de gebruikersnaam en het wachtwoord kunt gebruiken die zijn opgeslagen in de Azure Automation-referentie in uw lokale PowerShell ISE-editor. Voer de volgende cmdlets uit in de PowerShell ISE.
$Cred = Get-Credential #Using Azure Service Management Add-AzureAccount -Credential $Cred #Using Azure Resource Manager Connect-AzAccount -Credential $Cred
Als uw verificatie lokaal mislukt, hebt u uw referenties voor Microsoft Entra niet juist ingesteld. Voor informatie over het juist instellen van een Microsoft Entra-account, zie Verifiëren bij Azure met behulp van Microsoft Entra ID.
Als de fout tijdelijk lijkt te zijn, kunt u proberen logica voor opnieuw proberen toe te voegen aan uw verificatieroutine om de verificatie robuuster te maken.
$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 } }
Scenario: Login-AzureRmAccount uitvoeren om aan te melden
Probleem
U ontvangt de volgende fout wanneer u een runbook uitvoert:
Run Login-AzureRMAccount to login.
Oorzaak
Deze fout kan optreden wanneer u geen Uitvoeren als-account gebruikt of het Uitvoeren als-account is verlopen.
Deze fout heeft twee hoofdoorzaken:
- Er zijn verschillende versies van de AzureRM- of Az-module.
- U probeert toegang te krijgen tot resources in een afzonderlijk abonnement.
Oplossing
Als u deze fout ontvangt nadat u één AzureRM- of Az-module hebt bijgewerkt, werkt u al uw modules bij naar dezelfde versie.
Als u toegang probeert te krijgen tot resources in een ander abonnement, volgt u deze stappen om machtigingen te configureren:
Ga naar het Uitvoeren als-account van Automation en kopieer de toepassings-id en vingerafdruk.
Ga naar het toegangsbeheer van het abonnement waar het Automation-account niet wordt gehost en voeg een nieuwe roltoewijzing toe.
Voeg de toepassings-id toe die u eerder hebt verzameld. Selecteer Inzendermachtigingen .
Kopieer de naam van het abonnement.
U kunt nu de volgende runbookcode gebruiken om de machtigingen van uw Automation-account te testen op het andere abonnement. Vervang
<CertificateThumbprint>
door de waarde die u in stap 1 hebt gekopieerd. Vervang"<SubscriptionName>"
door de waarde die u in stap 4 hebt gekopieerd.$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 }
Scenario: kan het Azure-abonnement niet vinden
Probleem
U ontvangt de volgende fout wanneer u met de Select-AzureSubscription
, Select-AzureRMSubscription
of Select-AzSubscription
cmdlet werkt:
The subscription named <subscription name> cannot be found.
Error
Deze fout kan optreden als:
- De abonnementsnaam is niet geldig.
- De Microsoft Entra-gebruiker die de abonnementsgegevens probeert op te halen, is niet geconfigureerd als beheerder van het abonnement.
- De cmdlet is niet beschikbaar.
- Er is een contextwisseling opgetreden.
Oplossing
Zie Contextwisseling in Azure Automation voor contextwisselingen.
Scenario: runbooks mislukken in situaties met meerdere abonnementen
Probleem
Bij het uitvoeren van runbooks kan het runbook Geen Azure-resources beheren.
Oorzaak
Het runbook gebruikt tijdens het uitvoeren niet de juiste context. Dit kan zijn omdat het runbook per ongeluk probeert toegang te krijgen tot het onjuiste abonnement.
Mogelijk ziet u fouten zoals deze:
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... +
of zoals deze:
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
Oplossing
Zie Contextwisseling in Azure Automation om te voorkomen dat u per ongeluk toegang probeert te krijgen tot het onjuiste abonnement.
Scenario: verificatie bij Azure mislukt omdat meervoudige verificatie is ingeschakeld
Probleem
U ontvangt de volgende fout bij het verifiëren bij Azure met uw Azure-gebruikersnaam en -wachtwoord:
Add-AzureAccount: AADSTS50079: Strong authentication enrollment (proof-up) is required
Oorzaak
Als u meervoudige verificatie voor uw Azure-account hebt, kunt u geen Microsoft Entra-gebruiker gebruiken om te verifiëren bij Azure. In plaats daarvan moet u een certificaat of service-principal gebruiken om te verifiëren.
Oplossing
Als u een service-principal wilt gebruiken met Azure Resource Manager-cmdlets, raadpleegt u Service-principal maken met behulp van Azure Portal en een service-principal verifiëren met Azure Resource Manager.
Scenario: Runbook mislukt met het foutbericht 'Een taak is geannuleerd'
Probleem
Uw runbook mislukt met een fout die vergelijkbaar is met het volgende voorbeeld:
Exception: A task was cancelled.
Oorzaak
Deze fout kan worden veroorzaakt door gebruik te maken van verouderde Azure-modules.
Oplossing
U kunt deze fout oplossen door uw Azure-modules bij te werken naar de nieuwste versie:
- Selecteer Modules in uw Automation-account en selecteer vervolgens Azure-modules bijwerken.
- De update duurt ongeveer 15 minuten. Nadat de update is voltooid, voert u het runbook dat is mislukt opnieuw uit.
Zie Azure-modules in Azure Automation bijwerken voor meer informatie over het bijwerken van uw modules.
Scenario: Term wordt niet herkend als de naam van een cmdlet, functie of script
Probleem
Uw runbook mislukt met een fout die vergelijkbaar is met het volgende voorbeeld:
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.
Oorzaak
Deze fout kan de volgende oorzaken hebben:
- De module die de cmdlet bevat, wordt niet geïmporteerd in het Automation-account.
- De module die de cmdlet bevat, wordt geïmporteerd, maar is verouderd.
Oplossing
Een van de volgende taken uitvoeren om deze fout op te lossen:
- Zie Azure PowerShell-modules in Azure Automation bijwerken voor meer informatie over het bijwerken van uw modules in uw Automation-account.
- Voor een niet-Azure-module moet u ervoor zorgen dat de module is geïmporteerd in uw Automation-account.
Scenario: Cmdlet mislukt in PnP PowerShell-runbook in Azure Automation
Probleem
Wanneer een runbook rechtstreeks een door PnP PowerShell gegenereerd object naar de Azure Automation-uitvoer schrijft, kan cmdlet-uitvoer niet terugstreamen naar Automation.
Oorzaak
Dit probleem treedt meestal op wanneer Azure Automation runbooks verwerkt die PnP PowerShell-cmdlets aanroepen, add-pnplistitem
bijvoorbeeld zonder de retourobjecten te vangen.
Oplossing
Bewerk uw scripts om retourwaarden toe te wijzen aan variabelen, zodat de cmdlets niet proberen hele objecten naar de standaarduitvoer te schrijven. Een script kan de uitvoerstroom omleiden naar een cmdlet, zoals hier wordt weergegeven.
$null = add-pnplistitem
Als de uitvoer van uw script cmdlets parseert, moet het script de uitvoer opslaan in een variabele en de variabele bewerken in plaats van de uitvoer te streamen.
$SomeVariable = add-pnplistitem ....
if ($SomeVariable.someproperty -eq ....
Scenario: Cmdlet wordt niet herkend bij het uitvoeren van een runbook
Probleem
Uw runbook-taak mislukt met de volgende fout:
<cmdlet name>: The term <cmdlet name> is not recognized as the name of a cmdlet, function, script file, or operable program.
Oorzaak
Deze fout wordt veroorzaakt wanneer de PowerShell-engine de cmdlet die u gebruikt niet kan vinden in uw runbook. Het is mogelijk dat de module met de cmdlet ontbreekt in het account, dat er een naamconflict is met de naam van een runbook, of dat de cmdlet ook in een andere module bestaat en Automation de naam niet kan omzetten.
Oplossing
Gebruik een van de volgende oplossingen om het probleem op te lossen:
- Zorg ervoor dat u de naam van de cmdlet juist hebt ingevoerd.
- Zorg ervoor dat de cmdlet bestaat in uw Automation-account en dat er geen conflicten zijn. Als u wilt controleren of de cmdlet aanwezig is, opent u een runbook in de bewerkingsmodus en zoekt u naar de cmdlet die u in de bibliotheek wilt vinden of voert u het uit
Get-Command <CommandName>
. Nadat u hebt gevalideerd dat de cmdlet beschikbaar is voor het account en dat er geen naamconflicten zijn met andere cmdlets of runbooks, voegt u de cmdlet toe aan het canvas. Zorg ervoor dat u een geldige parameterset in uw runbook gebruikt. - Als er wel een naamconflict is en de cmdlet beschikbaar is in twee verschillende modules, lost u het probleem op door de volledig gekwalificeerde naam voor de cmdlet te gebruiken. U kunt bijvoorbeeld gebruikmaken van
ModuleName\CmdletName
. - Als u het runbook on-premises uitvoert in een Hybrid Worker-groep, moet u ervoor zorgen dat de module en cmdlet zijn geïnstalleerd op de computer waarop de Hybrid Worker wordt gehost.
Scenario: Onjuiste objectverwijzing bij aanroep naar Add-AzAccount
Probleem
Deze fout wordt weergegeven wanneer u werkt Add-AzAccount
. Dit is een alias voor de Connect-AzAccount
cmdlet:
Add-AzAccount : Object reference not set to an instance of an object
Oorzaak
Deze fout kan optreden als het runbook niet de juiste stappen uitvoert voordat u aanroept Add-AzAccount
om het Automation-account toe te voegen. Een voorbeeld van een van de benodigde stappen is aanmelden met een Uitvoeren als-account. Zie Runbook-uitvoering in Azure Automation voor de juiste bewerkingen die u in uw runbook wilt gebruiken.
Scenario: objectverwijzing niet ingesteld op een exemplaar van een object
Probleem
U ontvangt de volgende fout wanneer u een onderliggend runbook aanroept met de Wait
parameter en de uitvoerstroom een object bevat:
Object reference not set to an instance of an object
Oorzaak
Als de stroom objecten bevat, Start-AzAutomationRunbook
wordt de uitvoerstroom niet correct verwerkt.
Oplossing
Implementeer een pollinglogica en gebruik de cmdlet Get-AzAutomationJobOutput om de uitvoer op te halen. Hier wordt een voorbeeld van deze logica gedefinieerd:
$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
Scenario: Runbook mislukt vanwege gedeserialiseerde objecten
Probleem
Uw runbook mislukt met de volgende fout:
Cannot bind parameter <ParameterName>.
Cannot convert the <ParameterType> value of type Deserialized <ParameterType> to type <ParameterType>.
Oorzaak
Als uw runbook een PowerShell-werkstroom is, worden complexe objecten opgeslagen in een gedeserialiseerde indeling om de status van uw runbook te behouden als de werkstroom is onderbroken.
Oplossing
Gebruik een van de volgende oplossingen om dit probleem op te lossen:
- Als u complexe objecten van de ene cmdlet naar de andere doorsluist, verpakt u deze cmdlets in een
InlineScript
-activiteit. - Geef de naam of waarde door die u nodig hebt van het complexe object in plaats van het hele object door te geven.
- Gebruik een PowerShell-runbook in plaats van een PowerShell Workflow-runbook.
Scenario: 400 Onjuiste aanvraagstatus bij het aanroepen van een webhook
Probleem
Wanneer u een webhook voor een Azure Automation-runbook probeert aan te roepen, wordt de volgende fout weergegeven:
400 Bad Request : This webhook has expired or is disabled
Oorzaak
De webhook die u probeert aan te roepen, is uitgeschakeld of is verlopen.
Oplossing
Als de webhook is uitgeschakeld, kunt u deze opnieuw inschakelen via Azure Portal. Als de webhook is verlopen, moet u deze verwijderen en vervolgens opnieuw maken. U kunt een webhook alleen verlengen als deze nog niet is verlopen.
Scenario: Fout: 429: De aanvraagsnelheid is te hoog
Probleem
U ontvangt het volgende foutbericht bij het uitvoeren van de Get-AzAutomationJobOutput
cmdlet:
429: The request rate is currently too large. Please try again
Oorzaak
Deze fout kan optreden bij het ophalen van taakuitvoer van een runbook met veel uitgebreide streams.
Oplossing
Ga op een van de volgende manieren te werk om deze fout op te lossen:
- Bewerk het runbook en verminder het aantal taakstreams dat wordt verzonden.
- Verminder het aantal streams dat moet worden opgehaald bij het uitvoeren van de cmdlet. Hiervoor kunt u de waarde van de
Stream
parameter voor de Get-AzAutomationJobOutput-cmdlet instellen om alleen uitvoerstreams op te halen.
Scenario: Runbooktaak mislukt omdat het toegewezen quotum is overschreden
Probleem
Uw runbook-taak mislukt met de volgende fout:
The quota for the monthly total job run time has been reached for this subscription
Oorzaak
Deze fout treedt op wanneer de taakuitvoering het gratis quotum van 500 minuten voor uw account overschrijdt. Dit quotum is van toepassing op alle typen taakuitvoeringstaken. Sommige van deze taken zijn het testen van een taak, het starten van een taak vanuit de portal, het uitvoeren van een taak met behulp van webhooks of het plannen van een taak die moet worden uitgevoerd met behulp van de Azure-portal of uw datacenter. Zie prijzen voor Automation voor meer informatie over prijzen voor Automation.
Oplossing
Als u meer dan 500 minuten aan verwerking per maand wilt gebruiken, wijzigt u uw abonnement van de gratis laag in de Basic-laag:
- Meld u aan bij uw Azure-abonnement.
- Selecteer het Automation-account dat u wilt upgraden.
- Selecteer Instellingen en selecteer vervolgens Prijzen.
- Selecteer Inschakelen op de pagina onderaan om uw account te upgraden naar de Basic-laag.
Scenario: Runbook-uitvoerstroom groter dan 1 MB
Probleem
Uw runbook dat wordt uitgevoerd in de Azure-sandbox mislukt met de volgende fout:
The runbook job failed due to a job stream being larger than 1MB, this is the limit supported by an Azure Automation sandbox.
Oorzaak
Deze fout treedt op omdat uw runbook heeft geprobeerd te veel uitzonderingsgegevens naar de uitvoerstroom te schrijven.
Oplossing
Er is een limiet van 1 MB voor de uitvoerstroom van de taak. Zorg ervoor dat uw runbook aanroepen naar een uitvoerbaar bestand of subproces plaatst met behulp van try
en catch
blokken. Als de bewerkingen een uitzondering genereren, moet u de code het bericht van de uitzondering naar een Automation-variabele laten schrijven. Met deze techniek voorkomt u dat het bericht naar de uitvoerstroom van de taak wordt geschreven. Voor Hybrid Runbook Worker-taken die worden uitgevoerd, wordt de uitvoerstroom afgekapt tot 1 MB zonder foutbericht weergegeven.
Scenario: De runbooktaak wordt drie keer gestart, maar wordt niet elke keer gestart
Probleem
Uw runbook mislukt met de volgende fout:
The job was tried three times but it failed
Oorzaak
Deze fout treedt op vanwege een of meer van de volgende redenen:
Geheugenlimiet. Een taak kan mislukken als deze meer dan 400 MB geheugen gebruikt. De gedocumenteerde limieten voor geheugen dat aan een sandbox is toegewezen, vindt u in Automation-servicelimieten.
Netwerksockets. Azure-sandboxes zijn beperkt tot 1000 gelijktijdige netwerksockets. Zie Automation servicelimieten voor meer informatie.
Module is niet compatibel. Moduleafhankelijkheden zijn mogelijk niet juist. In dit geval retourneert uw runbook meestal een
Command not found
ofCannot bind parameter
meer berichten.Geen verificatie met Active Directory voor sandbox. Uw runbook heeft geprobeerd een uitvoerbaar bestand of subproces aan te roepen dat wordt uitgevoerd in een Azure-sandbox. Het configureren van runbooks voor verificatie met Microsoft Entra ID met behulp van de Azure Active Directory Authentication Library (ADAL) wordt niet ondersteund.
Oplossing
Geheugenlimiet, netwerksockets. Voorgestelde manieren om binnen de geheugenlimieten te werken, zijn het splitsen van de werkbelasting tussen meerdere runbooks, het verwerken van minder gegevens in het geheugen, het schrijven van onnodige uitvoer van uw runbooks voorkomen en overwegen hoeveel controlepunten zijn geschreven in uw PowerShell-werkstroomrunbooks. Gebruik de duidelijke methode, zoals
$myVar.clear
, om variabelen uit te wissen en te gebruiken[GC]::Collect
om garbagecollection onmiddellijk uit te voeren. Deze acties verminderen de geheugenvoetafdruk van uw runbook tijdens de runtime.Module is niet compatibel. Werk uw Azure-modules bij door de stappen te volgen in Azure PowerShell modules bijwerken in Azure Automation.
Geen verificatie met Active Directory voor sandbox. Wanneer u zich verifieert bij Microsoft Entra ID met een runbook moet u ervoor zorgen dat de module Azure AD beschikbaar is in uw Automation-account. Zorg ervoor dat u het Uitvoeren als-account de benodigde machtigingen verleent om de taken uit te voeren die het runbook automatiseert.
Als uw runbook geen uitvoerbare of subprocessen kan aanroepen die worden uitgevoerd in een Azure-sandbox, gebruikt u het runbook op een Hybrid Runbook Worker. Hybride werkrollen worden niet beperkt door de geheugen- en netwerklimieten die gelden in Azure-sandboxes.
Scenario: PowerShell-taak mislukt met het foutbericht 'Kan methode niet aanroepen'
Probleem
U ontvangt het volgende foutbericht wanneer u een PowerShell-taak start in een runbook dat wordt uitgevoerd in Azure:
Exception was thrown - Cannot invoke method. Method invocation is supported only on core types in this language mode.
Oorzaak
Deze fout kan erop wijzen dat runbooks die worden uitgevoerd in een Azure-sandbox, niet kunnen worden uitgevoerd in de modus Volledige taal.
Oplossing
U kunt deze fout op twee manieren oplossen:
- In plaats van Start-Job te gebruiken, gebruikt u Start-AzAutomationRunbook om het runbook te starten.
- Voer het runbook uit op een Hybrid Runbook Worker.
Scenario: een langlopend runbook kan niet worden voltooid
Probleem
Uw runbook wordt weergegeven in de status Gestopt nadat het drie uur is uitgevoerd. U ontvangt mogelijk ook deze fout:
The job was evicted and subsequently reached a Stopped state. The job cannot continue running.
Dit gedrag is standaard in Azure-sandboxes vanwege de eerlijke verdeling van processen binnen Azure Automation. Als een proces langer dan drie uur wordt uitgevoerd, stopt fair share automatisch een runbook. De status van een runbook dat voorbij de tijdslimiet voor evenredige verdeling gaat, verschilt per runbooktype. PowerShell- en Python-runbooks zijn ingesteld op de status Gestopt. PowerShell Workflow-runbooks zijn ingesteld op Mislukt.
Oorzaak
Het runbook heeft de limiet van drie uur overschreden die is toegestaan door evenredige verdeling in een Azure-sandbox.
Oplossing
Een aanbevolen oplossing is om het runbook uit te voeren op een Hybrid Runbook Worker. Hybride werknemers worden niet beperkt door de runbooklimiet voor evenredige verdeling van drie uur die Azure-sandboxes hebben. Runbooks die worden uitgevoerd op Hybrid Runbook Workers moeten worden ontwikkeld ter ondersteuning van gedrag bij opnieuw opstarten als er onverwachte problemen zijn met de lokale infrastructuur.
Een andere oplossing is om het runbook te optimaliseren door onderliggende runbooks te maken. Als uw runbook dezelfde functie op verschillende resources doorloopt, bijvoorbeeld in een databasebewerking op verschillende databases, kunt u de functie verplaatsen naar een onderliggend runbook. Elk onderliggend runbook wordt parallel uitgevoerd in een afzonderlijk proces. Dit gedrag vermindert de totale tijdsduur voor het bovenliggende runbook dat moet worden voltooid.
De PowerShell-cmdlets die het onderliggende runbookscenario inschakelen, zijn:
- Start-AzAutomationRunbook. met deze cmdlet kunt u een runbook starten en parameters aan het runbook doorgeven.
- Get-AzAutomationJob. Als er bewerkingen moeten worden uitgevoerd nadat het onderliggende runbook is voltooid, kunt u met deze cmdlet de taakstatus voor elk onderliggend item controleren.
Scenario: Fout in taakstromen over de methode get_SerializationSettings
Probleem
U ziet de volgende fout in uw taakstreams voor een runbook:
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
Oorzaak
Deze fout wordt waarschijnlijk veroorzaakt door een onvolledige migratie van AzureRM naar Az-modules in uw runbook te gebruiken. Deze situatie kan ertoe leiden dat Azure Automation een runbooktaak start met behulp van alleen AzureRM-modules en vervolgens een andere taak start met behulp van alleen Az-modules, wat leidt tot een crash in de sandbox.
Oplossing
We raden het gebruik van Az- en AzureRM-cmdlets niet aan in hetzelfde runbook. Zie Migreren naar Az-modules voor meer informatie over het juiste gebruik van de modules.
Scenario: Toegang geweigerd bij gebruik van Azure-sandbox voor runbook of toepassing
Probleem
Wanneer uw runbook of toepassing wordt uitgevoerd in een Azure-sandbox, weigert de omgeving de toegang.
Oorzaak
Dit probleem kan optreden omdat Azure-sandboxes de toegang tot alle niet-verwerkte COM-servers voorkomen. Een toepassing of runbook in een sandbox kan bijvoorbeeld geen aanroepen naar Windows Management Instrumentation (WMI) of naar de Windows Installer-service (msiserver.exe).
Oplossing
Zie runbookuitvoeringsomgeving voor meer informatie over het gebruik van Azure-sandboxes.
Scenario: Ongeldige statuscode Verboden bij gebruik van Key Vault in een runbook
Probleem
Wanneer u azure Key Vault probeert te openen via een Azure Automation-runbook, krijgt u de volgende fout:
Operation returned an invalid status code 'Forbidden'
Oorzaak
Mogelijke oorzaken voor dit probleem zijn:
- Geen Uitvoeren als-account gebruiken.
- Onvoldoende machtigingen.
Oplossing
Geen Uitvoeren als-account gebruiken
Volg stap 5: voeg verificatie toe om Azure-resources te beheren om ervoor te zorgen dat u een Uitvoeren als-account gebruikt voor toegang tot Key Vault.
Onvoldoende machtigingen
Voeg machtigingen toe aan Key Vault om ervoor te zorgen dat uw Uitvoeren als-account voldoende machtigingen heeft voor toegang tot Key Vault.
Scenario: Runbook mislukt met fout 'Parameterlengte overschreden'
Probleem
Uw runbook gebruikt parameters en mislukt met de volgende fout:
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.
Oorzaak
Er is een limiet voor de totale lengte van alle parameters die kunnen worden opgegeven in Python 2.7-, Python 3.8- en PowerShell 7.1-runbooks. De totale lengte van alle parameternamen en parameterwaarden mag niet langer zijn dan 30.000 tekens.
Oplossing
U kunt dit probleem oplossen door Azure Automation-variabelen te gebruiken om waarden door te geven aan runbook. U kunt ook het aantal tekens in parameternamen en parameterwaarden verminderen om ervoor te zorgen dat de totale lengte niet langer is dan 30.000 tekens.
Aanbevolen documenten
Volgende stappen
Als u het probleem hier niet ziet of als u het probleem niet kunt oplossen, kunt u een van de volgende kanalen proberen voor meer ondersteuning:
- Krijg antwoorden van Azure-experts via Azure-forums.
- Maak verbinding met @AzureSupport, het officiële Microsoft Azure-account voor het verbeteren van de klantervaring. Azure Support verbindt u met de Azure-community voor antwoorden, ondersteuning en experts.
- Als u meer hulp nodig hebt, kunt u een ondersteuning voor Azure incident indienen. Ga naar de ondersteuning voor Azure site en selecteer Ondersteuning krijgen.