Runbook-kimenet és üzenetek

 

Közzétett: 2016. június

Érvényes: Windows Azure Pack for Windows Server, System Center 2012 R2 Orchestrator

Az automatizálási runbookok minden esetben szolgáltatnak valamilyen kimenetet. Ez lehet például egy hibaüzenet, vagy akár egy összetett objektum, amely egy másik munkafolyamat számára készült. A Windows PowerShell több adatfolyamon keresztül továbbítja a munkafolyamat kimenetét. A Szolgáltatáskezelési automatizálás eltérő módon kezeli ezeket az adatfolyamokat, és érdemes a bevált gyakorlatokat követni ezek egy runbook létrehozása során történő használatakor.

A következő táblázatban megtalálható az egyes adatfolyamok rövid leírása, illetve a kezelési portálon tapasztalható viselkedésük egy közzétett runbook futtatása, illetve egy runbook tesztelése esetén. Az egyes adatfolyamokkal az ezt követő szakaszok foglalkoznak részletesen.

Adatfolyam

Leírás

Közzétett

Teszt

Kimenet

Másik runbookok számára készült objektum.

Szerepel a feladatelőzményekben.

Fel van tüntetve a Tesztkimenet ablaktáblán.

Figyelmeztetés

A felhasználónak szóló figyelmeztető üzenet.

Szerepel a feladatelőzményekben.

Fel van tüntetve a Tesztkimenet ablaktáblán.

Hiba

A felhasználónak szóló hibaüzenet. A runbook alapértelmezés szerint tovább fut egy hibaüzenet megjelenésekor (nem úgy, mint a kivételek esetében).

Szerepel a feladatelőzményekben.

Fel van tüntetve a Tesztkimenet ablaktáblán.

Részletes

Általános vagy hibaelhárítási információkat tartalmazó üzenetek.

Csak akkor szerepel a feladatelőzményekben, ha a runbookban is engedélyezve van a részletes naplózás.

Csak akkor van feltüntetve a Tesztkimenet ablaktáblán, ha a runbook $VerbosePreference beállítása Folytatás értékű.

Állapot

A runbook összes tevékenysége előtt és után automatikusan létrejövő rekordok. Nem célszerű, ha a runbook próbálja létrehozni a saját állapotrekordjait, mivel azok egy interaktív felhasználó számára készülnek.

Csak akkor szerepel a feladatelőzményekben, ha a runbookban is engedélyezve van az állapot naplózása.

Nincs feltüntetve a Tesztkimenet ablaktáblán.

Hibakeresés

Interaktív felhasználó számára készült üzenetek. Nem a runbookok általi használatra készülnek.

Nem szerepel a feladatelőzményekben.

Nincs feltüntetve a Tesztkimenet ablaktáblán.

Kimeneti adatfolyam

A kimeneti adatfolyam a megfelelően működő munkafolyamatok által létrehozott objektumok kimenetéhez használható. A Automatizálás alatt erre az adatfolyamra elsősorban az aktuális runbookot meghívó szülőrunbookok által felhasznált objektumok esetében van szükség. Ha egy beágyazott runbookot hív meg a szülőrunbookból, az a kimeneti adatfolyamból ad át adatokat a szülőnek. A kimeneti adatfolyamot csak abban az esetben érdemes arra használni, hogy általános információkat továbbítson a felhasználónak, ha a runbookot biztosan nem fogja meghívni egy másik runbook. A bevett gyakorlat szerint a Részletes adatfolyam a legalkalmasabb arra, hogy általános információkat továbbítson a felhasználónak.

A kimeneti adatfolyamhoz a Write-Output parancsmaggal lehet adatokat írni, illetve úgy, ha az objektum saját sort kap a runbookban.

#The following lines both write an object to the output stream.
Write-Object –InputObject $object
$object

Függvények kimenete

Ha a runbookban szereplő függvényből ír a kimeneti adatfolyamba, a kimenet visszakerül a runbookhoz. Amennyiben a runbook hozzárendeli azt egy változóhoz, a kimenet nem fog szerepelni a kimeneti adatfolyamban. Ha a függvényen belülről bármely másik adatfolyamba ír, az adatok a runbook megfelelő adatfolyamába fognak kerülni.

Tekintse meg példaként a következő runbookot.

Workflow Test-Runbook
{
   Write-Verbose "Verbose outside of function"
   Write-Output "Output outside of function"
   $functionOutput = Test-Function

   Function Test-Function
   {
      Write-Verbose "Verbose inside of function"
      Write-Output "Output inside of function"
   }
}

A runbook feladatának kimeneti adatfolyama így néz ki:

Output outside of function

A runbook feladatának részletes adatfolyama így néz ki:

Verbose outside of function
Verbose inside of function

A $functionOutput változó értéke a következő:

Output inside of function

A kimeneti adattípus megadása

A munkafolyamat az OutputType attribútummal határozhatja meg a kimenethez használt adattípust. Az attribútum semmit sem befolyásol a futtatás során, de a tervezés során jelzi a runbook szerzőjének, hogy a runbooknak milyen kimenetet kell létrehoznia. Ahogy a runbookok eszközkészlete folyamatosan fejlődik, egyre fontosabbá válik, hogy már a tervezés során ismert legyen az elvárt kimeneti adattípus. Éppen ezért célszerű minden létrehozott runbook esetében megadni az elvárt adattípust.

Az alábbi példában a runbook kimenete egy karakterlánc-objektum, és megadja az elvárt kimenettípust. Amennyiben a runbook kimenete egy bizonyos típusú tömb, akkor is egy típust érdemes megadni, nem pedig a típusok egy tömbjét.

Workflow Test-Runbook
{
   [OutputType([string])]

   $output = "This is some string output."
   Write-Output $output
}

Üzenet-adatfolyamok

A kimeneti adatfolyamokkal ellentétben az üzenet-adatfolyamok kifejezetten a felhasználó felé történő információtovábbítást szolgálják. A különböző információtípusoknak saját üzenet-adatfolyamuk van, és a Automatizálás mindet eltérő módon kezeli.

Figyelmeztető és hibaadatfolyamok

A figyelmeztető és hibaadatfolyamok a runbookban előforduló problémákat naplózzák. Ezek aztán szerepelnek a feladatelőzményekben a runbook végrehajtásakor, és fel lesznek tüntetve a kezelési portál Tesztkimenet ablaktábláján a runbook tesztelésekor. Az alapértelmezett beállítások szerint a runbook végrehajtását nem szakítják meg a figyelmeztető vagy hibaüzenetek. Beállíthatja, hogy a runbook futtatása fel legyen függesztve figyelmeztető vagy hibaüzenet jelentkezésekor. Ehhez a megfelelő preferenciaváltozót kell megadnia a runbookban az üzenet létrehozása előtt. Ha tehát azt szeretné, hogy a runbook végrehajtása ne csak kivételek, hanem hibák jelentkezése esetén is fel legyen függesztve, az $ErrorActionPreference beállítás értéke legyen Leállítás.

Figyelmeztető és hibaüzeneteket a Write-Warning, illetve a Write-Error parancsmaggal hozhat létre. A tevékenységek is írhatnak adatokat ezekbe az adatfolyamokba.

#The following lines create a warning message and then an error message that will suspend the runbook.

$ErrorActionPreference = "Stop"
Write-Warning –Message "This is a warning message."
Write-Error –Message "This is an error message that will stop the runbook because of the preference variable."

Részletes adatfolyam

A részletes üzenet-adatfolyam a runbook-művelettel kapcsolatos általános információkat tartalmazza. Mivel a hibakeresési adatfolyamok nem érhetők el egy runbookban, a hibaelhárítási információkat a részletes üzenetekben kell szerepeltetni. Az alapértelmezett beállítások szerint a közzétett runbookok részletes üzenetei nem szerepelnek a feladatelőzményekben. A részletes üzenetek tárolásához a kezelési portálon a közzétett runbookok Konfigurálás lapján kapcsolja be a Részletes rekordok naplózása beállítást. A legtöbb esetben a jobb teljesítmény érdekében érdemes megtartani az alapértelmezett beállítást, amely nem naplózza a runbook részletes rekordjait. Ezt a beállítást csak akkor érdemes bekapcsolni, ha hibát keres a runbookban, vagy ha hibaelhárításra van szükség.

A $VerbosePreference változó alapértelmezett értéke: FolytatásCsendben. A közzétett runbookok esetében nem kell módosítani a változót a részletes üzenetek tárolásához. Amennyiben egy közzétett runbookban kifejezetten a FolytatásCsendben érték van megadva, a részletes üzenetek akkor sem lesznek tárolva, ha a runbook a részletes rekordok naplózására van beállítva.

A runbook tesztelésekor a részletes üzenetek akkor sem jelennek meg, ha a runbook a részletes rekordok naplózására van beállítva. Ha meg kívánja jeleníteni a részletes üzeneteket a runbook tesztelése során, a $VerbosePreference változónak a Folytatás értéket kell adnia. A változó beállítása után a részletes üzenetek megjelennek a kezelési portál Tesztkimenet ablaktábláján.

Részletes üzenetet a Write-Verbose parancsmaggal hozhat létre.

#The following line creates a verbose message.

Write-Verbose –Message "This is a verbose message."

Hibakeresési adatfolyam

A hibakeresési adatfolyam interaktív felhasználóknak szól, és nem runbookok általi használatra készült.

Állapotrekordok

Ha beállítja, hogy a runbook naplózza az állapotrekordokat (ezt a kezelési portálon, a runbook Konfigurálás lapján teheti meg), a tevékenység futtatása előtt és után is egy rekord fog szerepelni a feladatelőzményekben. A legtöbb esetben a jobb teljesítmény érdekében érdemes megtartani az alapértelmezett beállítást, amely nem naplózza a runbook állapotrekordjait. Ezt a beállítást csak akkor érdemes bekapcsolni, ha hibát keres a runbookban, vagy ha hibaelhárításra van szükség. A runbook tesztelésekor az állapotüzenetek akkor sem jelennek meg, ha a runbook az állapotrekordok naplózására van beállítva.

A Write-Progress parancsmag nem használható runbookokban, mivel interaktív felhasználót feltételez.

Preferenciaváltozók

A Windows PowerShell preferenciaváltozókkal határozza meg, hogy miként kell reagálnia a különböző kimeneti adatfolyamokba küldött adatokra. A runbookban ezeket a változókat beállítva határozhatja meg, hogy az miként reagáljon a különböző adatfolyamokba küldött adatokra.

Az alábbi táblázat felsorolja a runbookokban használható preferenciaváltozókat, valamint azok érvényes és alapértelmezett értékeit. Fontos: A táblázat kizárólag a runbookokban érvényes értékeket ismerteti. A preferenciaváltozók más érvényes értéket is felvehetnek a Windows PowerShellben, a Szolgáltatáskezelési automatizálás keretein kívül.

Változó

Alapértelmezett érték

Érvényes értékek

WarningPreference

Folytatás

Leállítás
Folytatás
FolytatásCsendben

ErrorActionPreference

Folytatás

Leállítás
Folytatás
FolytatásCsendben

VerbosePreference

FolytatásCsendben

Leállítás
Folytatás
FolytatásCsendben

A következő táblázat a preferenciaváltozók runbookokban érvényes értékei esetén várható viselkedést írja le.

Érték

Viselkedés

Folytatás

Naplózza az üzenetet, és folytatja a runbook futtatását.

FolytatásCsendben

Az üzenet naplózása nélkül folytatja a runbook futtatását. Ez gyakorlatilag az üzenet mellőzését jelenti.

Leállítás

Naplózza az üzenetet, és felfüggeszti a runbook futtatását.

Runbook-kimenet és üzenetek lekérése

Kezelési portál

A runbook-feladatok részleteit a kezelési portálon, a runbook Feladatok lapján tekintheti meg. A feladat Összegzésében megtekinthetők a bemeneti paraméterek, a Kimeneti adatfolyam, valamint a feladattal kapcsolatos általános információk, és a kivételek (ha sor került ilyenre). Az Előzményekben megtalálhatók a kimeneti adatfolyamból származó üzenetek és a Figyelmeztető és hibaadatfolyamok, valamint a Részletes adatfolyam és a Állapotrekordok, amennyiben a runbook naplózza a részletes és állapotrekordokat.

Windows PowerShell

A Windows PowerShellben a runbookok kimenetét és üzeneteit a Get-SmaJobOutput parancsmaggal lehet lekérdezni. A parancsmag számára meg kell adni a feladat azonosítóját, valamint a Stream paramétert, amely meghatározza, hogy melyik adatfolyamot adja majd vissza. A Bármely értéket megadva a feladathoz tartozó összes adatfolyamot visszaadja a művelet.

A következő példában elindul a runbook, majd a rendszer megvárja, amíg annak végrehajtása befejeződik. Ezt követően begyűjti a kimeneti adatfolyamot a feladatból.

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$job = Start-SmaRunbook –WebServiceEndpoint $webServer –Port $port –Name $runbookName

$doLoop = $true
While ($doLoop) {
   $job = Get-SmaJob –WebServiceEndpoint $webServer –Port $port -Id $job.Id
   $status = $job.Status
   $doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped") 
}

Get-SmaJobOutput –WebServiceEndpoint $webServer –Port $port -Id $job.Id –Stream Output