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 -Karakterlánc
- Security.SecureString
- INT32
-Logikai
-Datetime
-Tömb
- Collections.Hashtable
- Management.Automation.SwitchParameter
PowerShell-munkafolyamat -Karakterlánc
- Security.SecureString
- INT32
-Logikai
-Datetime
-Tömb
- Collections.Hashtable
- Management.Automation.SwitchParameter
Grafikus PowerShell -Karakterlánc
- INT32
- INT64
-Logikai
-Decimális
-Datetime
-Objektum
Python -Karakterlánc

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.

Property Ismertetés
Típus Szükséges. A paraméter értékének adattípusa várható. Bármely .NET-típus érvényes.
Name 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.
Default value 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).

Automation PowerShell Workflow

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

Megjegyzé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.

  1. Jelölje ki a grafikus runbookot a Runbookok lapon, majd kattintson a Szerkesztés gombra.

  2. 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.

    Automation graphical runbook

  3. 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.

    Add new input

  4. 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
  5. A paraméterek megtekintése a Bemeneti és kimeneti vezérlőben.

  6. Kattintson ismét az OK gombra, majd a Mentés gombra.

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

Megjegyzé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 é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.

Start using the portal

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.

Megjegyzé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
    

Megjegyzés:

Amikor PowerShell-parancsmagokkal indít el egy runbookot, a rendszer létrehoz egy alapértelmezett paramétert MicrosoftApplicationManagementStartedByaz é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 és resourceGroupName é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 VMNameresourceGroupName 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.

Test and assign parameters

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.

Schedule and assign parameters

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.

Create webhook and assign parameters

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.

WebhookData parameter

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 néven 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:

  1. A 10. sorból távolítsa el $AzureContext = (Connect-AzAccount -Identity).contexta
  2. Cserélje le a $AzureContext = (Connect-AzAccount -Identity -AccountId <ClientId>).context
  3. 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.

  1. 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
    

    Megjegyzés:

    PowerShell-runbookok esetén, Add-AzAccount és Add-AzureRMAccount aliasok a következőhöz Connect-AzAccount: . Vegye figyelembe, hogy ezek az aliasok nem érhetők el grafikus runbookokhoz. A grafikus runbookok csak önmagukat használhatják Connect-AzAccount .

  2. 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
    
  3. Alakítsa át a sztring tartalmát $json PowerShell-objektummá.

    $JsonParams = @{"json"=$json}
    
  4. 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.

  5. Indítsa el a runbookot.

    $job = Start-AzAutomationRunbook @RBParams
    

További lépések