Megosztás a következőn keresztül:


Runbook kimenetének és üzenetstreamjeinek konfigurálása

A legtöbb Azure Automation-runbook valamilyen kimenettel rendelkezik. Ez a kimenet lehet egy hibaüzenet a felhasználónak, vagy egy összetett objektum, amelyet egy másik runbookhoz kíván használni. A Windows PowerShell több streamet biztosít a kimenet parancsfájlból vagy munkafolyamatból való küldéséhez. Az Azure Automation az egyes streamekkel eltérően működik. Runbook létrehozásakor ajánlott eljárásokat kell követnie a streamek használatához.

Az alábbi táblázat röviden ismerteti az egyes streamek viselkedését az Azure Portalon közzétett runbookok esetében és egy runbook tesztelése során. A kimeneti stream a runbookok közötti kommunikáció fő adatfolyama. A többi stream üzenetstreamekként van besorolva, amelyek a felhasználóval való információátadásra szolgálnak.

Stream Leírás Közzétett Teszt
Hiba A felhasználónak szánt hibaüzenet. Kivételtől eltérően a runbook alapértelmezés szerint egy hibaüzenet után is folytatódik. Feladatelőzményekbe írva Megjelenik a Tesztkimenet panelen
Hibakeresés Interaktív felhasználónak szánt üzenetek. Runbookokban nem használható. Nincs megírva a feladatelőzményekbe Nem jelenik meg a Tesztkimenet panelen
Hozam Más runbookok által használni kívánt objektumok. Feladatelőzményekbe írva Megjelenik a Tesztkimenet panelen
Előrehaladás A runbook minden egyes tevékenysége előtt és után automatikusan létrehozott rekordok. A runbooknak nem szabad saját folyamatrekordokat létrehoznia, mivel interaktív felhasználónak szánták őket. Csak akkor írható a feladatelőzményekbe, ha a runbook állapotnaplózása be van kapcsolva Nem jelenik meg a Tesztkimenet panelen
Részletezés Általános vagy hibakeresési információkat tartalmazó üzenetek. Csak akkor írható a feladatelőzményekbe, ha a részletes naplózás be van kapcsolva a runbookhoz Csak akkor jelenik meg a Tesztkimenet panelen, ha VerbosePreference a változó a Continue (Folytatás) értékre van állítva a runbookban
Figyelmeztetés A felhasználónak szánt figyelmeztető üzenet. Feladatelőzményekbe írva Megjelenik a Tesztkimenet panelen

A kimeneti stream használata

A kimeneti adatfolyam a szkript vagy munkafolyamat által létrehozott objektumok kimenetére szolgál, amikor az megfelelően fut. Az Azure Automation elsősorban ezt a streamet használja az aktuális runbookot meghívó szülő runbookok által felhasznált objektumokhoz. Amikor egy szülő beágyazott runbookot hív meg, a gyermek adatokat ad vissza a kimeneti adatfolyamból a szülőnek.

A runbook a kimeneti stream használatával csak akkor küld általános információkat az ügyfélnek, ha egy másik runbook soha nem hívja meg. Ajánlott eljárás azonban, hogy a runbookoknak általában a részletes streamet kell használniuk, hogy általános információkat közöljenek a felhasználóval.

A runbook írási adatait a kimeneti adatfolyamba írja a Write-Output használatával. Azt is megteheti, hogy az objektumot a saját sorába helyezi a szkriptben.

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

Függvény kimenetének kezelése

Amikor egy runbookfüggvény ír a kimeneti streambe, a kimenet vissza lesz adva a runbooknak. Ha a runbook ezt a kimenetet egy változóhoz rendeli, a kimenet nem a kimeneti adatfolyamba lesz írva. A függvényen belüli bármely más streambe való írás a runbook megfelelő streamjéhez ír. Tekintse meg az alábbi PowerShell-munkafolyamat-forgatókönyvet.

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

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

A runbook-feladat kimeneti streamje a következő:

Output inside of function
Output outside of function

A runbook-feladat részletes streamje a következő:

Verbose outside of function
Verbose inside of function

Miután közzétette a runbookot, és mielőtt elkezdené, a részletes naplózást is be kell kapcsolnia a runbook beállításai között a részletes stream kimenetének lekéréséhez.

Kimeneti adattípus deklarálása

Az alábbi példák a kimeneti adattípusokra mutatnak be példákat:

  • System.String
  • System.Int32
  • System.Collections.Hashtable
  • Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine

Kimeneti adattípus deklarálása munkafolyamatban

A munkafolyamat a kimenet adattípusát adja meg az OutputType attribútummal. Ez az attribútum futásidőben nincs hatással, de a runbook várható kimenetének tervezési idején jelzi. A runbookokhoz készült eszközkészlet folyamatosan fejlődik, a kimeneti adattípusok tervezéskor történő deklarálásának fontossága nő. Ezért ajánlott ezt a deklarációt minden létrehozott runbookba belefoglalni.

Az alábbi minta runbook egy sztringobjektumot ad ki, és tartalmaz egy deklarációt a kimenet típusáról. Ha a runbook egy bizonyos típusú tömböt ad ki, akkor is meg kell adnia a típust a típus tömbje helyett.

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

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

Kimeneti adattípus deklarálása grafikus runbookban

Ha grafikus vagy grafikus PowerShell-munkafolyamat-forgatókönyvben szeretne kimeneti típust deklarálni, válassza a Bemenet és kimenet menüt, és adja meg a kimeneti típust. Javasoljuk, hogy a teljes .NET-osztálynévvel könnyen azonosíthatóvá tegye a típust, amikor egy szülő runbook hivatkozik rá. A teljes név használata az osztály összes tulajdonságát elérhetővé teszi a runbook adatbuszának, és növeli a rugalmasságot, ha a tulajdonságokat feltételes logika, naplózás és más runbook-tevékenységek értékeiként használják.
Runbook bemenete és kimenete lehetőség

Feljegyzés

Miután beírt egy értéket a Kimenet típusa mezőbe a Bemeneti és kimeneti tulajdonságok panelen, mindenképpen kattintson a vezérlőn kívülre, hogy felismerje a bejegyzést.

Az alábbi példa két grafikus runbookot mutat be a Bemeneti és kimeneti funkció bemutatásához. A moduláris runbook-tervezési modell alkalmazásakor egy runbookot használ a hitelesített runbook-sablonként, amely felügyelt identitásokkal kezeli a hitelesítést az Azure-ral. A második runbook, amely általában alapvető logikát hajt végre egy adott forgatókönyv automatizálásához, ebben az esetben végrehajtja a Runbook-sablon hitelesítését. Megjeleníti az eredményeket a Tesztkimenet panelen. Normál körülmények között ezt a runbookot a gyermek runbook kimenetét kihasználó erőforráson kellene elvégeznie.

Íme a AuthenticateTo-Azure runbook alapvető logikája.
Runbook-sablon hitelesítése – példa.

A runbook tartalmazza a kimeneti típust Microsoft.Azure.Commands.Profile.Models.PSAzureProfile, amely a hitelesítési profil tulajdonságait adja vissza.
Példa runbook kimeneti típusára

Bár ez a runbook egyszerű, itt egy konfigurációs elem hívható fel. Az utolsó tevékenység végrehajtja a parancsmagot, Write-Output hogy profiladatokat írjon egy változóba a Inputobject paraméterHez tartozó PowerShell-kifejezés használatával. Ez a paraméter a következőhöz Write-Outputszükséges: .

A példában szereplő második runbook, a Test-ChildOutputType egyszerűen két tevékenységet határoz meg.
Példa gyermek kimenettípusú runbookra

Az első tevékenység meghívja a AuthenticateTo-Azure runbookot. A második tevékenység tevékenységkimenetre Write-Verboseállítja az adatforrást tartalmazó parancsmagot. Emellett a mezőútvonal Context.Subscription.Name értékre van állítva, amely a AuthenticateTo-Azure runbook környezeti kimenete.

Képernyőkép az írási részletes parancsmag paraméter adatforrásáról.

Az eredmény az előfizetés neve.
A Test-ChildOutputType runbook eredményei

Üzenetstreamek használata

A kimeneti adatfolyamtól eltérően az üzenetstreamek információkat közölnek a felhasználóval. A különböző típusú információkhoz több üzenetstream is tartozik, az Azure Automation pedig másként kezeli az egyes streameket.

Kimenet írása figyelmeztetésekhez és hibastreamekhez

A figyelmeztetés és a hiba streameli a runbookban előforduló naplóproblémákat. Az Azure Automation ezeket a streameket a feladatelőzményekbe írja egy runbook végrehajtásakor. Az Automation a runbookok tesztelésekor az Azure Portal Tesztkimenet paneljén található streameket is tartalmazza.

Alapértelmezés szerint a runbookok figyelmeztetés vagy hiba után is futnak. Az üzenet létrehozása előtt megadhatja, hogy a runbook figyelmeztetéssel vagy hibával függesztsen fel egy beállításváltozót . Ha például azt szeretné, hogy a runbook egy kivételhez hasonlóan egy hiba miatt felfüggessze a forgatókönyvet, állítsa a ErrorActionPreference változót Stop értékre.

Hozzon létre egy figyelmeztetést vagy hibaüzenetet a Write-Warning vagy a Write-Error parancsmag használatával. A tevékenységek a figyelmeztetési és hibastreamekbe is írhatnak.

#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."

Kimenet írása stream hibakereséséhez

Az Azure Automation a hibakeresési üzenetstreamet használja interaktív felhasználók számára. Az Azure Automation alapértelmezés szerint nem rögzíti a hibakeresési streamadatokat, csak a kimenetet, a hibát és a figyelmeztető adatokat rögzíti, valamint részletes adatokat, ha a runbookot úgy konfigurálták, hogy rögzítse őket.

A hibakeresési streamadatok rögzítéséhez két műveletet kell végrehajtania a runbookokban:

  1. Állítsa be a változót $GLOBAL:DebugPreference="Continue", amely azt jelzi, hogy a PowerShell folytassa a hibakeresési üzeneteket. A $GLOBAL: rész arra utasítja a PowerShellt, hogy ezt a globális hatókörben végezze el, nem pedig azt, hogy a szkript melyik helyi hatókörben van az utasítás végrehajtásakor.

  2. A nem rögzített hibakeresési stream átirányítása olyan streamre, amelyet rögzítünk, például kimenet. Ez úgy történik, hogy a PowerShell-átirányítást a végrehajtandó utasításhoz állítja. A PowerShell-átirányítással kapcsolatos további információkért lásd az átirányításról szóló témakört.

Példák

Ebben a példában a runbook a parancsmagok és Write-Debug parancsmagok Write-Output használatával van konfigurálva azzal a céllal, hogy két különböző streamet állítsunk ki.

Write-Output "This is an output message." 
Write-Debug "This is a debug message."

Ha a runbookot a következőképpen kellene végrehajtani, a runbook-feladat kimeneti panelje a következő kimenetet streamelné:

This is an output message.

Ebben a példában a runbook az előző példához hasonlóan van konfigurálva, kivéve, hogy az 5>&1 utasítás $GLOBAL:DebugPreference="Continue" az utasítás végén Write-Debug szerepel.

Write-Output "This is an output message." 
$GLOBAL:DebugPreference="Continue" 
Write-Debug "This is a debug message." 5>&1

A runbook végrehajtásakor a runbook-feladat kimeneti panelje a következő kimenetet streameli:

This is an output message.
This is a debug message.

Ez azért fordul elő, mert az utasítás arra utasítja a $GLOBAL:DebugPreference="Continue" PowerShellt, hogy hibakeresési 5>&1 üzeneteket jelenítsen meg, és az utasítás végének hozzáadása arra utasítja a Write-Debug PowerShellt, hogy átirányítsa a stream 5-öt (hibakeresést) az 1. streamre (kimenet).

Kimenet írása részletes streambe

A részletes üzenetstream támogatja a runbookművelettel kapcsolatos általános információkat. Mivel a hibakeresési stream nem érhető el runbookokhoz, a runbooknak részletes üzeneteket kell használnia a hibakeresési információkhoz.

A feladatelőzmények alapértelmezés szerint teljesítménybeli okokból nem tárolják a közzétett runbookokból származó részletes üzeneteket. Részletes üzenetek tárolásához használja az Azure Portal Konfigurálás lapját a Log Verbose Records beállítással a közzétett runbookok részletes üzenetek naplózására való konfigurálásához. Ezt a beállítást csak runbook hibaelhárításához vagy hibakereséséhez kapcsolja be. A legtöbb esetben meg kell őriznie az alapértelmezett beállítást, hogy ne naplózzon részletes rekordokat.

Runbook tesztelésekor a részletes üzenetek akkor sem jelennek meg, ha a runbook részletes rekordok naplózására van konfigurálva. Ha részletes üzeneteket szeretne megjeleníteni egy runbook tesztelése során, a változót VerbosePreference Continue (Folytatás) értékre kell állítania. Ezzel a változókészlettel részletes üzenetek jelennek meg az Azure Portal tesztkimeneti paneljén.

Az alábbi kód részletes üzenetet hoz létre a Write-Verbose parancsmag használatával.

#The following line creates a verbose message.

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

Folyamatrekordok kezelése

Az Azure Portal Konfigurálás lapján konfigurálhat egy runbookot az állapotrekordok naplózásához. Az alapértelmezett beállítás a rekordok naplózásának tiltása a teljesítmény maximalizálása érdekében. A legtöbb esetben meg kell tartania az alapértelmezett beállítást. Ezt a beállítást csak runbook hibaelhárításához vagy hibakereséséhez kapcsolja be.

Ha engedélyezi a folyamatrekordok naplózását, a runbook egy rekordot ír a feladatelőzményekbe az egyes tevékenységek futtatása előtt és után. A runbook tesztelése akkor sem jeleníti meg a folyamatjelző üzeneteket, ha a runbook konfigurálva van az állapotrekordok naplózására.

Feljegyzés

A Write-Progress parancsmag nem érvényes egy runbookban, mivel ez a parancsmag interaktív felhasználóval való használatra készült.

Beállításváltozók használata

A runbookokban beállíthat bizonyos Windows PowerShell-beállítási változókat a különböző kimeneti streamekbe küldött adatokra adott válasz szabályozásához. Az alábbi táblázat a runbookokban használható beállításváltozókat sorolja fel az alapértelmezett és érvényes értékekkel. További értékek érhetők el a beállítási változókhoz, ha a Windows PowerShellben az Azure Automationen kívül használják.

Változó Alapértelmezett érték Érvényes értékek
WarningPreference Folytatás Leállítás
Folytatás
SilentlyContinue
ErrorActionPreference Folytatás Leállítás
Folytatás
SilentlyContinue
VerbosePreference SilentlyContinue Leállítás
Folytatás
SilentlyContinue

A következő táblázat a runbookokban érvényes beállításváltozó-értékek viselkedését sorolja fel.

Érték Működés
Folytatás Naplózza az üzenetet, és folytatja a runbook végrehajtását.
SilentlyContinue Az üzenet naplózása nélkül folytatja a runbook végrehajtását. Ennek az értéknek az az hatása, hogy figyelmen kívül hagyja az üzenetet.
Leállítás Naplózza az üzenetet, és felfüggeszti a runbookot.

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

Runbook kimenetének és üzeneteinek lekérése az Azure Portalon

A runbook-feladatok részleteit az Azure Portalon tekintheti meg a runbook Feladatok lapján. A feladat összegzése a bemeneti paramétereket és a kimeneti adatfolyamot jeleníti meg, a feladatra vonatkozó általános információk és a bekövetkezett kivételek mellett. A feladatelőzmények tartalmazzák a kimeneti streamből származó üzeneteket, valamint a figyelmeztető és hibastreameket. A részletes streamből és a folyamatrekordokból származó üzeneteket is tartalmaz, ha a runbook részletes és folyamatrekordok naplózására van konfigurálva.

Feljegyzés

A Python-runbookok feladatstreamjei jelenleg az angol nyelvű kimenethez támogatottak.

Runbook kimenetének és üzeneteinek lekérése a Windows PowerShellben

A Windows PowerShellben a Get-AzAutomationJobOutput parancsmaggal lekérheti a kimenetet és az üzeneteket egy runbookból. Ez a parancsmag megköveteli a feladat azonosítóját, és egy paramétert hív meg Stream , amelyben meg kell adnia a lekérni kívánt streamet. A paraméter bármely értékének megadásával lekérheti a feladat összes streamét.

Az alábbi példa elindít egy minta runbookot, majd megvárja, amíg befejeződik. A runbook végrehajtása után a szkript összegyűjti a runbook kimeneti adatfolyamát a feladatból.

$job = Start-AzAutomationRunbook -ResourceGroupName "ResourceGroup01" `
  -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook"

$doLoop = $true
While ($doLoop) {
  $job = Get-AzAutomationJob -ResourceGroupName "ResourceGroup01" `
    -AutomationAccountName "MyAutomationAccount" -Id $job.JobId
  $status = $job.Status
  $doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped"))
}

Get-AzAutomationJobOutput -ResourceGroupName "ResourceGroup01" `
  -AutomationAccountName "MyAutomationAccount" -Id $job.JobId -Stream Output

# For more detailed job output, pipe the output of Get-AzAutomationJobOutput to Get-AzAutomationJobOutputRecord
Get-AzAutomationJobOutput -ResourceGroupName "ResourceGroup01" `
  -AutomationAccountName "MyAutomationAccount" -Id $job.JobId -Stream Any | Get-AzAutomationJobOutputRecord

Runbook kimenetének és üzeneteinek lekérése grafikus runbookokban

Grafikus runbookok esetén a kimenetek és üzenetek további naplózása tevékenységszintű nyomkövetés formájában érhető el. A nyomkövetésnek két szintje van: alapszintű és részletes. Az alapszintű nyomkövetés megjeleníti a runbook minden egyes tevékenységének kezdési és befejezési idejét, valamint az újrapróbálkozási tevékenységekkel kapcsolatos információkat. Ilyen például a kísérletek száma és a tevékenység kezdési időpontja. A részletes nyomkövetés alapvető nyomkövetési funkciókat tartalmaz, valamint az egyes tevékenységek bemeneti és kimeneti adatainak naplózását.

A tevékenységszintű nyomkövetés jelenleg a részletes adatfolyam használatával ír rekordokat. Ezért a nyomkövetés engedélyezésekor engedélyeznie kell a részletes naplózást. A nyomkövetést engedélyező grafikus runbookok esetében nem szükséges naplózni az előrehaladási rekordokat. Az alapszintű nyomkövetés ugyanazt a célt szolgálja, és informatívabb.

Grafikus szerzői feladatok streamjeinek nézete

A képen látható, hogy a részletes naplózás és a grafikus runbookok nyomkövetésének engedélyezése sokkal több információt tesz elérhetővé az éles feladatstreamek nézetben. Ezek a további információk nélkülözhetetlenek lehetnek a runbook éles problémáinak elhárításához.

Ha azonban nem szeretné, hogy ezek az információk nyomon követjék a runbookok hibaelhárítási folyamatát, érdemes lehet általános gyakorlatként kikapcsolni a nyomkövetést. A nyomkövetési rekordok különösen sokak lehetnek. A grafikus runbook-nyomkövetéssel tevékenységenként két-négy rekordot kaphat az alapszintű vagy részletes nyomkövetés konfigurációjától függően.

Tevékenységszintű nyomkövetés engedélyezése:

  1. Az Azure Portalon nyissa meg az Automation-fiókját.

  2. Válassza a Runbookok lehetőséget a Folyamatautomatizálás területen a runbookok listájának megnyitásához.

  3. A Runbookok lapon válasszon ki egy grafikus runbookot a runbookok listájából.

  4. A Beállítások területen kattintson a Naplózás és nyomkövetés elemre.

  5. A Naplózás és nyomon követés lapon, a Részletes rekordok naplózása csoportban kattintson a Be gombra a részletes naplózás engedélyezéséhez.

  6. A tevékenységszintű nyomkövetés alatt módosítsa a nyomkövetési szintet alapszintűre vagy részletesre a szükséges nyomkövetési szint alapján.

    Grafikus szerzői naplózási és nyomkövetési oldal

Runbook kimenetének és üzeneteinek lekérése a Microsoft Azure Monitor naplóiban

Az Azure Automation runbook-feladatállapotokat és feladatstreameket küldhet a Log Analytics-munkaterületre. Az Azure Monitor olyan naplókat támogat, amelyek lehetővé teszik a következőket:

  • Információk szerzése az Automation-feladatokról.
  • Aktiváljon egy e-mailt vagy riasztást a runbook-feladat állapota alapján, például sikertelen vagy felfüggesztett.
  • Speciális lekérdezések írása feladatstreamek között.
  • Feladatok korrelációjának megállapítása több Automation-fiókra kiterjedően.
  • Feladatelőzmények megjelenítése.

További információ az Azure Monitor-naplókkal való integrációnak a feladatadatok gyűjtéséhez, korrelálásához és kezeléséhez való konfigurálásáról: Feladatállapot és feladatstreamek továbbítása az Automationből az Azure Monitor-naplókba.

Következő lépések