Változók kezelése az Azure Automationben

A változók olyan értékek, amelyek az Automation-fiók összes runbookja és DSC-konfigurációja számára elérhetők. Ezeket az Azure Portalról, a PowerShellből, egy runbookból vagy egy DSC-konfigurációból kezelheti.

Az automation változók a következő helyzetekben hasznosak:

  • Érték megosztása több runbook vagy DSC-konfiguráció között.

  • Egy érték megosztása több feladat között ugyanabból a runbookból vagy DSC-konfigurációból.

  • Runbookok vagy DSC-konfigurációk által használt érték kezelése a portálról vagy a PowerShell parancssorból. Ilyenek például a gyakori konfigurációelemek, például a virtuális gépek neveinek egy adott listája, egy adott erőforráscsoport, egy AD-tartománynév stb.

Az Azure Automation megőrzi a változókat, és elérhetővé teszi őket akkor is, ha egy runbook vagy egy DSC-konfiguráció meghiúsul. Ez a viselkedés lehetővé teszi, hogy egy runbook vagy DSC-konfiguráció olyan értéket állítson be, amelyet aztán egy másik runbook, vagy ugyanaz a runbook vagy DSC-konfiguráció használ a következő futtatáskor.

Az Azure Automation biztonságosan tárolja az egyes titkosított változókat. Amikor létrehoz egy változót, megadhatja annak titkosítását és tárolását az Azure Automation által biztonságos eszközként. A változó létrehozása után nem módosíthatja a titkosítási állapotát a változó újbóli létrehozása nélkül. Ha az Automation-fiók változói olyan bizalmas adatokat tárolnak, amelyek még nincsenek titkosítva, akkor törölnie kell őket, és újra létre kell hoznia őket titkosított változókként. Egy Felhőhöz készült Microsoft Defender javaslat az Összes Azure Automation-változó titkosítása az Automation-fiókváltozókban leírtak szerint. Ha olyan titkosítatlan változókkal rendelkezik, amelyeket ki szeretne zárni ebből a biztonsági javaslatból, tekintse meg az erőforrás kivételi szabály létrehozásához szükséges javaslatok és biztonsági pontszámok alóli mentesítése című témakört.

Megjegyzés:

Biztonságba helyezheti az Azure Automationbeli összetevőket, például hitelesítő adatokat, tanúsítványokat, kapcsolatokat és titkosított változókat. Ezeket az eszközöket az Azure Automation titkosítja és tárolja az egyes Automation-fiókokhoz létrehozott egyedi kulccsal. Az Azure Automation a kulcsot a rendszer által felügyelt Key Vaultban tárolja. A biztonságos objektum tárolása előtt az Automation betölti a kulcsot a Key Vaultból, majd titkosítja az objektumot.

Változótípusok

Amikor létrehoz egy változót az Azure Portallal, meg kell adnia egy adattípust a legördülő listából, hogy a portál megjeleníthesse a változó értékének megadásához szükséges vezérlőt. Az Alábbi változótípusok érhetők el az Azure Automationben:

  • Sztring
  • Egész szám
  • Dátum/idő
  • Boolean
  • Null

A változó nem korlátozódik a megadott adattípusra. A változót a Windows PowerShell használatával kell beállítania, ha más típusú értéket szeretne megadni. Ha azt jelzi Not defined, a változó értéke Null értékű. Az értéket a Set-AzAutomationVariable parancsmaggal vagy a belső Set-AutomationVariable parancsmaggal kell beállítania. Az Azure-tesztkörnyezetben vagy a Windows hibrid runbook-feldolgozóban való futtatásra szánt runbookokat használja Set-AutomationVariable .

Az Azure Portal nem használható összetett változótípusok értékének létrehozására vagy módosítására. A Windows PowerShell használatával azonban bármilyen típusú értéket megadhat. Az összetett típusok a PSCustomObject psObject típusú PSObject típus helyett Newtonsoft.Json.Linq.JProperty típusúak.

Egy tömb vagy kivonatoló létrehozásával és a változóba való mentésével több értéket is tárolhat egyetlen változóban.

Megjegyzés:

A virtuális gép névváltozói legfeljebb 80 karakter hosszúságúak lehetnek. Az erőforráscsoport változói legfeljebb 90 karakter hosszúságúak lehetnek. Lásd az Azure-erőforrások elnevezési szabályait és korlátozásait.

PowerShell-parancsmagok változók eléréséhez

Az alábbi táblázatban található parancsmagok Automation-változókat hoznak létre és kezelnek a PowerShell használatával. Az Az modulok részeként szállítanak.

Parancsmag Leírás
Get-AzAutomationVariable Egy meglévő változó értékét kéri le. Ha az érték egyszerű típus, a rendszer ugyanezt a típust kéri le. Összetett típus esetén a rendszer lekéri a típust PSCustomObject . 1
New-AzAutomationVariable Létrehoz egy új változót, és beállítja annak értékét.
Remove-AzAutomationVariable Eltávolít egy meglévő változót.
Set-AzAutomationVariable Egy meglévő változó értékét állítja be.

1 Ez a parancsmag nem használható titkosított változó értékének lekérésére. Ennek egyetlen módja a belső Get-AutomationVariable parancsmag használata runbookban vagy DSC-konfigurációban. Például egy titkosított változó értékének megtekintéséhez létrehozhat egy runbookot, amely lekéri a változót, majd a kimeneti adatfolyamba írja:

$encryptvar = Get-AutomationVariable -Name TestVariable
Write-output "The encrypted value of the variable is: $encryptvar"

Belső parancsmagok a változók eléréséhez

Az alábbi táblázatban található belső parancsmagok a runbookokban és a DSC-konfigurációkban lévő változók elérésére szolgálnak. Ezek a parancsmagok a globális modulhoz Orchestrator.AssetManagement.Cmdletstartoznak. További információ: Belső parancsmagok.

Belső parancsmag Leírás
Get-AutomationVariable Egy meglévő változó értékét kéri le.
Set-AutomationVariable Egy meglévő változó értékét állítja be.

Megjegyzés:

Ne használjon változókat a Name parancsmag paraméterében Get-AutomationVariable runbookban vagy DSC-konfigurációban. A változók használata megnehezítheti a runbookok és az Automation-változók közötti függőségek felderítését a tervezéskor.

Python-függvények változók eléréséhez

Az alábbi táblázatban szereplő függvények a Python 2 és 3 runbook változóinak elérésére szolgálnak. A Python 3 runbookok jelenleg előzetes verzióban érhetők el.

Python-függvények Leírás
automationassets.get_automation_variable Egy meglévő változó értékét kéri le.
automationassets.set_automation_variable Egy meglévő változó értékét állítja be.

Megjegyzés:

Az eszközfüggvények eléréséhez importálnia kell a automationassets Python-runbook tetején található modult.

Változó létrehozása és lekérése

Megjegyzés:

Ha el szeretné távolítani egy változó titkosítását, törölnie kell a változót, és újra létre kell hoznia titkosítatlanként.

Változó létrehozása és lekérése az Azure Portal használatával

  1. Az Automation-fiókjában a bal oldali panelen válassza a Változók lehetőséget a Megosztott erőforrások csoportban.
  2. A Változók lapon válassza a Változó hozzáadása lehetőséget.
  3. Az Új változó lapon adja meg a beállításokat, majd kattintson a Létrehozás gombra az új változó mentéséhez.

Megjegyzés:

Miután mentett egy titkosított változót, az nem tekinthető meg a portálon. Csak frissíthető.

Változó létrehozása és lekérése a Windows PowerShellben

A runbook vagy a DSC-konfiguráció a New-AzAutomationVariable parancsmaggal hoz létre egy új változót, és beállítja annak kezdeti értékét. Ha a változó titkosítva van, a hívásnak a paramétert kell használnia Encrypted . A szkript lekérheti a változó értékét a következő használatával Get-AzAutomationVariable: .

Megjegyzés:

A PowerShell-szkriptek nem tudják lekérni a titkosított értékeket. Ennek egyetlen módja a belső Get-AutomationVariable parancsmag használata.

Az alábbi példa bemutatja, hogyan hozhat létre sztringváltozót, majd visszaadhatja annak értékét.

$rgName = "ResourceGroup01"
$accountName = "MyAutomationAccount"
$variableValue = "My String"

New-AzAutomationVariable -ResourceGroupName "ResourceGroup01" 
-AutomationAccountName "MyAutomationAccount" -Name 'MyStringVariable' `
-Encrypted $false -Value 'My String'
$string = (Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name 'MyStringVariable').Value

Az alábbi példa bemutatja, hogyan hozhat létre egy összetett típusú változót, majd lekérheti annak tulajdonságait. Ebben az esetben a Get-AzVM virtuálisgép-objektuma a tulajdonságok egy részhalmazát adja meg.

$rgName = "ResourceGroup01"
$accountName = "MyAutomationAccount"

$vm = Get-AzVM -ResourceGroupName "ResourceGroup01" -Name "VM01" | Select Name, Location, Extensions
New-AzAutomationVariable -ResourceGroupName "ResourceGroup01" -AutomationAccountName "MyAutomationAccount" -Name "MyComplexVariable" -Encrypted $false -Value $vm

$vmValue = Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name "MyComplexVariable"

$vmName = $vmValue.Value.Name
$vmTags = $vmValue.Value.Tags

Példák szöveges runbookokra

Az alábbi példa bemutatja, hogyan állíthat be és kér le egy változót egy szöveges runbookban. Ez a példa feltételezi a numberOfIterations és a numberOfRunnings nevű egész szám változók létrehozását, valamint egy sampleMessage nevű sztringváltozót.

$rgName = "ResourceGroup01"
$accountName = "MyAutomationAccount"

$numberOfIterations = Get-AutomationVariable -Name "numberOfIterations"
$numberOfRunnings = Get-AutomationVariable -Name "numberOfRunnings"
$sampleMessage = Get-AutomationVariable -Name "sampleMessage"

Write-Output "Runbook has been run $numberOfRunnings times."

for ($i = 1; $i -le $numberOfIterations; $i++) {
    Write-Output "$i`: $sampleMessage"
}
Set-AutomationVariable -Name numberOfRunnings -Value ($numberOfRunnings += 1)

Példák grafikus runbookra

Grafikus runbookban hozzáadhat tevékenységeket a Get-AutomationVariable vagy a Set-AutomationVariable belső parancsmagokhoz. Kattintson a jobb gombbal az egyes változókra a grafikus szerkesztő Könyvtár panelén, és válassza ki a kívánt tevékenységet.

Add variable to canvas

Az alábbi képen egy grafikus runbook egyszerű értékével rendelkező változó frissítésére szolgáló példatevékenységek láthatók. Ebben a példában a tevékenység Get-AzVM egyetlen Azure-beli virtuális gépet kér le, és a számítógép nevét egy meglévő Automation-sztringváltozóba menti. Nem számít, hogy a hivatkozás egy folyamat vagy egy sorozat , mivel a kód csak egyetlen objektumot vár a kimenetben.

Set simple variable

Következő lépések