Delen via


Azure Automation-runbooktypen

De functie Azure Automation Process Automation ondersteunt verschillende typen runbooks, zoals gedefinieerd in de volgende tabel.

Typologie Beschrijving
Powershell
(aanbevolen)
Tekstrunbook op basis van Windows PowerShell-scripts. De momenteel ondersteunde versies zijn PowerShell 7.4 en PowerShell 5.1. Omdat PowerShell 7.1 en PowerShell 7.2 niet meer worden ondersteund door het bovenliggende product PowerShell, raden we u aan runbooks te maken in de langdurig ondersteunde versie PowerShell 7.4.
PowerShell-werkstroom Tekstrunbook op basis van Windows PowerShell Workflow-scripting.
Python
(aanbevolen)
Tekstueel runbook op basis van Python-scripts. De momenteel ondersteunde versie is Python 3.10. Omdat Python 2.7 en Python 3.8 niet meer worden ondersteund door het bovenliggende product Python, raden we u aan runbooks te maken in Python 3.10.
Grafisch Grafisch runbook op basis van Windows PowerShell. Volledig gemaakt en bewerkt in de grafische editor in de Azure portal.
Grafische PowerShell-werkstroom Een grafisch runbook op basis van Windows PowerShell Workflow en volledig gemaakt en bewerkt in de grafische editor in de Azure portal.

Zie Runbook-uitvoering in Azure Automation voor meer informatie over de omgeving voor procesautomatisering.

Notitie

Azure Automation volgt de ondersteuningslevenscyclus van PowerShell- en Python-taalversies in overeenstemming met de tijdlijnen die zijn gepubliceerd door respectievelijk de producten, PowerShell en Python. We raden u aan runbooks te gebruiken met ondersteunde taalversies.

Houd rekening met de volgende overwegingen bij het bepalen welk type moet worden gebruikt voor een bepaald runbook:

  • U kunt runbooks niet converteren van grafisch naar teksttype of andersom.
  • Er gelden beperkingen bij het gebruik van runbooks van verschillende typen als onderliggende runbooks. Voor meer informatie, zie Onderliggende runbooks in Azure Automation.

PowerShell werkboeken

PowerShell-runbooks zijn gebaseerd op Windows PowerShell. U bewerkt de code van het runbook rechtstreeks met de teksteditor in de Azure-portal. U kunt ook elke offlineteksteditor gebruiken en het runbook importeren in Azure Automation.

De PowerShell-versie wordt bepaald door de opgegeven runtimeversie .

Dezelfde Azure-sandbox en Hybrid Runbook Worker kunnen meerdere PowerShell-runbooks uitvoeren die gericht zijn op verschillende runtimeversies naast elkaar.

Notitie

  • Op dit moment wordt de runtimeversie van PowerShell 7.4 ondersteund voor zowel cloud- als hybride taken in alle openbare regio's, met uitzondering van Brazilië - zuidoost en Gov-clouds.
  • Wanneer u Runtimeversie selecteert als 7.4, worden PowerShell-modules gebruikt die gericht zijn op de 7.4-runtimeversie, en als u Runtimeversie selecteert als 5.1, worden PowerShell-modules gebruikt die gericht zijn op de 5.1-runtimeversie.

Zorg ervoor dat u de juiste runtimeversie voor modules selecteert.

Bijvoorbeeld: Als u een runbook uitvoert voor een SharePoint-automatiseringsscenario in Runtime versie7.4, importeert u de module in Runtime versie7.4; Als u een runbook uitvoert voor een SharePoint-automatiseringsscenario in Runtime versie5.1, importeert u de module in Runtime versie5.1.

Voordelen

  • Implementeer alle complexe logica met PowerShell-code zonder de andere complexiteit van PowerShell Workflow.
  • Start sneller dan PowerShell Workflow-runbooks, omdat ze niet hoeven te worden gecompileerd voordat ze worden uitgevoerd.
  • Uitvoeren in Azure en op Hybrid Runbook Workers voor zowel Windows als Linux.

Beperkingen en bekende problemen

Hier volgen de huidige beperkingen en bekende problemen met PowerShell-runbooks:

Beperkingen

Notitie

Op dit moment wordt de runtimeversie van PowerShell 7.4 ondersteund voor zowel cloud- als hybride taken in alle openbare regio's, met uitzondering van Brazilië - zuidoost en Gov-clouds.

  • Powershell 7.4 is alleen beschikbaar in de runtime-omgeving.
  • Voor de runtimeversie van PowerShell 7.4 worden de moduleactiviteiten niet geëxtraheerd voor de geïmporteerde modules. Gebruik de Azure Automation-extensie voor VS Code om het ontwerpen van runbooks te vereenvoudigen.
  • PowerShell 7.x biedt geen ondersteuning voor werkstromen. Zie de PowerShell-werkstroom voor meer informatie.
  • PowerShell 7.x biedt momenteel geen ondersteuning voor ondertekende runbooks.
  • Integratie van broncodebeheer biedt geen ondersteuning voor PowerShell 7.4. Ook worden PowerShell 7.4-runbooks die in broncodebeheer staan in het Automation-account als Runtime 5.1 gemaakt.
  • Az-module 12.3.0 is standaard geïnstalleerd. De volledige lijst met onderdeelmodules van de geselecteerde Az-moduleversie wordt weergegeven zodra de Az-versie opnieuw is geconfigureerd met behulp van Azure Portal of API.
  • De geïmporteerde PowerShell 7.4-module wordt gevalideerd tijdens het uitvoeren van de taak. Zorg ervoor dat alle afhankelijkheden voor de geselecteerde module ook worden geïmporteerd voor een geslaagde taakuitvoering.
  • Azure-runbook biedt geen ondersteuning Start-Job voor -credential.
  • Azure biedt geen ondersteuning voor alle PowerShell-invoerparameters. Meer informatie.

Bekende problemen

  • Runbooks die afhankelijk zijn van interne bestandspaden, zoals C:\modules, kunnen mislukken vanwege veranderingen in de backend-infrastructuur van de service. Wijzig runbookcode om ervoor te zorgen dat er geen afhankelijkheden zijn op interne bestandspaden en gebruik Get-ChildItem om de vereiste modulegegevens op te halen.

  • Get-AzStorageAccount cmdlet kan mislukken met een fout: de Get-AzStorageAccount opdracht is gevonden in de module Az.Storage, maar de module kan niet worden geladen.

  • Het uitvoeren van kinderscripts met .\child-runbook.ps1 wordt niet ondersteund.
    Tijdelijke oplossing: Gebruik Start-AutomationRunbook (interne cmdlet) of Start-AzAutomationRunbook (vanuit de Az.Automation-module) om een ander runbook te starten vanuit een bovenliggend runbook.

  • Wanneer u exchangeOnlineManagement-moduleversie 3.0.0 of hoger gebruikt, kunt u fouten ondervinden. U kunt het probleem oplossen door ervoor te zorgen dat u PowerShellGet- en PackageManagement-modules expliciet uploadt.

  • Wanneer u de New-AzAutomationVariable cmdlet in Az.Automation Module gebruikt om een variabele van het typeobject te uploaden, werkt de bewerking niet zoals verwacht. Tijdelijke oplossing: Converteer het object naar een JSON-tekenreeks met behulp van de cmdlet ConvertTo-Json en upload vervolgens de variabele met de JSON-tekenreeks als waarde. Deze tijdelijke oplossing zorgt ervoor dat de variabele in de Azure Automation-omgeving correct wordt verwerkt als een JSON-tekenreeks.

    Voorbeeld : een PowerShell-object maken dat informatie heeft opgeslagen rond Azure-VM's

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

PowerShell-workflowdraaiboeken

PowerShell Workflow-runbooks zijn tekstrunbooks op basis van Windows PowerShell Workflow. U bewerkt de code van het runbook rechtstreeks met de teksteditor in de Azure-portal. U kunt ook elke offlineteksteditor gebruiken en het runbook importeren in Azure Automation.

Notitie

PowerShell 7.1 (preview) en PowerShell 7.2 bieden geen ondersteuning voor Workflow-runbooks.

Voordelen

  • Implementeer alle complexe logica met PowerShell Workflow-code.
  • Gebruik controlepunten om de bewerking te hervatten als er een fout optreedt.
  • Gebruik parallelle verwerking om meerdere acties parallel uit te voeren.
  • Kan andere grafische runbooks en PowerShell Workflow-runbooks als subrunbooks gebruiken voor het creëren van werkstromen op hoog niveau.

Beperkingen

  • PowerShell-werkstroom wordt niet ondersteund in PowerShell 7+ versies. Daarom kunnen de verouderde runbooks niet worden bijgewerkt.
  • Inefficiënte verwerking van parallelle uitvoering vergeleken met nieuwere PowerShell 7+ versies.
  • PowerShell Workflow werkt intern met behulp van meerdere processen. Daarom zijn modules die beschikbaar zijn in het ene proces mogelijk niet beschikbaar in een ander proces en kunnen fouten zoals de opdracht niet gevonden veroorzaken.
  • Runbooks moeten omgaan met de extra complexiteit van PowerShell Workflow, zoals gedeserialiseerde objecten.
  • Het starten van runbooks duurt langer dan PowerShell-runbooks, omdat ze moeten worden gecompileerd voordat ze worden uitgevoerd.
  • U kunt PowerShell-runbooks alleen opnemen als sub-runbooks met behulp van een Start-AzAutomationRunbook-cmdlet.
  • Runbooks kunnen niet worden uitgevoerd op een Hybrid Runbook Worker voor Linux.

Python-runboeken

Python-runbooks worden gecompileerd onder Python 3.10. U kunt de code van het runbook rechtstreeks bewerken met de teksteditor in de Azure-portal. U kunt ook een offline teksteditor gebruiken en het runbook importeren in Azure Automation. Python 2.7 en Python 3.8 worden niet meer ondersteund door het bovenliggende product en het wordt aanbevolen om runbooks te maken in de runtimeversie van Python 3.10.

Momenteel wordt de runtimeversie van Python 3.10 ondersteund voor zowel cloud- als hybride taken in alle openbare regio's, met uitzondering van Brazilië - zuidoost en Gov-clouds.

Voordelen

Notitie

Het importeren van een Python-pakket kan enkele minuten duren.

  • Maakt gebruik van de robuuste Python-bibliotheken.
  • Kan worden uitgevoerd in Azure of op Hybrid Runbook Workers.
  • Scripts en pakketten van elke 3.x-versie werken mogelijk als de code compatibel is in verschillende versies.
  • Voor Hybride Python 3.10-taken op Windows-computers kunt u ervoor kiezen om een 3.x-versie te installeren die u mogelijk wilt gebruiken.
  • Voor Hybride Python 3.10-taken op Linux-machines zijn we afhankelijk van de Python 3-versie die op de computer is geïnstalleerd om DSC OMSConfig en de Linux Hybrid Worker uit te voeren. Verschillende versies moeten werken als er geen belangrijke wijzigingen zijn in methodehandtekeningen of contracten tussen versies van Python 3.

Beperkingen

De beperkingen van Python-runbooks zijn:

  • Voor Python 3.10-modules worden momenteel alleen de wielbestanden die gericht zijn op cp310 Linux OS ondersteund. Meer informatie
  • Integratie van broncodebeheer wordt niet ondersteund.
  • Aangepaste pakketten voor Python 3.10 worden alleen gevalideerd tijdens de taakruntime. De taak mislukt naar verwachting als het pakket niet compatibel is in de runtime of als vereiste afhankelijkheden van pakketten niet in het Automation-account worden geïmporteerd.
  • Momenteel worden Python 3.10-runbooks alleen ondersteund vanuit de Azure-portal en rest API.

Meerdere Python-versies

Dit geldt voor hybride Windows-werkers. Voor een Windows Runbook Worker wordt bij het uitvoeren van een Python 2-runbook eerst gezocht naar de omgevingsvariabele PYTHON_2_PATH en wordt gecontroleerd of deze verwijst naar een geldig uitvoerbaar bestand. Als de installatiemap bijvoorbeeld C:\Python2 is, wordt gecontroleerd of C:\Python2\python.exe een geldig pad is. Als deze niet wordt gevonden, zoekt deze naar de PATH omgevingsvariabele om een vergelijkbare controle uit te voeren.

Voor Python 3 zoekt het eerst naar de PYTHON_3_PATH env-variabele en vervolgens terug naar de PATH omgevingsvariabele.

Wanneer u slechts één versie van Python gebruikt, kunt u het installatiepad toevoegen aan de PATH variabele. Als u beide versies op de Runbook Worker wilt gebruiken, stel dan PYTHON_2_PATH en PYTHON_3_PATH in op de locatie van de module voor die versies.

Bekende problemen

Voor cloudtaken mislukken Python 3.8-taken soms met een foutbericht invalid interpreter executable path. Deze uitzondering kan optreden als de taak is vertraagd, na meer dan 10 minuten start of als u Start-AutomationRunbook gebruikt om Python 3.8-runbooks te starten. Als de taak is vertraagd, moet het opnieuw opstarten van het runbook voldoende zijn.

Grafische runbooks

U kunt grafische PowerShell Werkstroom-runbooks maken en bewerken met behulp van de grafische editor in Azure Portal. U kunt dit type runbook echter niet maken of bewerken met een ander hulpprogramma. Belangrijkste functies van grafische runbooks:

  • Geëxporteerd naar bestanden in uw Automation-account en vervolgens geïmporteerd in een ander Automation-account.
  • PowerShell-code genereren.
  • Geconverteerd naar of van grafische PowerShell Workflow-runbooks tijdens het importeren.

Voordelen

  • Visual insert-link-configure ontwerpmodel gebruiken.
  • Richt u op de wijze waarop gegevens door het proces stromen.
  • Beheerprocessen visueel vertegenwoordigen.
  • Voeg andere runbooks toe als onderliggende runbooks om werkstromen op hoog niveau te maken.
  • Moedig modulair programmeren aan.

Beperkingen

  • Kan niet buiten Azure Portal maken of bewerken.
  • Mogelijk is een codeactiviteit met PowerShell-code vereist om complexe logica uit te voeren.
  • Kan niet converteren naar een van de tekstindelingen, en u kunt ook een tekstrunbook niet converteren naar een grafische indeling.
  • PowerShell-code die door de grafische werkstroom wordt gemaakt, kan niet rechtstreeks worden weergegeven of bewerkt. U kunt de code bekijken die u in alle codeactiviteiten maakt.
  • Runbooks kunnen niet worden uitgevoerd op een Linux Hybrid Runbook Worker. Zie Resources automatiseren in uw datacenter of cloud met behulp van Hybrid Runbook Worker.
  • Grafische runbooks kunnen niet digitaal worden ondertekend.

Volgende stappen