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:
- String
- Celé číslo
- DateTime
- Logická hodnota
- 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
- V levém podokně účtu Automation vyberte v části Sdílené prostředky proměnné.
- Na stránce Proměnné vyberte Přidat proměnnou.
- 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.
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.
Další kroky
Další informace o rutinách používaných pro přístup k proměnným najdete v tématu Správa modulů ve službě Azure Automation.
Obecné informace o runboocích najdete v tématu Spouštění runbooků ve službě Azure Automation.
Podrobnosti o konfiguracích DSC najdete v přehledu služby Azure Automation State Configuration.