Runbookok kezelése az Azure Automationben
Runbookot az Azure Automationbe úgy vehet fel, hogy létrehoz egy újat, vagy importál egy meglévőt egy fájlból vagy a Runbook-katalógusból. Ez a cikk a runbookok kezelésével kapcsolatos információkat, valamint a runbookok tervezésével kapcsolatos ajánlott mintákat és ajánlott eljárásokat ismerteti. A közösségi runbookok és modulok elérésének minden részletét megtalálja a Runbookban , valamint az Azure Automation modultáraiban.
Runbook létrehozása
Hozzon létre egy új runbookot az Azure Automationben az Azure Portal vagy a PowerShell használatával. A runbook létrehozása után a következő információk segítségével szerkesztheti:
- Szöveges runbook szerkesztése az Azure Automationben
- Az Automation-runbookok PowerShell-munkafolyamatának legfontosabb fogalmai
- Python 2-csomagok kezelése az Azure Automationben
- Python 3-csomagok (előzetes verzió) kezelése az Azure Automationben
Runbook létrehozása az Azure Portalon
- Jelentkezzen be az Azure Portalra.
- Keresse meg és jelölje ki az Automation-fiókok elemet.
- Az Automation-fiókok oldalon válassza ki az Automation-fiókját.
- Az Automation-fiókban válassza a Runbookok lehetőséget a Folyamatautomatizálás területen a runbookok listájának megnyitásához.
- Kattintson a Runbook létrehozása elemre.
- A forgatókönyv létrehozásához kattintson a Létrehozás gombra.
Runbook létrehozása a PowerShell-lel
Üres runbook létrehozásához használja a New-AzAutomationRunbook parancsmagot. A paraméter használatával Type
adja meg az egyik runbooktípust, amely a következőhöz van definiálva New-AzAutomationRunbook
: .
Az alábbi példa bemutatja, hogyan hozhat létre új üres runbookot.
$params = @{
AutomationAccountName = 'MyAutomationAccount'
Name = 'NewRunbook'
ResourceGroupName = 'MyResourceGroup'
Type = 'PowerShell'
}
New-AzAutomationRunbook @params
Runbook importálása
Saját forgatókönyv létrehozásához importálhat PowerShell- vagy PowerShell-munkafolyamatot (.ps1), grafikus runbookot (.graphrunbook), illetve Python 2- vagy Python 3-szkriptet (.py). Az importálás során létrehozott runbook típusát az alábbi szempontok figyelembevételével adhatja meg.
Importálhat egy .ps1 fájlt, amely nem tartalmaz munkafolyamatot PowerShell-runbookba vagy PowerShell-munkafolyamat-runbookba. Ha egy PowerShell-munkafolyamat-runbookba importálja, a rendszer munkafolyamattá alakítja. Ebben az esetben a runbook megjegyzéseket tartalmaz a végrehajtott módosítások leírásához.
PowerShell-munkafolyamatot tartalmazó .ps1 fájlt csak PowerShell-munkafolyamat-runbookba importálhat. Ha a fájl több PowerShell-munkafolyamatot tartalmaz, az importálás sikertelen lesz. Minden munkafolyamatot saját fájlba kell mentenie, és külön kell importálnia őket.
PowerShell-munkafolyamatot tartalmazó .ps1 fájlt ne importáljon PowerShell-runbookba, mert a PowerShell-szkriptmotor nem ismeri fel.
Csak .graphrunbook-fájlt importálhat egy új grafikus runbookba.
Runbook importálása az Azure Portalról
Az alábbi eljárással importálhat szkriptfájlokat az Azure Automationbe.
Feljegyzés
A portálon csak .ps1 fájlt importálhat PowerShell-munkafolyamat-runbookba.
- Az Azure Portalon keresse meg az Automation-fiókok lehetőséget, és válassza ki.
- Az Automation-fiókok oldalon válassza ki az Automation-fiókját.
- Az Automation-fiókban válassza a Runbookok lehetőséget a Folyamatautomatizálás területen a runbookok listájának megnyitásához.
- Kattintson a Runbook importálása gombra. Az alábbi lehetőségek közül választhat:
- Keresse meg a fájlt – kiválaszt egy fájlt a helyi gépről.
- Tallózás a katalógusból – Tallózhat, és kiválaszthat egy meglévő runbookot a katalógusból.
- Válassza ki a fájlt.
- Ha a Név mező engedélyezve van, módosíthatja a runbook nevét. A névnek betűvel kell kezdődnie, és tartalmazhat betűket, számokat, aláhúzásjeleket és kötőjeleket.
- A Runbook típusa automatikusan fel lesz töltve, de a típust a vonatkozó korlátozások figyelembe vétele után módosíthatja.
- A futtatókörnyezet verziója automatikusan ki van töltve, vagy válassza ki a verziót a legördülő listából.
- Kattintson az Importálás elemre. Az új runbook megjelenik az Automation-fiók runbookjainak listájában.
- A futtatás előtt közzé kell tennie a runbookot .
Feljegyzés
Miután importált egy grafikus runbookot, átalakíthatja egy másik típusra. A grafikus runbookokat azonban nem konvertálhatja szöveges runbookmá.
Runbook importálása a PowerShell-lel
Az Import-AzAutomationRunbook parancsmaggal szkriptfájlt importálhat piszkozat runbookként. Ha a runbook már létezik, az importálás meghiúsul, hacsak nem használja a Force
paramétert a parancsmaggal.
Az alábbi példa bemutatja, hogyan importálhat szkriptfájlt egy runbookba.
$params = @{
AutomationAccountName = 'MyAutomationAccount'
Name = 'Sample_TestRunbook'
ResourceGroupName = 'MyResourceGroup'
Type = 'PowerShell'
Path = 'C:\Runbooks\Sample_TestRunbook.ps1'
}
Import-AzAutomationRunbook @params
Erőforrások kezelése
Ha a runbook létrehoz egy erőforrást, a szkriptnek ellenőriznie kell, hogy az erőforrás már létezik-e a létrehozási kísérlet előtt. Íme egy egyszerű példa.
$vmName = 'WindowsVM1'
$rgName = 'MyResourceGroup'
$myCred = Get-AutomationPSCredential 'MyCredential'
$vmExists = Get-AzResource -Name $vmName -ResourceGroupName $rgName
if (-not $vmExists) {
Write-Output "VM $vmName does not exist, creating"
New-AzVM -Name $vmName -ResourceGroupName $rgName -Credential $myCred
} else {
Write-Output "VM $vmName already exists, skipping"
}
Részletek lekérése a tevékenységnaplóból
Az Automation-fiók tevékenységnaplójából lekérheti a runbook részleteit, például azt a személyt vagy fiókot, aki elindította a runbookot. Az alábbi PowerShell-példa a megadott runbook futtatásához az utolsó felhasználót biztosítja.
$rgName = 'MyResourceGroup'
$accountName = 'MyAutomationAccount'
$runbookName = 'MyRunbook'
$startTime = (Get-Date).AddDays(-1)
$params = @{
ResourceGroupName = $rgName
StartTime = $startTime
}
$JobActivityLogs = (Get-AzLog @params).Where( { $_.Authorization.Action -eq 'Microsoft.Automation/automationAccounts/jobs/write' })
$JobInfo = @{}
foreach ($log in $JobActivityLogs) {
# Get job resource
$JobResource = Get-AzResource -ResourceId $log.ResourceId
if ($null -eq $JobInfo[$log.SubmissionTimestamp] -and $JobResource.Properties.Runbook.Name -eq $runbookName) {
# Get runbook
$jobParams = @{
ResourceGroupName = $rgName
AutomationAccountName = $accountName
Id = $JobResource.Properties.JobId
}
$Runbook = Get-AzAutomationJob @jobParams | Where-Object RunbookName -EQ $runbookName
# Add job information to hashtable
$JobInfo.Add($log.SubmissionTimestamp, @($Runbook.RunbookName, $Log.Caller, $JobResource.Properties.jobId))
}
}
$JobInfo.GetEnumerator() | Sort-Object Key -Descending | Select-Object -First 1
Követés állapota
Célszerű a runbookokat moduláris természetűnek létrehozni, olyan logikával, amely könnyen újra felhasználható és újraindulhat. A runbookok előrehaladásának nyomon követése biztosítja, hogy a runbook logikája megfelelően fusson, ha problémák merülnek fel.
A runbookok előrehaladását külső forrás, például tárfiók, adatbázis vagy megosztott fájlok használatával követheti nyomon. Hozzon létre logikát a runbookban az utolsó végrehajtott művelet állapotának ellenőrzéséhez. Ezután az ellenőrzés eredményei alapján a logika kihagyhat vagy folytathat bizonyos feladatokat a runbookban.
Egyidejű feladatok megakadályozása
Egyes runbookok furcsán viselkednek, ha egyszerre több feladaton futnak. Ebben az esetben fontos, hogy egy runbook logikát implementáljon annak megállapításához, hogy van-e már futó feladat. Íme egy egyszerű példa.
# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process
# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext
# Check for already running or new runbooks
$runbookName = "runbookName"
$resourceGroupName = "resourceGroupName"
$automationAccountName = "automationAccountName"
$jobs = Get-AzAutomationJob -ResourceGroupName $resourceGroupName -AutomationAccountName $automationAccountName -RunbookName $runbookName -DefaultProfile $AzureContext
# Ranking all the active jobs
$activeJobs = $jobs | where {$_.status -eq 'Running' -or $_.status -eq 'Queued' -or $_.status -eq 'New' -or $_.status -eq 'Activating' -or $_.status -eq 'Resuming'} | Sort-Object -Property CreationTime
$jobRanking = @()
$rank = 0
ForEach($activeJob in $activeJobs)
{
$rank = $rank + 1
$activeJob | Add-Member -MemberType NoteProperty -Name jobRanking -Value $rank -Force
$jobRanking += $activeJob
}
$AutomationJobId = $PSPrivateMetadata.JobId.Guid
$currentJob = $activeJobs | where {$_.JobId -eq $AutomationJobId}
$currentJobRank = $currentJob.jobRanking
# Only allow the Job with Rank = 1 to start processing.
If($currentJobRank -ne "1")
{
Write-Output "$(Get-Date -Format yyyy-MM-dd-hh-mm-ss.ffff) Concurrency check failed as Current Job Ranking is not 1 but $($currentJobRank) therefore exiting..."
Exit
} Else
{
Write-Output "$(Get-Date -Format yyyy-MM-dd-hh-mm-ss.ffff) Concurrency check passed. Start processing.."
}
Ha azt szeretné, hogy a runbook a rendszer által hozzárendelt felügyelt identitással fusson, hagyja meg a kódot. Ha inkább felhasználó által hozzárendelt felügyelt identitást szeretne használni, akkor:
- Az 5. sorból távolítsa el
$AzureContext = (Connect-AzAccount -Identity).context
a - Cserélje le a
$AzureContext = (Connect-AzAccount -Identity -AccountId <ClientId>).context
- Adja meg az ügyfél azonosítóját.
Feljegyzés
PowerShell 7.2 hibrid feladatok esetén végezze el a módosításokat a 28. sorban. Cserélje le a $PSPrivateMetadata.JobId.Guid
elemet a $env:PSPrivateMetaData
kérdésre.
Időfüggő szkriptek átmeneti hibáinak kezelése
A runbookoknak robusztusnak kell lenniük, és képeseknek kell lenniük a hibák kezelésére, beleértve az átmeneti hibákat is, amelyek újraindítást vagy sikertelen működést okozhatnak. Ha egy runbook meghibásodik, az Azure Automation újrapróbálkozza.
Ha a runbook általában egy időkorláton belül fut, használja a szkript implementálási logikáját a végrehajtási idő ellenőrzéséhez. Ez az ellenőrzés csak bizonyos időszakokban biztosítja az olyan műveletek futtatását, mint az indítás, a leállítás vagy a vertikális felskálázás.
Feljegyzés
Az Azure-tesztkörnyezeti folyamat helyi ideje UTC értékre van állítva. A runbookok dátum- és időszámításainak figyelembe kell venniük ezt a tényt.
Újrapróbálkozási logika a runbookban az átmeneti hibák elkerülése érdekében
A runbookok gyakran kezdeményeznek hívásokat távoli rendszerekbe, például az Azure-ba ARM-en, Azure Resource Graphon, SQL-szolgáltatásokon és egyéb webszolgáltatásokon keresztül. Ha a runbookok által hívott rendszer foglalt, ideiglenesen nem érhető el, vagy terhelés alatt szabályozza a rendszert, a hívások futásidejű hibák esetén sebezhetőek lesznek. A runbookok rugalmasságának kialakításához újrapróbálkozási logikát kell alkalmazni a hívások indításakor, hogy a runbookok hiba nélkül tudják kezelni az átmeneti problémákat.
További információ: Újrapróbálkozási minta és általános REST és újrapróbálkozási irányelvek.
1. példa: Ha a runbook csak egy vagy két hívást indít
$searchServiceURL = "https://$searchServiceName.search.windows.net"
$resource = Get-AzureRmResource -ResourceType "Microsoft.Search/searchServices" -ResourceGroupName $searchResourceGroupName -ResourceName $searchServiceName -ApiVersion 2015-08-19
$searchAPIKey = (Invoke-AzureRmResourceAction -Action listAdminKeys -ResourceId $resource.ResourceId -ApiVersion 2015-08-19 -Force).PrimaryKey
Híváskor Invoke-AzureRmResourceAction
átmeneti hibákat tapasztalhat. Ilyen esetben javasoljuk, hogy a következő alapszintű mintát alkalmazza a parancsmag hívása körül.
$searchServiceURL = "https://$searchServiceName.search.windows.net"
$resource = Get-AzureRmResource -ResourceType "Microsoft.Search/searchServices" -ResourceGroupName $searchResourceGroupName -ResourceName $searchServiceName -ApiVersion 2015-08-19
# Adding in a retry
$Stoploop = $false
$Retrycount = 0
do {
try {
$searchAPIKey = (Invoke-AzureRmResourceAction -Action listAdminKeys -ResourceId $resource.ResourceId -ApiVersion 2015-08-19 -Force).PrimaryKey
write-verbose "Invoke-AzureRmResourceAction on $resource.ResourceId completed"
$Stoploop = $true
}
catch {
if ($Retrycount -gt 3)
{
Write-verbose "Could not Invoke-AzureRmResourceAction on $resource.ResourceId after 3 retrys."
$Stoploop = $true
}
else
{
Write-verbose "Could not Invoke-AzureRmResourceAction on $resource.ResourceId retrying in 30 seconds..."
Start-Sleep -Seconds 30
$Retrycount = $Retrycount + 1
}
}
}
While ($Stoploop -eq $false)
Feljegyzés
A hívás újrapróbálkozási kísérlete legfeljebb háromszor, minden alkalommal 30 másodpercig alvó állapotban van.
2. példa: Ha a runbook gyakran végez távoli hívásokat
Ha a runbook gyakran végez távoli hívásokat, átmeneti futásidejű problémákat tapasztalhat. Hozzon létre egy függvényt, amely újrapróbálkozási logikát implementál minden egyes végrehajtott híváshoz, és a kezdeményezendő hívást egy végrehajtandó szkriptblokként adja át.
Function ResilientRemoteCall {
param(
$scriptblock
)
$Stoploop = $false
$Retrycount = 0
do {
try {
Invoke-Command -scriptblock $scriptblock
write-verbose "Invoked $scriptblock completed"
$Stoploop = $true
}
catch {
if ($Retrycount -gt 3)
{
Write-verbose "Invoked $scriptblock failed 3 times and we will not try again."
$Stoploop = $true
}
else
{
Write-verbose "Invoked $scriptblock failed retrying in 30 seconds..."
Start-Sleep -Seconds 30
$Retrycount = $Retrycount + 1
}
}
}
While ($Stoploop -eq $false)
}
Ezután minden távoli hívást átadhat a függvénynek a következő módon:
ResilientRemoteCall { Get-AzVm }
vagy
ResilientRemoteCall { $searchAPIKey = (Invoke-AzureRmResourceAction -Action listAdminKeys -ResourceId $resource.ResourceId -ApiVersion 2015-08-19 -Force).PrimaryKey}
Több előfizetés használata
A runbooknak képesnek kell lennie az előfizetések használatára. Több előfizetés kezeléséhez például a runbook a Disable-AzContextAutosave parancsmagot használja. Ez a parancsmag biztosítja, hogy a hitelesítési környezet ne kérhető le egy másik runbookból, amely ugyanabban a tesztkörnyezetben fut.
# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process
# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
-DefaultProfile $AzureContext
$childRunbookName = 'childRunbookDemo'
$resourceGroupName = "resourceGroupName"
$automationAccountName = "automationAccountName"
$startParams = @{
ResourceGroupName = $resourceGroupName
AutomationAccountName = $automationAccountName
Name = $childRunbookName
DefaultProfile = $AzureContext
}
Start-AzAutomationRunbook @startParams
Ha azt szeretné, hogy a runbook a rendszer által hozzárendelt felügyelt identitással fusson, hagyja meg a kódot. Ha inkább felhasználó által hozzárendelt felügyelt identitást szeretne használni, akkor:
- Az 5. sorból távolítsa el
$AzureContext = (Connect-AzAccount -Identity).context
a - Cserélje le a
$AzureContext = (Connect-AzAccount -Identity -AccountId <ClientId>).context
- Adja meg az ügyfél azonosítóját.
Egyéni szkriptek futtatása
Feljegyzés
Általában nem futtathat egyéni szkripteket és runbookokat a gazdagépen, ha telepítve van egy Log Analytics-ügynök.
Egyéni szkript használata:
- Hozzon létre egy Automation-fiókot.
- Telepítse a hibrid runbook-feldolgozó szerepkört.
- Ha Linux rendszerű gépen van szükség emelt szintű jogosultságokra. Jelentkezzen be az aláírás-ellenőrzések kikapcsolásához.
Runbook tesztelése
Runbook tesztelésekor a rendszer végrehajtja a piszkozatverziót , és az általa végrehajtott műveletek befejeződnek. A rendszer nem hoz létre feladatelőzményeket, de a kimenet, a figyelmeztetés és a hibastreamek megjelennek a Tesztkimenet panelen. A részletes adatfolyamnak küldött üzenetek csak akkor jelennek meg a Kimenet panelen, ha a VerbosePreference változó értéke Continue
.
Annak ellenére, hogy a Piszkozat verzió futtatása folyamatban van, a runbook továbbra is a szokásos módon hajtja végre a műveletet a környezetben lévő erőforrásokon. Ezért csak nem éles erőforrásokon tesztelje a runbookokat.
Feljegyzés
Az összes runbook-végrehajtási művelet az Automation-fiók Tevékenységnaplójában van naplózva egy Azure Automation-feladat létrehozása műveletnévvel. A runbook-végrehajtás azonban egy tesztpanelen, ahol a runbook piszkozatverziója fut, a tevékenységnaplókban egy Azure Automation-runbook piszkozat írása műveletnévvel lesz naplózva. Válassza a Művelet és a JSON fület a hatókör .végződésű megjelenítéséhez. /runbooks/(runbook name)/draft/testjob.
Az egyes runbook-típusok tesztelésének eljárása ugyanaz. Az Azure Portalon nincs különbség a szöveges szerkesztő és a grafikus szerkesztő közötti tesztelésben.
- Nyissa meg a runbook Piszkozat verzióját a szövegszerkesztőben vagy a grafikus szerkesztőben.
- Kattintson a Teszt gombra a Teszt lap megnyitásához.
- Ha a runbook rendelkezik paraméterekkel, azok a bal oldali panelen jelennek meg, ahol megadhatja a teszthez használandó értékeket.
- Ha hibrid runbook-feldolgozón szeretné futtatni a tesztet, módosítsa a futtatási beállításokat hibrid feldolgozóra, és válassza ki a célcsoport nevét. Ellenkező esetben tartsa meg az alapértelmezett Azure-t a teszt felhőben való futtatásához.
- Kattintson a Start gombra a teszt megkezdéséhez.
- A Kimenet panel gombjaival leállíthat vagy felfüggeszthet egy PowerShell-munkafolyamatot vagy grafikus runbookot a tesztelés alatt. Ha felfüggeszti a runbookot, a runbook a felfüggesztés előtt befejezi az aktuális tevékenységet. A runbook felfüggesztése után leállíthatja vagy újraindíthatja.
- Vizsgálja meg a runbook kimenetét a Kimenet panelen.
Forgatókönyv közzététele
Új runbook létrehozásakor vagy importálásakor közzé kell azt tennie, mielőtt futtathatná. Az Azure Automation minden runbookja piszkozatverzióval és közzétett verzióval rendelkezik. Csak a közzétett verzió futtatható, és csak a vázlatverzió szerkeszthető. A közzétett verzióra nincsenek hatással a vázlatverzióban végrehajtott módosítások. Amikor elérhetővé kell tenni a Piszkozat verziót, közzé kell tennie azt, felülírva az aktuális közzétett verziót a Piszkozat verzióval.
Runbook közzététele az Azure Portalon
- Az Azure Portalon keresse meg az Automation-fiókok lehetőséget, és válassza ki.
- Az Automation-fiókok oldalon válassza ki az Automation-fiókját.
- Nyissa meg a runbookot az Automation-fiókjában.
- Kattintson a Szerkesztés gombra.
- Kattintson a Közzététel gombra, majd válassza az Igen lehetőséget az ellenőrző üzenetre válaszul.
Runbook közzététele a PowerShell használatával
A Runbook közzétételéhez használja a Publish-AzAutomationRunbook parancsmagot.
$accountName = "MyAutomationAccount"
$runbookName = "Sample_TestRunbook"
$rgName = "MyResourceGroup"
$publishParams = @{
AutomationAccountName = $accountName
ResourceGroupName = $rgName
Name = $runbookName
}
Publish-AzAutomationRunbook @publishParams
Runbook ütemezése az Azure Portalon
A runbook közzététele után ütemezheti a művelethez:
- Az Azure Portalon keresse meg az Automation-fiókok lehetőséget, és válassza ki.
- Az Automation-fiókok oldalon válassza ki az Automation-fiókját.
- Válassza ki a runbookot a runbookok listájából.
- Válassza az Ütemezések lehetőséget az Erőforrások területen.
- Válassza az Ütemezés hozzáadása lehetőséget.
- A Runbook ütemezése panelen válassza az Ütemezés csatolása a runbookhoz lehetőséget.
- Válassza az Új ütemezés létrehozása lehetőséget az Ütemezés panelen.
- Adjon meg egy nevet, leírást és egyéb paramétereket az Új ütemezés panelen.
- Az ütemezés létrehozása után jelölje ki, és kattintson az OK gombra. Most már hozzá kell kapcsolni a runbookhoz.
- Keressen egy e-mailt a postaládájában, amely értesíti Önt a runbook állapotáról.
Törölt runbook visszaállítása
A törölt runbookokat PowerShell-szkriptekkel állíthatja helyre. Runbook helyreállításához győződjön meg arról, hogy a következő feltételek teljesülnek:
- A visszaállítandó runbookokat az elmúlt 29 napban törölték.
- A runbook Automation-fiókja létezik.
- Az Automation-közreműködő szerepkör engedélyét az Automation-fiók rendszer által hozzárendelt felügyelt identitása kapja meg.
PowerShell-szkript
- Futtassa a PowerShell-szkriptet feladatként az Automation-fiókban a törölt runbookok visszaállításához.
- Töltse le a PowerShell-szkriptet a GitHubról. Másik lehetőségként importálhatja a Restore Automation runbook nevű PowerShell-szkriptet a Runbook-katalógusból. Adja meg a visszaállítani kívánt runbook nevét, és futtassa feladatként az Azure Automationben a törölt runbookok visszaállításához.
- Töltse le a szkriptet a GitHubról, vagy importálja a List Deleted Automation Runbook nevű PowerShell-szkriptet a RunbookTárból az elmúlt 29 napban törölt runbookok nevének azonosításához.
Feladatállapotok lekérése
Állapotok megtekintése az Azure Portalon
Az Azure Automation feladatkezelésének részleteit a Feladatok területen találja. Ha készen áll a runbook-feladatok megtekintésére, használja az Azure Portalt, és lépjen az Automation-fiókjához. A jobb oldalon megtekintheti a feladatstatisztikákban szereplő összes runbook-feladat összegzését.
Az összegzés az egyes végrehajtott feladatok feladatállapotának számát és grafikus ábrázolását jeleníti meg.
A csempére kattintva megjelenik a Feladatok lap, amely tartalmazza az összes végrehajtott feladat összesített listáját. Ez a lap az egyes feladatok állapotát, runbooknevét, kezdési idejét és befejezési idejét jeleníti meg.
A feladatok listájának szűréséhez válassza a Feladatok szűrése lehetőséget. Szűrjön egy adott runbookra, feladat állapotára vagy a legördülő listából választott lehetőségre, és adja meg a keresés időtartományát.
Másik lehetőségként megtekintheti egy adott runbook feladatösszegző adatait úgy is, hogy kiválasztja a runbookot az Automation-fiók Runbookok lapján, majd kiválasztja a Feladatokat. Ez a művelet a Feladatok lapot jeleníti meg. Itt a feladatrekordra kattintva megtekintheti annak részleteit és kimenetét.
Feladatállapotok lekérése a PowerShell használatával
A Get-AzAutomationJob parancsmaggal lekérheti a runbookhoz létrehozott feladatokat és egy adott feladat részleteit. Ha egy runbookot a használatával Start-AzAutomationRunbook
indít el, az visszaadja az eredményül kapott feladatot. A Feladat kimenetének lekéréséhez használja a Get-AzAutomationJobOutput parancsot.
Az alábbi példa lekéri egy minta runbook utolsó feladatát, és megjeleníti annak állapotát, a runbook paramétereihez megadott értékeket és a feladat kimenetét.
$getJobParams = @{
AutomationAccountName = 'MyAutomationAccount'
ResourceGroupName = 'MyResourceGroup'
Runbookname = 'Test-Runbook'
}
$job = (Get-AzAutomationJob @getJobParams | Sort-Object LastModifiedDate -Desc)[0]
$job | Select-Object JobId, Status, JobParameters
$getOutputParams = @{
AutomationAccountName = 'MyAutomationAccount'
ResourceGroupName = 'MyResourceGroup'
Id = $job.JobId
Stream = 'Output'
}
Get-AzAutomationJobOutput @getOutputParams
Az alábbi példa egy adott feladat kimenetét kéri le, és minden rekordot visszaad. Ha az egyik rekord kivételt képez, a szkript az érték helyett a kivételt írja. Ez a viselkedés hasznos, mivel a kivételek olyan további információkat adhatnak meg, amelyek nem feltétlenül naplózhatók a kimenet során.
$params = @{
AutomationAccountName = 'MyAutomationAccount'
ResourceGroupName = 'MyResourceGroup'
Stream = 'Any'
}
$output = Get-AzAutomationJobOutput @params
foreach ($item in $output) {
$jobOutParams = @{
AutomationAccountName = 'MyAutomationAccount'
ResourceGroupName = 'MyResourceGroup'
Id = $item.StreamRecordId
}
$fullRecord = Get-AzAutomationJobOutputRecord @jobOutParams
if ($fullRecord.Type -eq 'Error') {
$fullRecord.Value.Exception
} else {
$fullRecord.Value
}
}
Következő lépések
- Minta lekérdezésekért tekintse meg a feladatnaplók és a feladatstreamek minta lekérdezéseit
- A runbookok kezelésének részleteit az Azure Automation runbook-végrehajtásával foglalkozó témakörben találja.
- PowerShell-runbookok előkészítéséhez lásd : Szöveges runbookok szerkesztése az Azure Automationben.
- A runbook végrehajtásával kapcsolatos problémák elhárításához tekintse meg a runbookokkal kapcsolatos problémák hibaelhárítását.