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

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

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

  • Bir değeri birden çok runbook veya DSC yapılandırması arasında paylaşma.

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

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

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

Azure Otomasyonu şifrelenmiş her değişkeni güvenli bir şekilde depolar. Bir değişken oluşturduğunuzda, güvenli varlık olarak Azure Otomasyonu şifrelemesini ve depolamasını belirtebilirsiniz. Değişkeni oluşturduktan sonra, değişkeni yeniden oluşturmadan şifreleme durumunu değiştiremezsiniz. Henüz şifrelenmemiş hassas verileri depolayan Otomasyon hesabı değişkenleriniz varsa bunları silip şifrelenmiş değişkenler olarak yeniden oluşturmanız gerekir. Otomasyon hesabı değişkenlerinin şifrelenmesi gerektiği konusunda açıklandığı gibi tüm Azure Otomasyonu değişkenleri şifrelemek Bulut için Microsoft Defender bir öneridir. Bu güvenlik önerisinin dışında tutulmasını istediğiniz şifrelenmemiş değişkenleriniz varsa, bir muafiyet kuralı oluşturmak için bkz . Kaynağı önerilerden muaf tutma ve güvenlik puanı .

Dekont

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

Değişken türleri

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

  • String
  • Tamsayı
  • Tarih-Saat
  • Boolean
  • Boş

Değişken, belirtilen veri türüyle sınırlı değildir. Farklı türde bir değer belirtmek istiyorsanız, değişkeni Windows PowerShell kullanarak ayarlamanız gerekir. belirtirseniz Not defineddeğişkeninin değeri Null olarak ayarlanır. Değeri Set-AzAutomationVariable cmdlet'i veya iç Set-AutomationVariable cmdlet'i ile ayarlamanız gerekir. Azure korumalı alan ortamında veya bir Windows Karma Runbook Çalışanı üzerinde çalıştırılması amaçlanan runbook'larınızda öğesini kullanırsınız Set-AutomationVariable .

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

Dizi veya karma tablo oluşturup bunu değişkene kaydederek birden çok değeri tek bir değişkende depolayabilirsiniz.

Dekont

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şkenlerini oluşturur ve yönetir. Az modüllerinin bir parçası olarak göndermektedirler.

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

1 Şifrelenmiş bir değişkenin değerini almak için bu cmdlet'i kullanamazsınız. Bunun tek yolu, bir runbook veya DSC yapılandırmasında iç Get-AutomationVariable cmdlet'i kullanmaktır. Örneğin, şifrelenmiş bir değişkenin değerini görmek için, değişkeni almak ve ardından çıkış akışına yazmak için bir runbook oluşturabilirsiniz:

$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 tabloda yer alan iç cmdlet'ler runbook'larınızdaki ve DSC yapılandırmalarınızdaki değişkenlere erişmek için kullanılır. Bu cmdlet'ler genel modülüyle Orchestrator.AssetManagement.Cmdletsbirlikte gelir. Daha fazla bilgi için bkz . İç cmdlet'ler.

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

Dekont

Runbook veya DSC yapılandırmasında Name cmdlet parametresinde Get-AutomationVariable değişkenleri kullanmaktan kaçının. Bir değişkenin kullanılması, tasarım zamanında runbook'lar ve Otomasyon değişkenleri arasındaki bağımlılıkların bulunmasını karmaşıklaştırabilir.

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

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

Python İşlevleri Tanım
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.

Dekont

Varlık işlevlerine automationassets erişmek için Python runbook'unuzun en üstündeki modülü içeri aktarmanız gerekir.

Değişken oluşturma ve alma

Dekont

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

Azure portalını kullanarak değişken oluşturma ve alma

  1. Otomasyon hesabınızdan sol 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 tamamlayın ve oluştur'u seçerek yeni değişkeni kaydedin.

Dekont

Şifrelenmiş bir değişkeni kaydettikten sonra portalda görüntülenemez. Yalnızca güncelleştirilebilir.

Windows PowerShell'de değişken oluşturma ve alma

Runbook veya DSC yapılandırmanız cmdlet'ini New-AzAutomationVariable kullanarak yeni bir değişken oluşturur ve ilk değerini ayarlar. Değişken şifrelenirse çağrısı parametresini Encrypted kullanmalıdır. Betiğiniz kullanarak Get-AzAutomationVariabledeğişkenin değerini alabilir.

Dekont

PowerShell betiği şifrelenmiş bir değeri alamaz. Bunu gerçekleştirmenin tek yolu iç Get-AutomationVariable cmdlet'ini kullanmaktır.

Aşağıdaki örnekte bir dize değişkeninin nasıl oluşturulacağı ve ardından değerinin nasıl döndürüleceği gösterilmektedir.

$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 örnekte, karmaşık bir türe sahip bir değişkenin nasıl oluşturulacağı ve ardından özelliklerinin nasıl alınacağı gösterilmektedir. Bu durumda, Get-AzVM'deki bir sanal makine nesnesi, özelliklerinin bir alt kümesini belirtirken 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

Metin runbook'u örnekleri

Aşağıdaki örnekte, bir metin runbook'unda değişken ayarlama ve alma işlemi gösterilmektedir. Bu örnekte numberOfIterations ve numberOfRunnings adlı tamsayı değişkenlerinin ve sampleMessage adlı bir dize değişkeninin oluşturulduğu varsayılı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'ta, Get-AutomationVariable veya Set-AutomationVariable iç cmdlet'leri için etkinlikler ekleyebilirsiniz. Grafik düzenleyicinin Kitaplık bölmesindeki her değişkene sağ tıklayıp istediğiniz etkinliği seçmeniz gerekir.

Add variable to canvas

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

Set simple variable

Sonraki adımlar