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ı .
Not
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ı
- DateTime
- 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 defined
değ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.
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şkenlerini oluşturur ve yönetir. Az modüllerinin bir parçası olarak göndermektedirler.
Cmdlet | Açıklama |
---|---|
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.Cmdlets
birlikte gelir. Daha fazla bilgi için bkz . İç cmdlet'ler.
İç Cmdlet | Açıklama |
---|---|
Get-AutomationVariable |
Mevcut bir değişkenin değerini alır. |
Set-AutomationVariable |
Mevcut bir değişken için değeri ayarlar. |
Not
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 | Açıklama |
---|---|
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
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
Not
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
- Otomasyon hesabınızdan sol bölmede Paylaşılan Kaynaklar'ın altında Değişkenler'i seçin.
- Değişkenler sayfasında Değişken ekle'yi seçin.
- Yeni Değişken sayfasındaki seçenekleri tamamlayın ve oluştur'u seçerek yeni değişkeni kaydedin.
Not
Ş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-AzAutomationVariable
değişkenin değerini alabilir.
Not
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.
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.
Sonraki adımlar
Değişkenlere erişmek için kullanılan cmdlet'ler hakkında daha fazla bilgi edinmek için bkz. Azure Otomasyonu'de modülleri yönetme.
Runbook'lar hakkında genel bilgi için bkz. Azure Otomasyonu'de Runbook yürütme.
DSC yapılandırmalarının ayrıntıları için bkz. Azure Otomasyonu Durum Yapılandırmasına genel bakış.