Runbook bemeneti paramétereinek konfigurálása az Automationben
A runbook bemeneti paraméterei növelik a runbookok rugalmasságát azáltal, hogy lehetővé teszik az adatok átadását az indításkor. Ezek a paraméterek lehetővé teszik, hogy a runbook-műveletek meghatározott forgatókönyvek és környezetek számára legyenek megcélzva. Ez a cikk a forgatókönyvek bemeneti paramétereinek konfigurálását és használatát ismerteti.
Bemeneti paramétereket konfigurálhat PowerShell-, PowerShell-munkafolyamatokhoz, grafikus és Python-runbookokhoz. A runbookok több paraméterrel is rendelkezhetnek különböző adattípusokkal vagy paraméterek nélkül. A bemeneti paraméterek lehetnek kötelezőek vagy nem kötelezőek, és az opcionális paraméterek alapértelmezett értékeit is használhatja.
Amikor elindítja, értékeket rendelhet a runbook bemeneti paramétereihez. Runbookot az Azure Portalról, egy webszolgáltatásból vagy a PowerShellből indíthat el. Az egyiket gyermek runbookként is elindíthatja, amelyet egy másik runbookban beágyazottnak hívunk.
Bemeneti típusok
Az Azure Automation különböző bemeneti paraméterértékeket támogat a különböző runbooktípusokban. Az egyes runbook-típusokhoz támogatott beviteli típusok az alábbi táblázatban találhatók.
Forgatókönyv típusa | Támogatott paraméterbemenetek |
---|---|
PowerShell | -Húr - Security.SecureString - INT32 -Logikai - DateTime -Tömb - Collections.Hashtable - Management.Automation.SwitchParameter |
PowerShell-munkafolyamat | -Húr - Security.SecureString - INT32 -Logikai - DateTime -Tömb - Collections.Hashtable - Management.Automation.SwitchParameter |
Grafikus PowerShell | -Húr - INT32 - INT64 -Logikai -Tizedes - DateTime -Tárgy |
Python | -Húr |
Bemeneti paraméterek konfigurálása a PowerShellben-runbookokban
Az Azure Automation PowerShell- és PowerShell-munkafolyamat-runbookjai támogatják az alábbi tulajdonságokon keresztül definiált bemeneti paramétereket.
Tulajdonság | Leírás |
---|---|
Típus | Szükséges. A paraméter értékének adattípusa várható. Bármely .NET-típus érvényes. |
Név | Szükséges. A paraméter neve. Ennek a névnek egyedinek kell lennie a runbookban, betűvel kell kezdődnie, és csak betűket, számokat vagy aláhúzásjeleket tartalmazhat. |
Kötelező | Opcionális. A logikai érték azt határozza meg, hogy a paraméterhez szükség van-e értékre. Ha ezt Igaz értékre állítja, a runbook indításakor meg kell adni egy értéket. Ha hamis értékre állítja, az érték megadása nem kötelező. Ha nem ad meg értéket a tulajdonsághoz, a Mandatory PowerShell alapértelmezés szerint opcionálisnak tekinti a bemeneti paramétert. |
Alapértelmezett érték | Opcionális. A paraméterhez használt érték, ha a runbook indításakor nem ad át bemeneti értéket. A runbook bármely paraméterhez beállíthat alapértelmezett értéket. |
A Windows PowerShell a fent felsoroltaknál több bemeneti paramétert támogat, például érvényesítési, aliasokat és paraméterkészleteket. Az Azure Automation azonban jelenleg csak a felsorolt bemeneti paraméterek tulajdonságait támogatja.
Példaként tekintsünk meg egy paraméterdefiníciót egy PowerShell-munkafolyamat-forgatókönyvben. Ez a definíció az alábbi általános formával rendelkezik, amelyben több paraméter vesszővel van elválasztva.
Param
(
[Parameter (Mandatory= $true/$false)]
[Type] $Name1 = <Default value>,
[Parameter (Mandatory= $true/$false)]
[Type] $Name2 = <Default value>
)
Most konfiguráljuk egy PowerShell-munkafolyamat-runbook bemeneti paramétereit, amelyek egy virtuális gép vagy egy erőforráscsoport összes virtuális gépe adatait kimenetelik ki. Ennek a runbooknak két paramétere van, amint az a következő képernyőképen látható: a virtuális gép neve (VMName
) és az erőforráscsoport neve (resourceGroupName
).
Ebben a paraméterdefinícióban a bemeneti paraméterek egyszerű, sztring típusú paraméterek.
Vegye figyelembe, hogy a PowerShell- és PowerShell-munkafolyamat-runbookok támogatják az összes egyszerű és összetett típust, például Object
a bemeneti paramétereket.PSCredential
Ha a runbook objektumbemeneti paraméterrel rendelkezik, egy név-érték párokat tartalmazó PowerShell-kivonatolót kell használnia egy érték átadásához. Például egy runbookban a következő paraméterrel rendelkezik.
[Parameter (Mandatory = $true)]
[object] $FullName
Ebben az esetben a következő értéket adhatja át a paraméternek.
@{"FirstName"="Joe";"MiddleName"="Bob";"LastName"="Smith"}
PowerShell 7.1-runbookok esetén adja meg a tömb bemeneti paramétereit az alábbi formátumban:
Név | Érték |
---|---|
TESTPARAMETER | nem, ez,páros,munka |
Feljegyzés
Ha nem ad át értéket egy null alapértelmezett értékkel rendelkező opcionális karakterláncparaméternek, a paraméter értéke a Null helyett egy üres sztring.
Bemeneti paraméterek konfigurálása grafikus runbookokban
A grafikus runbook bemeneti paramétereinek konfigurálásának szemléltetéséhez hozzunk létre egy runbookot, amely egy virtuális gép, vagy egy erőforráscsoport összes virtuális gépe adatait adja ki. További részletekért lásd az első grafikus runbookomat.
A grafikus runbookok a következő fő runbook-tevékenységeket használják:
- Hitelesítés az Azure-ral az automation-fiókhoz konfigurált felügyelt identitással.
- Get-AzVM-parancsmag definíciója a virtuálisgép-tulajdonságok lekéréséhez.
- A Write-Output tevékenység használata a virtuális gépek neveinek kimenetéhez.
A Get-AzVM
tevékenység két bemenetet határoz meg, a virtuális gép nevét és az erőforráscsoport nevét. Mivel ezek a nevek a runbook minden indításakor eltérőek lehetnek, a bemenetek elfogadásához bemeneti paramétereket kell hozzáadnia a runbookhoz. Tekintse meg a grafikus szerkesztést az Azure Automationben.
A bemeneti paraméterek konfigurálásához kövesse az alábbi lépéseket.
Jelölje ki a grafikus runbookot a Runbookok lapon, majd kattintson a Szerkesztés gombra.
A grafikus szerkesztőben kattintson a Bemenet és kimenet gombra, majd a Bemenet hozzáadása elemre a Runbook bemeneti paraméter paneljének megnyitásához.
A Bemeneti és kimeneti vezérlő megjeleníti a runbookhoz definiált bemeneti paraméterek listáját. Itt hozzáadhat egy új bemeneti paramétert, vagy szerkesztheti egy meglévő bemeneti paraméter konfigurációját. Ha új paramétert szeretne hozzáadni a runbookhoz, kattintson a Bemenet hozzáadása gombra a Runbook bemeneti paraméter paneljének megnyitásához, ahol a paraméterek konfigurálhatók az Azure Automation grafikus szerkesztésében meghatározott tulajdonságok használatával.
Hozzon létre két paramétert a tevékenység által használandó alábbi tulajdonságokkal, majd kattintson az
Get-AzVM
OK gombra.1. paraméter:
- Név virtuális -- gép neve
- Típus – Sztring
- Kötelező -- nem
2. paraméter:
- ResourceGroupName név --
- Típus – Sztring
- Kötelező -- nem
- Egyéni alapértelmezett érték --
- Egyéni alapértelmezett érték – A virtuális gépeket tartalmazó erőforráscsoport neve
A paraméterek megtekintése a Bemeneti és kimeneti vezérlőben.
Kattintson ismét az OK gombra, majd a Mentés gombra.
A runbook közzétételéhez kattintson a Közzététel gombra.
Bemeneti paraméterek konfigurálása Python-runbookokban
A PowerShelltől, a PowerShell-munkafolyamattól és a grafikus runbookoktól eltérően a Python-runbookok nem használnak elnevezett paramétereket. A runbook-szerkesztő az összes bemeneti paramétert argumentumértékek tömbjeként elemzi. A tömböt úgy érheti el, hogy importálja a modult a sys
Python-szkriptbe, majd a sys.argv
tömböt használja. Fontos megjegyezni, hogy a tömb sys.argv[0]
első eleme a szkript neve. Ezért az első tényleges bemeneti paraméter a .sys.argv[1]
A bemeneti paraméterek Python-runbookokban való használatára vonatkozó példa: Az első Python-runbook az Azure Automationben.
Feljegyzés
A szóközökkel rendelkező argumentumok jelenleg nem támogatottak. Áthidaló megoldásként a \\n mellett a \\t is használható.
Értékek hozzárendelése bemeneti paraméterekhez runbookokban
Ez a szakasz a runbookokban lévő bemeneti paramétereknek való értékek átadásának számos módját ismerteti. Paraméterértékeket a következő esetekben rendelhet hozzá:
- Runbook indítása
- Runbook tesztelése
- Ütemterv csatolása a runbookhoz
- Webhook létrehozása a runbookhoz
Runbook indítása és paraméterek hozzárendelése
A runbookok többféleképpen is elindíthatók: az Azure Portalon, webhookkal, PowerShell-parancsmagokkal, a REST API-val vagy az SDK-val.
Közzétett runbook indítása az Azure Portal használatával és paraméterek hozzárendelése
Amikor elindítja a runbookot az Azure Portalon, megnyílik a Runbook indítása panel, és megadhatja a létrehozott paraméterek értékeit.
A beviteli mező alatti címkén láthatók azok a tulajdonságok, amelyek paraméterattribútumok definiálására lettek beállítva, például kötelező vagy nem kötelező, típus, alapértelmezett érték. A paraméter neve melletti súgóbuborék a paraméter bemeneti értékeivel kapcsolatos döntések meghozatalához szükséges legfontosabb információkat is meghatározza.
Feljegyzés
A sztringparaméterek sztring típusú üres értékeket támogatnak. A bemeneti paramétermezőbe való [EmptyString]
bevitel egy üres sztringet ad át a paraméternek. Emellett a sztringparaméterek nem támogatják a Null értéket. Ha nem ad át értéket egy sztringparaméternek, a PowerShell null értékként értelmezi azt.
Közzétett runbook indítása PowerShell-parancsmagokkal és paraméterek hozzárendelése
Azure Resource Manager-parancsmagok: Elindíthat egy erőforráscsoportban létrehozott Automation-runbookot a Start-AzAutomationRunbook használatával.
$params = @{"VMName"="WSVMClassic";"resourceGroupeName"="WSVMClassicSG"} Start-AzAutomationRunbook -AutomationAccountName "TestAutomation" -Name "Get-AzureVMGraphical" –ResourceGroupName $resourceGroupName -Parameters $params
Klasszikus Azure-beli üzembehelyezési modell parancsmagjai: Az alapértelmezett erőforráscsoportban létrehozott automation runbookot a Start-AzureAutomationRunbook használatával indíthatja el.
$params = @{"VMName"="WSVMClassic"; "ServiceName"="WSVMClassicSG"} Start-AzureAutomationRunbook -AutomationAccountName "TestAutomation" -Name "Get-AzureVMGraphical" -Parameters $params
Feljegyzés
Amikor PowerShell-parancsmagokkal indít el egy runbookot, a rendszer létrehoz egy alapértelmezett paramétert MicrosoftApplicationManagementStartedBy
az értékkel PowerShell
. Ezt a paramétert a Feladat részletei panelen tekintheti meg.
Runbook indítása SDK használatával és paraméterek hozzárendelése
Azure Resource Manager-módszer: Egy runbookot egy programozási nyelv SDK-jával indíthat el. Az alábbiakban egy C#-kódrészlet látható, amely runbookot indít az Automation-fiókjában. Az összes kódot megtekintheti a GitHub-adattárban.
public Job StartRunbook(string runbookName, IDictionary<string, string> parameters = null) { var response = AutomationClient.Jobs.Create(resourceGroupName, automationAccount, new JobCreateParameters { Properties = new JobCreateProperties { Runbook = new RunbookAssociationProperty { Name = runbookName }, Parameters = parameters } }); return response.Job; }
Klasszikus Azure-beli üzembehelyezési modell metódusa: Runbookot egy programozási nyelv SDK-jával indíthat el. Az alábbiakban egy C#-kódrészlet látható, amely runbookot indít az Automation-fiókjában. Az összes kódot megtekintheti a GitHub-adattárban.
public Job StartRunbook(string runbookName, IDictionary<string, string> parameters = null) { var response = AutomationClient.Jobs.Create(automationAccount, new JobCreateParameters { Properties = new JobCreateProperties { Runbook = new RunbookAssociationProperty { Name = runbookName }, Parameters = parameters } }); return response.Job; }
A metódus elindításához hozzon létre egy szótárat a runbook paramétereinek
VMName
ésresourceGroupName
értékeinek tárolásához. Ezután indítsa el a runbookot. Az alábbiakban a fent definiált metódus meghívására szolgáló C#-kódrészlet látható.IDictionary<string, string> RunbookParameters = new Dictionary<string, string>(); // Add parameters to the dictionary. RunbookParameters.Add("VMName", "WSVMClassic"); RunbookParameters.Add("resourceGroupName", "WSSC1"); //Call the StartRunbook method with parameters StartRunbook("Get-AzureVMGraphical", RunbookParameters);
Runbook indítása a REST API használatával és paraméterek hozzárendelése
Runbook-feladatokat az Azure Automation REST API-val hozhat létre és indíthat el a PUT
következő URI kéréssel rendelkező metódussal: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/jobs/{jobName}?api-version=2017-05-15-preview
A kérelem URI-jában cserélje le a következő paramétereket:
subscriptionId
: Az Azure-előfizetés azonosítója.resourceGroupName
: Az Automation-fiók erőforráscsoportjának neve.automationAccountName
: A megadott felhőszolgáltatásban üzemeltetett Automation-fiók neve.jobName
: A feladat GUID azonosítója. A PowerShellben a GRAFIKUS GUID-k a használatával hozhatók létre[GUID]::NewGuid().ToString()*
.
Ha paramétereket szeretne átadni a runbook-feladatnak, használja a kérelem törzsét. A következő, JSON formátumban megadott információkat veszi fel:
- Runbook neve: Kötelező. A feladat indításához használt runbook neve.
- Runbook-paraméterek: Nem kötelező. A paraméterlista szótára (név, érték) formátumban, ahol a név sztring típusú, és az érték bármilyen érvényes JSON-érték lehet.
Ha a korábban VMName
resourceGroupName
létrehozott Get-AzureVMTextual runbookot paraméterekkel és paraméterekkel szeretné elindítani, használja a következő JSON-formátumot a kérelem törzséhez.
{
"properties":{
"runbook":{
"name":"Get-AzureVMTextual"},
"parameters":{
"VMName":"WindowsVM",
"resourceGroupName":"ContosoSales"}
}
}
Ha a feladat sikeresen létrejött, a rendszer egy 201-ben megadott HTTP-állapotkódot ad vissza. A válaszfejlécekkel és a válasz törzsével kapcsolatos további információkért lásd : Runbook-feladat létrehozása a REST API használatával.
Runbook tesztelése és paraméterek hozzárendelése
Amikor a tesztbeállítással teszteli a runbook piszkozatverzióját, megnyílik a Teszt lap. Ezen a lapon konfigurálhatja a létrehozott paraméterek értékeit.
Ütemezés csatolása runbookhoz és paraméterek hozzárendelése
Az ütemezést csatolhatja a runbookhoz úgy, hogy a runbook egy adott időpontban induljon el. Az ütemezés létrehozásakor bemeneti paramétereket rendel hozzá, és a runbook ezeket az értékeket használja az ütemezés indításakor. Nem mentheti az ütemezést, amíg meg nem adja az összes kötelező paraméterértéket.
Webhook létrehozása runbookhoz és paraméterek hozzárendelése
Létrehozhat egy webhookot a runbookhoz, és konfigurálhatja a runbook bemeneti paramétereit. A webhook csak akkor menthető, ha az összes kötelező paraméterérték meg van adva.
Ha webhook használatával hajt végre runbookot, a rendszer elküldi az előre definiált bemeneti paramétert [WebhookData](automation-webhooks.md)
, valamint a megadott bemeneti paramétereket.
JSON-objektum továbbítása runbookba
Hasznos lehet jSON-fájlban tárolni azokat az adatokat, amelyeket át szeretne adni egy runbooknak. Létrehozhat például egy JSON-fájlt, amely tartalmazza a runbooknak átadni kívánt összes paramétert. Ehhez a JSON-kódot sztringgé kell konvertálnia, majd PowerShell-objektummá kell alakítania a sztringet, mielőtt átadta volna a runbooknak.
Ez a szakasz egy példát használ, amelyben egy PowerShell-szkript meghívja a Start-AzAutomationRunbookot egy PowerShell-runbook elindításához, és átadja a JSON-fájl tartalmát a runbooknak. A PowerShell-runbook elindít egy Azure-beli virtuális gépet a virtuális gép paramétereinek JSON-objektumból való lekérésével.
A JSON-fájl létrehozása
Írja be a következő kódot egy szövegfájlba, és mentse test.json valahol a helyi számítógépen.
{
"VmName" : "TestVM",
"ResourceGroup" : "AzureAutomationTest"
}
A runbook létrehozása
Hozzon létre egy új, Test-Json nevű PowerShell-runbookot az Azure Automationben.
A JSON-adatok elfogadásához a runbooknak egy objektumot kell bemeneti paraméterként vennie. A runbook ezután használhatja a JSON-fájlban definiált tulajdonságokat.
Param(
[parameter(Mandatory=$true)]
[object]$json
)
# 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
# Convert object to actual JSON
$json = $json | ConvertFrom-Json
# Use the values from the JSON object as the parameters for your command
Start-AzVM -Name $json.VMName -ResourceGroupName $json.ResourceGroup -DefaultProfile $AzureContext
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:
- A 10. 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.
Mentse és tegye közzé ezt a runbookot az Automation-fiókjában.
Runbook meghívása a PowerShellből
Most már meghívhatja a runbookot a helyi gépről az Azure PowerShell használatával.
Jelentkezzen be az Azure-ba az ábrán látható módon. Ezt követően a rendszer kérni fogja, hogy adja meg az Azure-ra vonatkozó hitelesítő adatait.
Connect-AzAccount
Feljegyzés
PowerShell-runbookok esetén,
Add-AzAccount
ésAdd-AzureRMAccount
aliasok a következőhözConnect-AzAccount
: . Vegye figyelembe, hogy ezek az aliasok nem érhetők el grafikus runbookokhoz. A grafikus runbookok csak önmagukat használhatjákConnect-AzAccount
.Kérje le a mentett JSON-fájl tartalmát, és konvertálja sztringgé.
JsonPath
A JSON-fájl mentési útvonalát jelzi.$json = (Get-content -path 'JsonPath\test.json' -Raw) | Out-string
Alakítsa át a sztring tartalmát
$json
PowerShell-objektummá.$JsonParams = @{"json"=$json}
Hozzon létre egy kivonatolót a következő paraméterekhez
Start-AzAutomationRunbook
: .$RBParams = @{ AutomationAccountName = 'AATest' ResourceGroupName = 'RGTest' Name = 'Test-Json' Parameters = $JsonParams }
Figyelje meg, hogy a JSON-fájl értékeit tartalmazó PowerShell-objektum értékét
Parameters
állítja be.Indítsa el a runbookot.
$job = Start-AzAutomationRunbook @RBParams
Következő lépések
- A szöveges runbookok előkészítéséhez lásd : Szöveges runbookok szerkesztése az Azure Automationben.
- Grafikus runbookok készítéséhez lásd : Szerzői grafikus runbookok az Azure Automationben.