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
Beperkingen
Notitie
De PowerShell-versie 7.2 wordt niet meer ondersteund door het bovenliggende product PowerShell.
- Voor de runtimeversie van PowerShell 7.2 worden de moduleactiviteiten niet geëxtraheerd voor de geïmporteerde modules.
- 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
, 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
Beperkingen
- Runbooks kunnen parallelle verwerking niet gebruiken om meerdere acties parallel uit te voeren.
- Runbooks kunnen controlepunten niet gebruiken om het runbook te hervatten wanneer zich een fout voordoet.
- U kunt alleen PowerShell-, PowerShell Workflow-runbooks en grafische runbooks als onderliggende runbooks opnemen met behulp van de cmdlet Start-AzAutomationRunbook , waarmee een nieuwe taak wordt gemaakt.
- Runbooks kunnen de PowerShell-instructie #Requires niet gebruiken, dit wordt niet ondersteund in azure-sandbox of in Hybrid Runbook Workers en kan ertoe leiden dat de taak mislukt.
- 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.
Voorbeeldscript
# Get information about module "Microsoft.Graph.Authentication"
$ModuleName = "Microsoft.Graph.Authentication"
$NewPath = "C:\usr\src\PSModules\$ModuleName"
$OldPath = "C:\Modules\User\$ModuleName"
if (Test-Path -Path $NewPath -PathType Container) {
Get-ChildItem -Path $NewPath
} elseif (Test-Path -Path $OldPath -PathType Container) {
Get-ChildItem -Path $OldPath
} else {
Write-Output "Module $ModuleName not present."
}
# Getting the path to the Temp folder, if needed.
$tmp = $env:TEMP
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.
PowerShell-runbooks kunnen geen niet-versleutelde variabele asset met een null-waarde ophalen.
PowerShell-runbooks kunnen geen variabele asset met *~*
in de naam ophalen.
Een Get-Process-bewerking in een lus in een PowerShell-runbook kan vastlopen na ongeveer 80 iteraties.
Een PowerShell-runbook kan mislukken als er tegelijkertijd een grote hoeveelheid gegevens naar de uitvoerstroom wordt geschreven. U kunt dit probleem meestal omzeilen door het runbook alleen de informatie te laten uitvoeren die nodig is om met grote objecten te werken. In plaats van bijvoorbeeld zonder beperkingen te gebruiken Get-Process
, kunt u de cmdlet alleen de vereiste parameters laten uitvoeren zoals in Get-Process | Select ProcessName, CPU
.
Wanneer u exchangeOnlineManagement-moduleversie 3.0.0 of hoger gebruikt, kunnen er fouten optreden. U kunt het probleem oplossen door ervoor te zorgen dat u ook expliciet PowerShellGet- en PackageManagement-modules uploadt.
Als u module Az.Accounts importeert met versie 2.12.3 of hoger, moet u ervoor zorgen dat u de Newtonsoft.Json v10-module expliciet importeert als PowerShell 5.1-runbooks afhankelijk zijn van deze versie van de module. De tijdelijke oplossing voor dit probleem is het gebruik van PowerShell 7.2-runbooks.
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
Beperkingen
-
PowerShell 7.1 wordt niet langer ondersteund door het moederproduct PowerShell. We raden u aan om nieuwe runbooks te maken in PowerShell 7.4 voor een langetermijnondersteuning en om de verouderde runbooks bij te werken.
- De interne PowerShell-cmdlets van Azure Automation worden niet ondersteund op een Linux Hybrid Runbook Worker. U moet de module
automationassets
aan het begin van uw PowerShell-runbook importeren om toegang te krijgen tot de functies voor gedeelde resources (assets) van het Automation-account.
- Voor de runtimeversie van PowerShell 7 worden de moduleactiviteiten niet geëxtraheerd voor de geïmporteerde modules.
-
Het parametertype PSCredential-runbook wordt niet ondersteund in de runtimeversie van PowerShell 7.
- PowerShell 7.x biedt geen ondersteuning voor werkstromen. Zie PowerShell Workflow voor meer informatie.
- PowerShell 7.x biedt momenteel geen ondersteuning voor ondertekende runbooks.
- Integratie van versiebeheer biedt geen ondersteuning voor PowerShell 7.1 (preview). Daarnaast worden PowerShell 7.1 (preview)-runbooks in versiebeheer in het Automation-account aangemaakt als Runtime 5.1.
- PowerShell 7.1-modulebeheer wordt niet ondersteund via
Get-AzAutomationModule
-cmdlets.
- Runbook mislukt zonder logboektracering als de invoerwaarde het teken bevat.'
- 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.
Voorbeeldscript
# Get information about module "Microsoft.Graph.Authentication"
$ModuleName = "Microsoft.Graph.Authentication"
$NewPath = "C:\usr\src\PSModules\$ModuleName"
$OldPath = "C:\Modules\User\$ModuleName"
if (Test-Path -Path $NewPath -PathType Container) {
Get-ChildItem -Path $NewPath
} elseif (Test-Path -Path $OldPath -PathType Container) {
Get-ChildItem -Path $OldPath
} else {
Write-Output "Module $ModuleName not present."
}
# Getting the path to the Temp folder, if needed.
$tmp = $env:TEMP
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 met behulp van .\child-runbook.ps1
wordt niet ondersteund in deze preview.
Tijdelijke oplossing: gebruik Start-AutomationRunbook
(interne cmdlet) of Start-AzAutomationRunbook
(van Az.Automation
module) om een ander runbook te starten vanuit het bovenliggende runbook.
Runbookeigenschappen die logboekvoorkeur definiëren, worden niet ondersteund in PowerShell 7-runtime.
Tijdelijke oplossing: Stel de voorkeur expliciet in aan het begin van het runbook als volgt:
$VerbosePreference = "Continue"
$ProgressPreference = "Continue"
Vermijd het importeren van Az.Accounts
module naar versie 2.4.0 voor PowerShell 7 runtime, omdat er onverwacht gedrag kan optreden met behulp van deze versie in Azure Automation.
Mogelijk ondervindt u opmaakproblemen met foutuitvoerstromen voor de taak die wordt uitgevoerd in PowerShell 7 Runtime.
Wanneer u een PowerShell 7.1-module importeert die afhankelijk is van andere modules, is de importknop mogelijk grijs, zelfs wanneer PowerShell 7.1-versie van de afhankelijke module is geïnstalleerd. Bijvoorbeeld, de Az PowerShell-module Compute versie 4.20.0 heeft als vereiste dat Az.Accounts versie >= 2.6.0 is >. Dit probleem treedt op wanneer een equivalente afhankelijke module in PowerShell 5.1 niet voldoet aan de versievereisten. Bijvoorbeeld: versie 5.1 van Az.Accounts was < 2.6.0.
Wanneer u PowerShell 7-runbook start met behulp van de webhook, wordt de invoerparameter van de webhook automatisch geconverteerd naar een ongeldige JSON.
U wordt aangeraden exchangeOnlineManagement-moduleversie 3.0.0 of lager te gebruiken, omdat versie 3.0.0 of hoger kan leiden tot taakfouten.
Als u module Az.Accounts importeert met versie 2.12.3 of hoger, moet u ervoor zorgen dat u de Newtonsoft.Json v10-module expliciet importeert als PowerShell 7.1-runbooks afhankelijk zijn van deze versie van de module. De tijdelijke oplossing voor dit probleem is het gebruik van PowerShell 7.2-runbooks.
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-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.
- Python 3.8 wordt niet meer ondersteund door het bovenliggende product Python. U wordt aangeraden nieuwe runbooks te maken in de ondersteunde versies en de verouderde runbooks bij te werken.
- U moet bekend zijn met Python-scripts.
- Integratie van broncodebeheer wordt niet ondersteund.
- Gebruik voor Python 3.8-modules wielbestanden die gericht zijn op cp38-amd64.
- Als u bibliotheken van derden wilt gebruiken, moet u de pakketten importeren in het Automation-account.
- Het gebruik van de Cmdlet Start-AutomationRunbook in PowerShell/PowerShell Workflow om een Python 3.8-runbook te starten, werkt niet. U kunt de cmdlet Start-AzAutomationRunbook gebruiken vanuit de Az.Automation-module of de cmdlet Start-AzureRmAutomationRunbook vanuit de AzureRm.Automation-module om deze beperking te omzeilen.
- Azure Automation biedt geen ondersteuning voor sys.stderr.
- Het Python AutomationAssets-pakket is niet beschikbaar op pypi.org, dus het is niet beschikbaar voor importeren op een Windows-computer.
-
Python 2.7 wordt niet meer ondersteund door het bovenliggende product Python. U wordt aangeraden nieuwe runbooks te maken in de ondersteunde versies en de verouderde runbooks bij te werken.
- U moet bekend zijn met Python-scripts.
- Gebruik voor Python 2.7.12-modules wheel-bestanden cp27-amd64.
- Als u bibliotheken van derden wilt gebruiken, moet u de pakketten importeren in het Automation-account.
- Azure Automation biedt geen ondersteuning voor sys.stderr.
- Het Python AutomationAssets-pakket is niet beschikbaar op pypi.org, dus het is niet beschikbaar voor importeren op een Windows-computer.
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