Azure Automation-runbooktypen

De functie Azure Automation Process Automation ondersteunt verschillende typen runbooks, zoals gedefinieerd in de volgende tabel. Zie Runbook-uitvoering in Azure Automation voor meer informatie over de omgeving voor procesautomatisering.

Type Description
Powershell Tekstrunbook op basis van Windows PowerShell-scripts. De momenteel ondersteunde versies zijn: PowerShell 7.2 (GA) en PowerShell 5.1 (GA). Omdat PowerShell 7.1 niet meer wordt ondersteund door PowerShell van het bovenliggende product, raden we u aan runbooks te maken in ondersteunde versie PowerShell 7.2 op lange termijn
PowerShell-werkstroom Tekstrunbook op basis van Windows PowerShell Workflow-scripting.
Python Tekstueel runbook op basis van Python-scripts. De momenteel ondersteunde versies zijn: Python 3.8 (GA) en Python 3.10 (preview). Omdat Python 2.7 niet meer wordt ondersteund door bovenliggend product Python, raden we u aan runbooks te maken in langlopende ondersteunde versies.
Grafisch Grafisch runbook op basis van Windows PowerShell en volledig gemaakt en bewerkt in de grafische editor in Azure Portal.
Grafische PowerShell-werkstroom Grafisch runbook op basis van Windows PowerShell Workflow en volledig gemaakt en bewerkt in de grafische editor in Azure Portal.

Notitie

Azure Automation volgt de ondersteuningslevenscyclus van powerShell- en Python-taalversies in overeenstemming met de tijdlijnen die respectievelijk door bovenliggende producten powershell en Python zijn gepubliceerd. U wordt aangeraden 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. Zie Onderliggende runbooks in Azure Automation voor meer informatie.

PowerShell Runbooks

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 runtimeversie die is opgegeven (versie 7.2, 7.1 (preview) of 5.1.

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 runtimeversie van PowerShell 7.2 ondersteund voor cloud- en hybride taken in alle openbare regio's, behalve centraal India, UAE - centraal, Israël - centraal, Italië - noord, Duitsland - noord en Gov-clouds.
  • Wanneer u Runtime-versie als 7.2 selecteert, worden PowerShell-modules die gericht zijn op 7.2 runtime-versie gebruikt en als u Runtime-versie als 5.1 selecteert, worden PowerShell-modules gebruikt die gericht zijn op 5.1-runtimeversie. Dit is van toepassing op PowerShell 7.1-modules (preview) en runbooks.

Zorg ervoor dat u de juiste runtimeversie voor modules selecteert.

Als u bijvoorbeeld een runbook uitvoert voor een SharePoint-automatiseringsscenario in Runtime versie7.1 (preview), importeert u de module in runtimeversie 7.1 (preview); als u een runbook uitvoert voor een SharePoint-automatiseringsscenario in Runtime versie5.1, importeert u de module in Runtime versie5.1. In dit geval ziet u twee vermeldingen voor de module, één voor Runtime-versie7.1 (preview) en andere voor 5.1.

runbooktypen.

Notitie

Momenteel worden PowerShell 5.1, PowerShell 7.1 (preview) en PowerShell 7.2 ondersteund.

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 runtimeversie van PowerShell 7.2 ondersteund voor cloud- en hybride taken in alle openbare regio's, behalve centraal India, UAE - centraal, Israël - centraal, Italië - noord, Duitsland - noord en Gov-clouds.

  • Voor de runtimeversie van PowerShell 7.2 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.2. PowerShell 7.2-runbooks in broncodebeheer worden ook gemaakt in het Automation-account als Runtime 5.1.
  • Az-module 8.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.2-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 mogelijk mislukken vanwege wijzigingen in de back-endinfrastructuur 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 onderliggende scripts die worden gebruikt .\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

      # 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 Workflow-runbooks

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 onderliggende runbooks bevatten om werkstromen op hoog niveau te maken.

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 uitzonderingen zoals de opdracht niet worden gevonden.
  • 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 onderliggende runbooks met behulp van de Start-AzAutomationRunbook cmdlet.
  • Runbooks kunnen niet worden uitgevoerd op een Hybrid Runbook Worker voor Linux.

Python-runbooks

Python-runbooks worden gecompileerd onder Python 2.7(GA), Python 3.8 (GA) en Python 3.10 (preview). 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.

Momenteel wordt runtimeversie van Python 3.10 (preview) ondersteund voor zowel cloud- als hybride taken in alle openbare regio's, met uitzondering van Australië - centraal2, Korea - zuid, Zweden - zuid, Jio India - centraal, Brazilië - zuid, India - centraal, India - west, UAE - centraal 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.
  • Voor Python 2.7 worden Windows Hybrid Runbook Workers ondersteund met Python 2.7 geïnstalleerd.
  • Voor Python 3.8-cloudtaken wordt python 3.8-versie ondersteund. Scripts en pakketten van elke 3.x-versie werken mogelijk als de code compatibel is in verschillende versies.
  • Voor Hybride Python 3.8-taken op Windows-computers kunt u ervoor kiezen om elke 3.x-versie te installeren die u mogelijk wilt gebruiken.
  • Voor Hybride Python 3.8-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

Hieronder volgen de beperkingen van Python-runbooks

  • Voor Python 3.10-modules (preview) worden momenteel alleen de wielbestanden ondersteund die gericht zijn op cp310 Linux OS. Meer informatie
  • Integratie van broncodebeheer wordt niet ondersteund.
  • Aangepaste pakketten voor Python 3.10 (preview) 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 (preview) alleen ondersteund vanuit De Azure-portal. Rest API en PowerShell worden niet ondersteund.

Meerdere Python-versies

Dit is van toepassing op Hybride Windows-werkrollen. 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 zich bijvoorbeeld bevindt C:\Python2, wordt gecontroleerd of C:\Python2\python.exe het 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 in Runbook Worker wilt gebruiken, stelt PYTHON_2_PATH u deze in en PYTHON_3_PATH op de locatie van de module voor die versies.

Bekende problemen

Voor cloudtaken mislukken Python 3.8-taken soms met een uitzonderingsbericht invalid interpreter executable path. Deze uitzondering kan worden weergegeven als de taak is vertraagd, meer dan 10 minuten wordt gestart 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 geen tekstrunbook converteren naar 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