AzureRM.Network 0.9 macht Probleme mit Azure Automation
Inhalt
Solltet Ihr Azure Automation nutzen und das Modul AzureRM.Network in einer der Versionen von 0.9.0 bis min. 0.10.0 nutzen, kann es zu Problemen bei der Ausführung von Azure Automation Runbooks kommen.
Sollten die verwendeten Runbooks insgesamt etwas aufwändiger sein, kann es durch diese Version zu hoher Memory Auslastung kommen. Sollten über 400 MB RAM verwendet werden, endet das Runbook nach drei Versuchen im Status “Suspended”.
Fehler
The runbook job was attempted 3 times, but it failed each time. Common reasons that runbook jobs fail can be found here:
https://docs.microsoft.com/en-us/azure/automation/automation-troubleshooting-automation-errors
Ein Downgrade auf Version 6.8.0 ist erforderlich. Am einfachsten natürlich mit PowerShell.
$ModuleName = "AzureRM.Network"
$MaxVersion = "6.8.0"
# Gather information
$AffectedAutomationAccounts = Get-AzureRmAutomationAccount | Get-AzureRmAutomationModule -Name AzureRM.Network | Where-Object {$_.Version -gt $MaxVersion }
# Review
$AffectedAutomationAccounts | Select-Object ResourceGroupName, AutomationAccountName, Name, Version
#region Redeploy
Write-Verbose "Generate RootTemplate.json in `"devopsgallerystorage.blob.core.windows.net`""
$uri = "https://www.powershellgallery.com/packages/$ModuleName/$MaxVersion/DeployItemToAzureAutomation?itemType=PSModule&requireLicenseAcceptance=False"
# This only generates the RootTemplate.json for the specified version. It simulates the Button "Deploy to Azure Automation" on the Gallery
Invoke-WebRequest $uri | Out-Null
# Download JSON
$uri = "https://devopsgallerystorage.blob.core.windows.net/armtemplates/$ModuleName/$MaxVersion/RootTemplate.json"
$templateFileName = ".\RootTemplate.$ModuleName.$ModuleVersion.json"
Invoke-WebRequest -Uri $uri -OutFile $templateFileName | Out-Null
$AffectedAutomationAccounts | ForEach-Object {
$AutomationAccountLocation = Get-AzureRmAutomationAccount -ResourceGroupName $_.ResourceGroupName -Name $_.AutomationAccountName | Select-Object -ExpandProperty Location
$parameters = @{
"Automation Account Name" = $_.AutomationAccountName
"Automation Account Location" = "$AutomationAccountLocation"
"New or existing Automation account" = "Existing"
}
$params = @{
"ResourceGroupName" = $_.ResourceGroupName
"TemplateFile" = $templateFileName
"TemplateParameterObject" = $parameters
"Mode" = 'Incremental'
}
New-AzureRmResourceGroupDeployment @params
}
#endregion