Správa proměnných ve službě Azure Automation

Proměnné assety jsou hodnoty, které jsou k dispozici pro všechny runbooky a konfigurace DSC ve vašem účtu Automation. Můžete je spravovat z webu Azure Portal, z PowerShellu, v rámci runbooku nebo v konfiguraci DSC.

Proměnné automatizace jsou užitečné pro následující scénáře:

  • Sdílení hodnoty mezi několika runbooky nebo konfigurací DSC

  • Sdílení hodnoty mezi více úlohami ze stejné konfigurace runbooku nebo DSC

  • Správa hodnoty používané runbooky nebo konfiguracemi DSC z portálu nebo z příkazového řádku PowerShellu Příkladem je sada běžných položek konfigurace, jako je konkrétní seznam názvů virtuálních počítačů, konkrétní skupina prostředků, název domény AD a další.

Azure Automation udržuje proměnné a zpřístupňuje je i v případě, že selže konfigurace runbooku nebo DSC. Toto chování umožňuje jedné konfiguraci runbooku nebo DSC nastavit hodnotu, kterou pak používá jiný runbook, nebo stejnou konfigurací runbooku nebo DSC při příštím spuštění.

Azure Automation ukládá každou šifrovanou proměnnou bezpečně. Při vytváření proměnné můžete jako zabezpečený prostředek zadat jeho šifrování a úložiště službou Azure Automation. Po vytvoření proměnné nemůžete změnit její stav šifrování bez opětovného vytvoření proměnné. Pokud máte proměnné účtu Automation, které ukládají citlivá data, která ještě nejsou šifrovaná, musíte je odstranit a znovu vytvořit jako šifrované proměnné. Doporučení Microsoft Defenderu pro cloud je šifrovat všechny proměnné Azure Automation, jak je popsáno v proměnných účtu Automation. Pokud máte nešifrované proměnné, které chcete z tohoto doporučení zabezpečení vyloučit, přečtěte si téma Vyloučení prostředku z doporučení a skóre zabezpečení a vytvořte pravidlo výjimky.

Poznámka:

Mezi zabezpečené prostředky ve službě Azure Automation patří přihlašovací údaje, certifikáty, připojení a šifrované proměnné. Tyto prostředky se šifrují a ukládají ve službě Azure Automation pomocí jedinečného klíče, který se vygeneruje pro každý účet Automation. Azure Automation tento klíč ukládá ve službě Key Vault spravované systémem. Před uložením zabezpečeného prostředku služba Automation načte klíč ze služby Key Vault a pak ho použije k šifrování prostředku.

Typy proměnné

Když vytvoříte proměnnou pomocí webu Azure Portal, musíte zadat datový typ z rozevíracího seznamu, aby portál mohl zobrazit příslušný ovládací prvek pro zadání hodnoty proměnné. V Azure Automation jsou k dispozici následující typy proměnných:

  • Řetězec
  • Integer
  • DateTime
  • Logické
  • Null

Proměnná není omezena na zadaný datový typ. Pokud chcete zadat hodnotu jiného typu, musíte proměnnou nastavit pomocí Windows PowerShellu. Pokud určíte Not defined, hodnota proměnné je nastavena na hodnotu Null. Hodnotu musíte nastavit pomocí rutiny Set-AzAutomationVariable nebo interní Set-AutomationVariable rutiny. Použijete Set-AutomationVariable v runboocích, které jsou určené ke spuštění v prostředí sandboxu Azure nebo v procesu Hybrid Runbook Worker pro Windows.

Azure Portal nemůžete použít k vytvoření nebo změně hodnoty komplexního typu proměnné. Pomocí Windows PowerShellu ale můžete zadat hodnotu libovolného typu. Komplexní typy se načítají jako Newtonsoft.Json.Linq.JProperty pro komplexní typ objektu místo typu PSObject PSCustomObject.

Do jedné proměnné můžete uložit více hodnot tak, že vytvoříte matici nebo hashovací tabulku a uložíte ji do proměnné.

Poznámka:

Proměnné názvů virtuálních počítačů můžou být maximálně 80 znaků. Proměnné skupiny prostředků můžou mít maximálně 90 znaků. Viz pravidla a omezení pojmenování prostředků Azure.

Rutiny PowerShellu pro přístup k proměnným

Rutiny v následující tabulce vytvářejí a spravují proměnné Automation pomocí PowerShellu. Dodávají se jako součást modulů Az.

Rutina Popis
Get-AzAutomationVariable Načte hodnotu existující proměnné. Pokud je hodnota jednoduchý typ, načte se stejný typ. Pokud se jedná o komplexní typ, načte PSCustomObject se typ. 1
New-AzAutomationVariable Vytvoří novou proměnnou a nastaví její hodnotu.
Remove-AzAutomationVariable Odebere existující proměnnou.
Set-AzAutomationVariable Nastaví hodnotu existující proměnné.

1 Tuto rutinu nelze použít k načtení hodnoty šifrované proměnné. Jediným způsobem, jak to udělat, je použití interní Get-AutomationVariable rutiny v konfiguraci runbooku nebo DSC. Pokud chcete například zobrazit hodnotu zašifrované proměnné, můžete vytvořit runbook, který proměnnou získá a pak ji zapíše do výstupního datového proudu:

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

Interní rutiny pro přístup k proměnným

Interní rutiny v následující tabulce slouží k přístupu k proměnným v runboocích a konfiguracích DSC. Tyto rutiny jsou součástí globálního modulu Orchestrator.AssetManagement.Cmdlets. Další informace najdete v tématu Interní rutiny.

Interní rutina Popis
Get-AutomationVariable Načte hodnotu existující proměnné.
Set-AutomationVariable Nastaví hodnotu existující proměnné.

Poznámka:

Nepoužívejte proměnné v parametru Name rutiny v konfiguraci runbooku Get-AutomationVariable nebo DSC. Použití proměnné může komplikovat zjišťování závislostí mezi runbooky a proměnnými Automation v době návrhu.

Funkce Pythonu pro přístup k proměnným

Funkce v následující tabulce slouží k přístupu k proměnným v runbooku Python 2 a 3. Runbooky Pythonu 3 jsou aktuálně ve verzi Preview.

Funkce Pythonu Popis
automationassets.get_automation_variable Načte hodnotu existující proměnné.
automationassets.set_automation_variable Nastaví hodnotu existující proměnné.

Poznámka:

Pokud chcete získat přístup k funkcím assetu, musíte modul naimportovat automationassets v horní části runbooku Pythonu.

Vytvoření a získání proměnné

Poznámka:

Pokud chcete odebrat šifrování proměnné, musíte proměnnou odstranit a znovu ji vytvořit jako nezašifrovanou.

Vytvoření a získání proměnné pomocí webu Azure Portal

  1. V levém podokně účtu Automation vyberte v části Sdílené prostředky proměnné.
  2. Na stránce Proměnné vyberte Přidat proměnnou.
  3. Dokončete možnosti na stránce Nová proměnná a pak vyberte Vytvořit a uložte novou proměnnou.

Poznámka:

Jakmile uložíte zašifrovanou proměnnou, nedá se zobrazit na portálu. Dá se aktualizovat jenom.

Vytvoření a získání proměnné ve Windows PowerShellu

Konfigurace runbooku nebo DSC pomocí rutiny New-AzAutomationVariable vytvoří novou proměnnou a nastaví její počáteční hodnotu. Pokud je proměnná zašifrovaná, volání by mělo použít Encrypted parametr. Skript může načíst hodnotu proměnné pomocí Get-AzAutomationVariable.

Poznámka:

Skript PowerShellu nemůže načíst zašifrovanou hodnotu. Jediným způsobem, jak to udělat, je použít interní Get-AutomationVariable rutinu.

Následující příklad ukazuje, jak vytvořit řetězcovou proměnnou a vrátit její hodnotu.

$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

Následující příklad ukazuje, jak vytvořit proměnnou se složitým typem a pak načíst její vlastnosti. V tomto případě se objekt virtuálního počítače z get-AzVM používá k určení podmnožina jeho vlastností.

$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říklady textových runbooků

Následující příklad ukazuje, jak nastavit a načíst proměnnou v textovém runbooku. Tento příklad předpokládá vytvoření celočíselné proměnné s názvem numberOfIterations a numberOfRunnings a řetězcovou proměnnou s názvem sampleMessage.

$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říklady grafických runbooků

V grafickém runbooku můžete přidat aktivity pro interní rutiny Get-AutomationVariable nebo Set-AutomationVariable. Stačí kliknout pravým tlačítkem na každou proměnnou v podokně Knihovny grafického editoru a vybrat požadovanou aktivitu.

Add variable to canvas

Následující obrázek ukazuje ukázkové aktivity, které aktualizují proměnnou jednoduchou hodnotou v grafickém runbooku. V tomto příkladu aktivita načte Get-AzVM jeden virtuální počítač Azure a uloží název počítače do existující proměnné řetězce automation. Nezáleží na tom, jestli je propojení kanálem nebo sekvencí , protože kód ve výstupu očekává pouze jeden objekt.

Set simple variable

Další kroky