Azure Otomasyonu 'nda değişkenleri yönetme

Değişken varlıklar, Otomasyon hesabınızdaki tüm runbook 'lar ve DSC yapılandırmalarının kullanabildiği değerlerdir. Bunları, PowerShell 'den, runbook içinden veya bir DSC yapılandırmasında Azure portal yönetebilirsiniz.

Otomasyon değişkenleri aşağıdaki senaryolar için yararlıdır:

  • Birden çok runbook veya DSC yapılandırması arasında bir değer paylaşma.

  • Aynı runbook veya DSC yapılandırmasından birden çok iş arasında bir değer paylaşma.

  • Portalda veya PowerShell komut satırından runbook veya DSC yapılandırmalarının kullandığı bir değeri yönetme. Örneğin, belirli bir VM adı listesi, belirli bir kaynak grubu, AD etki alanı adı ve daha fazlası gibi yaygın bir yapılandırma öğeleri kümesidir.

Azure Otomasyonu değişkenleri sürdürür ve bir runbook ya da DSC yapılandırması başarısız olsa bile bunları kullanılabilir hale getirir. Bu davranış, bir runbook veya DSC yapılandırmasının, daha sonra başka bir runbook tarafından veya bir sonraki çalıştırılışında aynı runbook veya DSC yapılandırması tarafından kullanılan bir değer ayarlamasına olanak tanır.

Azure Otomasyonu, her şifreli değişkeni güvenli bir şekilde depolar. Bir değişken oluşturduğunuzda, Azure Otomasyonu tarafından güvenli bir varlık olarak şifrelemeyi ve depolamayı belirtebilirsiniz. Değişkeni oluşturduktan sonra, değişkeni yeniden oluşturmadan şifreleme durumunu değiştiremezsiniz. Önceden şifrelenmeyen hassas verileri depolayan Otomasyon hesabı değişkenleri varsa, bunları silmeniz ve şifrelenmiş değişkenler olarak yeniden oluşturmanız gerekir. Bir bulut için Microsoft Defender önerisi Otomasyon hesabı değişkenleri' nda açıklandığı gibi tüm Azure Otomasyonu değişkenlerini şifreleyebilmelidir. Bu güvenlik önerilerinden hariç tutmak istediğiniz şifrelenmemiş değişkenlere sahipseniz, bkz. muafiyet kuralı oluşturmak için öneriler ve güvenli puandan bir kaynağı muaf tutma.

Not

Azure Otomasyonu 'nda güvenli varlıklar, kimlik bilgileri, sertifikalar, bağlantılar ve şifrelenmiş değişkenler içerir. Bu varlıklar, her Otomasyon hesabı için oluşturulan benzersiz bir anahtar kullanılarak Azure Otomasyonu 'nda şifrelenir ve depolanır. Azure Otomasyonu, anahtarı sistem tarafından yönetilen Key Vault depolar. Otomasyon, güvenli bir varlık depolamadan önce anahtarı Key Vault 'den yükler ve ardından varlığı şifrelemek için kullanır.

Değişken türleri

Azure portal bir değişken oluşturduğunuzda, portalın değişken değerini girmek için uygun denetimi görüntülemesi için açılan listeden bir veri türü belirtmeniz gerekir. Azure Otomasyonu 'nda bulunan değişken türleri şunlardır:

  • Dize
  • Tamsayı
  • DateTime
  • Boole
  • Null

Değişken, belirtilen veri türüyle sınırlı değil. farklı türde bir değer belirtmek istiyorsanız, Windows PowerShell kullanarak değişkeni ayarlamanız gerekir. Belirtirseniz Not defined , değişkenin değeri null olarak ayarlanır. Değeri set-AzAutomationVariable cmdlet 'i veya iç cmdlet ile ayarlamanız gerekir Set-AutomationVariable . Set-AutomationVariablerunbook 'larınızda, Azure korumalı alan ortamında veya Windows karma bir Runbook Worker üzerinde çalışması amaçlanan ' i kullanabilirsiniz.

Karmaşık bir değişken türü için değer oluşturmak veya değiştirmek için Azure portal kullanamazsınız. Ancak, Windows PowerShell kullanarak herhangi bir türde bir değer sağlayabilirsiniz. Karmaşık türler, PSObject türü PSCustomObjectyerine karmaşık nesne türü Için Newtonsoft. JSON. Linq. jproperty olarak alınır.

Bir dizi veya Hashtable oluşturup değişkenine kaydederek birden çok değeri tek bir değişkende saklayabilirsiniz.

Not

VM adı değişkenleri en fazla 80 karakter olabilir. Kaynak grubu değişkenleri en fazla 90 karakter olabilir. Bkz. Azure kaynakları Için adlandırma kuralları ve kısıtlamaları.

Değişkenlere erişmek için PowerShell cmdlet 'leri

Aşağıdaki tablodaki cmdlet 'ler, PowerShell ile otomasyon değişkenleri oluşturup yönetir. Bunlar az modüllerin bir parçası olarak sevk ederler.

Cmdlet Açıklama
Get-AzAutomationVariable Mevcut bir değişkenin değerini alır. Değer basit bir tür ise, aynı tür alınır. Karmaşık bir tür ise, bir PSCustomObject tür alınır. 1
New-AzAutomationVariable Yeni bir değişken oluşturur ve değerini ayarlar.
Remove-AzAutomationVariable Varolan bir değişkeni kaldırır.
Set-AzAutomationVariable Mevcut bir değişken için değeri ayarlar.

1 şifrelenen bir değişkenin değerini almak için bu cmdlet 'i kullanamazsınız. Bunu yapmanın tek yolu, Get-AutomationVariable bir runbook veya DSC yapılandırmasında iç cmdlet 'ini kullanmaktır. Örneğin, şifrelenmiş bir değişkenin değerini görmek için, değişkeni almak üzere bir runbook oluşturup çıkış akışına yazabilirsiniz:

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

Değişkenlere erişmek için iç cmdlet 'ler

Aşağıdaki tablodaki iç cmdlet 'ler, runbook 'larınızda ve DSC yapılandırmalarında değişkenlere erişmek için kullanılır. Bu cmdlet 'ler genel modülle birlikte gelir Orchestrator.AssetManagement.Cmdlets . Daha fazla bilgi için bkz. iç cmdlet 'ler.

İç cmdlet Description
Get-AutomationVariable Mevcut bir değişkenin değerini alır.
Set-AutomationVariable Mevcut bir değişken için değeri ayarlar.

Not

Name Get-AutomationVariable Bir RUNBOOK veya DSC yapılandırmasındaki cmdlet parametresindeki değişkenleri kullanmaktan kaçının. Bir değişkenin kullanımı, runbook 'lar ile otomasyon değişkenleri arasındaki bağımlılıkları tasarım zamanında bulmayı karmaşıklaştırır.

Değişkenlere erişmek için Python işlevleri

Aşağıdaki tablodaki işlevler, Python 2 ve 3 runbook 'ta değişkenlere erişmek için kullanılır. Python 3 runbook 'ları Şu anda önizleme aşamasındadır.

Python Işlevleri Description
automationassets.get_automation_variable Mevcut bir değişkenin değerini alır.
automationassets.set_automation_variable Mevcut bir değişken için değeri ayarlar.

Not

automationassetsVarlık işlevlerine erişmek Için Python runbook 'unun en üstündeki modülünü içeri aktarmanız gerekir.

Değişken oluşturma ve edinme

Not

Bir değişkenin şifrelemesini kaldırmak istiyorsanız, değişkeni silmeniz ve şifrelenmemiş olarak yeniden oluşturmanız gerekir.

Azure portal kullanarak bir değişken oluşturun ve alın

  1. Otomasyon hesabınızdan, sol taraftaki bölmede paylaşılan kaynaklar' ın altında değişkenler ' i seçin.
  2. Değişkenler sayfasında, değişken Ekle' yi seçin.
  3. Yeni değişken sayfasındaki seçenekleri doldurun ve sonra yeni değişkeni kaydetmek için Oluştur ' u seçin.

Not

Şifrelenmiş bir değişken kaydedildikten sonra portalda görüntülenemez. Yalnızca güncelleştirilmiş olabilir.

Windows PowerShell bir değişken oluşturun ve alın

Runbook veya DSC yapılandırmanız New-AzAutomationVariable Yeni bir değişken oluşturmak ve ilk değerini ayarlamak için cmdlet 'ini kullanır. Değişken şifrelenirse, çağrının parametresini kullanması gerekir Encrypted . Komut dosyası, kullanarak değişkenin değerini alabilir Get-AzAutomationVariable .

Not

Bir PowerShell betiği şifreli bir değer alamaz. Bunu yapmanın tek yolu, iç Get-AutomationVariable cmdlet 'ini kullanmaktır.

Aşağıdaki örnek, bir dize değişkeninin nasıl oluşturulacağını gösterir ve ardından değerini döndürür.

$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

Aşağıdaki örnek, karmaşık bir türe sahip bir değişken oluşturma ve ardından özelliklerini alma işlemlerinin nasıl yapılacağını gösterir. Bu durumda, Get-AzVM öğesinden bir sanal makine nesnesi, özelliklerinin bir alt kümesini belirtmek için kullanılır.

$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

Metinsel runbook örnekleri

Aşağıdaki örnek, metinsel bir runbook 'ta nasıl değişken ayarlanacağını ve alınacağını gösterir. Bu örnekte, NumberOfIterations ve numberOfRunnings adlı tamsayı değişkenlerinin oluşturulması ve samplemessage adlı bir dize değişkeni olduğunu varsaymaktadır.

$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)

Grafik runbook örnekleri

Grafik runbook'larında Get-AutomationVariable veya Set-AutomationVariable iç cmdlet'leri için etkinlikler değiştirilebilir. Grafik düzenleyicisinin Kitaplık bölmesindeki her bir değişkene sağ tıklar ve istediğiniz etkinliği seçersiniz.

Tuvale değişken ekleme

Aşağıdaki görüntüde, bir değişkeni grafik runbook'ta basit bir değerle güncelleştirmeye yönelik örnek etkinlikler yer almaktadır. Bu örnekte etkinliği tek bir Azure sanal makinesini alır ve bilgisayar Get-AzVM adını mevcut otomasyon dizesi değişkenine kaydeder. Kod çıkışta yalnızca tek bir nesne beklediğinizden bağlantının işlem hattı mı yoksa dizi mi olduğu önemli değildir.

Basit değişken ayarlama

Sonraki adımlar