Azure Otomasyonu İşlem Otomasyonu özelliği, aşağıdaki tabloda tanımlandığı gibi çeşitli runbook türlerini destekler.
| Türü |
Açıklama |
PowerShell (önerilen) |
Windows PowerShell betiğini temel alan metin runbook'u. Şu anda desteklenen sürümler PowerShell 7.6, PowerShell 7.4 ve PowerShell 5.1'dir.
PowerShell 7.1 ve PowerShell 7.2 artık ana ürün PowerShell tarafından desteklenmediğinden, PowerShell 7.6 veya PowerShell 7.4 gibi uzun vadeli desteklenen sürümler için çalışma kitapları oluşturun. |
|
PowerShell İş Akışı |
Windows PowerShell İş Akışı betiğini temel alan metin runbook'u. |
Piton (önerilen) |
Python betiğini temel alan metin runbook'u. Şu anda desteklenen sürüm Python 3.10'dur.
Python 2.7 ve Python 3.8 artık üst ürün Python tarafından desteklenmediğinden Python 3.10'da runbook'lar oluşturmanızı öneririz. |
|
Grafik |
Windows PowerShell'i temel alan grafiksel çalışma kitabı, Azure portalındaki grafik düzenleyicide tamamen oluşturulmuş ve düzenlenmiştir. |
|
Grafik PowerShell İş Akışı |
Windows PowerShell İş Akışı'nı temel alan grafik runbook, Azure portalındaki grafik düzenleyicide tamamen oluşturulmuş ve düzenlenmiştir. |
İşlem otomasyonu ortamı hakkında bilgi edinmek için bkz. Azure Otomasyonu'nda Runbook yönetimi.
Not
Azure Otomasyonu, sırasıyla üst ürünler, PowerShell ve Python tarafından yayımlanan zaman çizelgelerine uygun olarak PowerShell ve Python dil sürümlerinin destek yaşam döngüsünü izler. Desteklenen dil sürümleriyle runbook'ları kullanmanızı öneririz.
Belirli bir runbook için hangi türün kullanılacağını belirlerken aşağıdaki noktaları dikkate alın:
- Runbook'ları grafikten metin türüne veya başka bir yolla dönüştüremezsiniz.
- Farklı türlerdeki runbook'ları alt runbook olarak kullanırken sınırlamalar vardır. Daha fazla bilgi için bkz Azure Otomasyonu'nda alt çalıştırma kitapları.
PowerShell runbook'ları
PowerShell runbook'ları Windows PowerShell'i temel alır. Azure portalındaki metin düzenleyicisini kullanarak runbook'un kodunu doğrudan düzenlersiniz. Ayrıca herhangi bir çevrimdışı metin düzenleyicisini kullanabilir ve runbook'u Azure Otomasyonu içeri aktarabilirsiniz.
PowerShell sürümü, belirtilen Çalışma Zamanı Sürümü tarafından belirlenir.
Aynı Azure sandbox ve Hibrit Runbook Çalışanı, farklı çalışma zamanı sürümlerini hedefleyen birden çok PowerShell runbook'unu eşzamanlı olarak yürütebilir. PowerShell 7.6 ve PowerShell 7.4 çalışma zamanı sürümleri tüm bölgelerde hem bulut hem de hibrit işler için desteklenmektedir.
Not
- Runbook yürütme sırasında Çalışma ZamanıSürümü'ünü 7.4 olarak seçerseniz, 7.4 çalışma zamanı sürümünü hedefleyen PowerShell modülleri kullanılır ve Çalışma Zamanı Sürümü'ni5.1 olarak seçerseniz, 5.1 çalışma zamanı sürümünü hedefleyen PowerShell modülleri kullanılır.
Modüller için doğru Çalışma Zamanı Sürümünü seçtiğinizden emin olun.
Örneğin: Çalışma Zamanı Sürüm7.4'te bir SharePoint otomasyon senaryosu için runbook yürütüyorsanız modülü Çalışma Zamanı Sürüm7.4'te içeri aktarın; Çalışma Zamanı Sürüm5.1'de bir SharePoint otomasyon senaryosu için runbook yürütüyorsanız modülü Çalışma Zamanı Sürüm5.1'de içeri aktarın.
Avantajlar
- PowerShell İş Akışı'nın diğer karmaşıklıkları olmadan PowerShell koduyla tüm karmaşık mantığı uygulayın.
- Çalıştırmadan önce derlenmiş olmaları gerekmeyen PowerShell İş Akışı runbook'larından daha hızlı başlayın.
- Hem Windows hem de Linux için Azure'da ve Karma Runbook Çalışanlarında çalıştırın.
Sınırlamalar ve Bilinen sorunlar
PowerShell runbook'larıyla ilgili geçerli sınırlamalar ve bilinen sorunlar şunlardır:
Sınırlamalar PowerShell 7.6, çalışma zamanı ortamı deneyiminde mevcuttur.
PowerShell 7.6 çalışma zamanı sürümünde, aktarılan modüller için modül etkinlikleri çıkarılmaz.
PowerShell 7.x iş akışlarını desteklemez. Daha fazla bilgi için bkz. PowerShell iş akışı.
PowerShell 7.x şu anda imzalı runbook'ları desteklememektedir.
Kaynak kontrol entegrasyonu PowerShell 7.6'yı desteklemiyor. Ayrıca, kaynak kontrolündeki PowerShell 7.6 çalışma kitapları Otomasyon hesabında Runtime 5.1 olarak oluşturulur.
Az module 15.1.0 varsayılan olarak kuruludur. Azure portalı veya API kullanılarak Az sürümü yeniden yapılandırıldıktan sonra seçilen Az modülü sürümünün bileşen modüllerinin tam listesi gösterilir.
İçe aktarılan PowerShell 7.6 modülü iş yürütme sırasında doğrulanır. Başarılı bir iş yürütme için seçilen modüle yönelik tüm bağımlılıkların da içeri aktarıldığından emin olun.
Azure Otomasyonu runbooklar -Credential ile Start-Job desteklemiyor.
Azure tüm PowerShell giriş parametrelerini desteklemez.
Daha fazla bilgi edinin.
Bilinen sorunlar
gibi C:\modules iç dosya yollarına bağımlılık alan runbook'lar hizmet arka uç altyapısındaki değişikliklerden dolayı başarısız olabilir. İç dosya yollarında bağımlılık olmadığından emin olmak için runbook kodunu değiştirin ve gerekli modül bilgilerini almak için Get-ChildItem kullanın.
Get-AzStorageAccount cmdlet bir hatayla başarısız olabilir: Get-AzStorageAccount komutu, Az.Storage modülünde bulundu fakat modül yüklenemedi.
Alt betiklerin .\child-runbook.ps1 kullanılarak yürütülmesi desteklenmez.
Geçici çözüm: Üst runbook'tan başka bir runbook başlatmak için Start-AutomationRunbook (iç cmdlet) veya Start-AzAutomationRunbook (Az.Automation modülünden) kullanın.
ExchangeOnlineManagement modülü sürümü: 3.0.0 veya üzerini kullandığınızda hatayla karşılaşabilirsiniz. Sorunu çözmek için PowerShellGet ve PackageManagement modüllerini açıkça karşıya yüklediğinizden emin olun.
Az.Automation Modülü'nde New-AzAutomationVariable cmdlet'i kullanarak nesne türünde bir değişkeni karşıya yüklediğinizde, işlem beklendiği gibi çalışmaz.
Geçici çözüm: ConvertTo-Json cmdlet'ini kullanarak nesneyi bir JSON dizesine dönüştürün ve ardından değeri JSON dizesi olan değişkeni karşıya yükleyin. Bu geçici çözüm, Azure Otomasyonu ortamı içindeki değişkenin JSON dizesi olarak düzgün işlenmesini sağlar.
Örnek - Azure VM'ler hakkında bilgi saklayan bir PowerShell nesnesi oluşturun
azurepowershell
# Retrieve Azure virtual machines with status information for the 'northeurope' region
$AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"}
$VMstopatch = @($AzVM).Id
# Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch
# Convert the object to a JSON string
$jsonString = $VMstopatch | ConvertTo-Json
# Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString
Sınırlamalar
Not
PowerShell 7.4 çalışma zamanı sürümü, tüm bölgelerde hem bulut hem de hibrit işleri destekler.
- PowerShell 7.4 yalnızca çalışma zamanı ortamı deneyiminde kullanılabilir.
- PowerShell 7.4 çalışma zamanı sürümü için modül etkinlikleri içeri aktarılan modüller için ayıklanmamıştır. Runbook yazma deneyimini basitleştirmek için VS Code için Azure Otomasyonu uzantısını kullanın.
- PowerShell 7.x iş akışlarını desteklemez. Daha fazla bilgi için daha fazla ayrıntı için bkz . PowerShell iş akışı .
- PowerShell 7.x şu anda imzalı runbook'ları desteklememektedir.
- Kaynak denetimi tümleştirmesi PowerShell 7.4'i desteklemez. Ayrıca, kaynak denetimindeki PowerShell 7.4 komut dosyaları Otomasyon hesabında Runtime 5.1 olarak oluşturulur.
- Az modülü 12.3.0 varsayılan olarak yüklenir. Azure portalı veya API kullanılarak Az sürümü yeniden yapılandırıldıktan sonra seçilen Az modülü sürümünün bileşen modüllerinin tam listesi gösterilir.
- İçeri aktarılan PowerShell 7.4 modülü, iş yürütme sırasında doğrulanır. Başarılı bir iş yürütme için seçilen modüle yönelik tüm bağımlılıkların da içeri aktarıldığından emin olun.
- Azure runbook
Start-Job ve -credential ile desteklenmez.
- Azure tüm PowerShell giriş parametrelerini desteklemez.
Daha fazla bilgi edinin.
Bilinen sorunlar
gibi C:\modules iç dosya yollarına bağımlılık alan runbook'lar hizmet arka uç altyapısındaki değişikliklerden dolayı başarısız olabilir. İç dosya yollarında bağımlılık olmadığından emin olmak için runbook kodunu değiştirin ve gerekli modül bilgilerini almak için Get-ChildItem kullanın.
Get-AzStorageAccount cmdlet bir hatayla başarısız olabilir: Get-AzStorageAccount komutu, Az.Storage modülünde bulundu fakat modül yüklenemedi.
Alt betiklerin .\child-runbook.ps1 kullanılarak yürütülmesi desteklenmez.
Geçici çözüm: Üst runbook'tan başka bir runbook başlatmak için Start-AutomationRunbook (iç cmdlet) veya Start-AzAutomationRunbook (Az.Automation modülünden) kullanın.
ExchangeOnlineManagement modülü sürümü: 3.0.0 veya üzerini kullandığınızda hatayla karşılaşabilirsiniz. Sorunu çözmek için PowerShellGet ve PackageManagement modüllerini açıkça karşıya yüklediğinizden emin olun.
Az.Automation Modülü'nde New-AzAutomationVariable cmdlet'i kullanarak nesne türünde bir değişkeni karşıya yüklediğinizde, işlem beklendiği gibi çalışmaz.
Geçici çözüm: ConvertTo-Json cmdlet'ini kullanarak nesneyi bir JSON dizesine dönüştürün ve ardından değeri JSON dizesi olan değişkeni karşıya yükleyin. Bu geçici çözüm, Azure Otomasyonu ortamı içindeki değişkenin JSON dizesi olarak düzgün işlenmesini sağlar.
Örnek - Azure VM'leri çevresinde depolanan bilgileri içeren bir PowerShell nesnesi oluşturma
azurepowershell
# Retrieve Azure virtual machines with status information for the 'northeurope' region
$AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"}
$VMstopatch = @($AzVM).Id
# Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch
# Convert the object to a JSON string
$jsonString = $VMstopatch | ConvertTo-Json
# Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString
Sınırlamalar
Not
PowerShell 7.2 sürümü artık üst ürün PowerShell tarafından desteklenmiyor.
- PowerShell 7.2 çalışma zamanı sürümü için modül etkinlikleri içeri aktarılan modüller için ayıklanmamıştır.
- PowerShell 7.x iş akışlarını desteklemez. Daha fazla bilgi için daha fazla ayrıntı için bkz . PowerShell iş akışı .
- PowerShell 7.x şu anda imzalı runbook'ları desteklememektedir.
- Kaynak denetimi tümleştirmesi PowerShell 7.2'i desteklemez. Ayrıca, kaynak denetimindeki PowerShell 7.2 çalışma kitapları otomasyon hesabında Çalışma Zamanı 5.1 olarak oluşturulur.
- Az modülü 8.3.0 varsayılan olarak yüklenir. Azure portalı veya API kullanılarak Az sürümü yeniden yapılandırıldıktan sonra seçilen Az modülü sürümünün bileşen modüllerinin tam listesi gösterilir.
- İçeri aktarılan PowerShell 7.2 modülü, iş yürütme sırasında doğrulanır. Başarılı bir iş yürütme için seçilen modüle yönelik tüm bağımlılıkların da içeri aktarıldığından emin olun.
- Azure runbook
Start-Job ve -credential ile desteklenmez.
- Azure tüm PowerShell giriş parametrelerini desteklemez.
Daha fazla bilgi edinin.
Bilinen sorunlar
gibi C:\modules iç dosya yollarına bağımlılık alan runbook'lar hizmet arka uç altyapısındaki değişikliklerden dolayı başarısız olabilir. İç dosya yollarında bağımlılık olmadığından emin olmak için runbook kodunu değiştirin ve gerekli modül bilgilerini almak için Get-ChildItem kullanın.
Get-AzStorageAccount cmdlet bir hatayla başarısız olabilir: Get-AzStorageAccount komutu, Az.Storage modülünde bulundu fakat modül yüklenemedi.
Alt betiklerin .\child-runbook.ps1 kullanılarak yürütülmesi desteklenmez.
Geçici çözüm: Üst runbook'tan başka bir runbook başlatmak için Start-AutomationRunbook (iç cmdlet) veya Start-AzAutomationRunbook (Az.Automation modülünden) kullanın.
ExchangeOnlineManagement modülü sürümü: 3.0.0 veya üzerini kullandığınızda hatayla karşılaşabilirsiniz. Sorunu çözmek için PowerShellGet ve PackageManagement modüllerini açıkça karşıya yüklediğinizden emin olun.
Az.Automation Modülü'nde New-AzAutomationVariable cmdlet'i kullanarak nesne türünde bir değişkeni karşıya yüklediğinizde, işlem beklendiği gibi çalışmaz.
Geçici çözüm: ConvertTo-Json cmdlet'ini kullanarak nesneyi bir JSON dizesine dönüştürün ve ardından değeri JSON dizesi olan değişkeni karşıya yükleyin. Bu geçici çözüm, Azure Otomasyonu ortamı içindeki değişkenin JSON dizesi olarak düzgün işlenmesini sağlar.
Örnek - Azure VM'leri çevresinde depolanan bilgileri içeren bir PowerShell nesnesi oluşturma
azurepowershell
# Retrieve Azure virtual machines with status information for the 'northeurope' region
$AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"}
$VMstopatch = @($AzVM).Id
# Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch
# Convert the object to a JSON string
$jsonString = $VMstopatch | ConvertTo-Json
# Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString
Sınırlamalar
Bilinen sorunlar
gibi C:\modules iç dosya yollarına bağımlılık alan runbook'lar hizmet arka uç altyapısındaki değişikliklerden dolayı başarısız olabilir. İç dosya yollarında bağımlılık olmadığından emin olmak için runbook kodunu değiştirin ve gerekli modül bilgilerini almak için Get-ChildItem kullanın.
Örnek betik
# Get information about module "Microsoft.Graph.Authentication"
$ModuleName = "Microsoft.Graph.Authentication"
$NewPath = "C:\usr\src\PSModules\$ModuleName"
$OldPath = "C:\Modules\User\$ModuleName"
if (Test-Path -Path $NewPath -PathType Container) {
Get-ChildItem -Path $NewPath
} elseif (Test-Path -Path $OldPath -PathType Container) {
Get-ChildItem -Path $OldPath
} else {
Write-Output "Module $ModuleName not present."
}
# Getting the path to the Temp folder, if needed.
$tmp = $env:TEMP
Get-AzStorageAccount cmdlet bir hatayla başarısız olabilir: Get-AzStorageAccount komutu, Az.Storage modülünde bulundu fakat modül yüklenemedi.
PowerShell çalışma kitapları, şifrelenmemiş ve null değere sahip değişken varlıkları geri alamaz.
PowerShell runbookları, isminde *~* bulunan bir değişken varlığını alamaz.
PowerShell çalışma kitabındaki bir döngüdeki Get-Process işlemi yaklaşık 80 yinelemeden sonra kilitlenebilir.
PowerShell runbook'u bir kerede çıkış akışına büyük miktarda veri yazmaya çalışırsa başarısız olabilir. Genellikle, runbook'un çıktısında yalnızca büyük nesnelerle çalışmak için gereken bilgilerin yer almasını sağlayarak bu soruna geçici bir çözüm getirebilirsiniz. Örneğin, herhangi bir sınırlama olmaksızın Get-Process kullanmak yerine, yalnızca gerekli parametrelerin bulunduğu Get-Process | Select ProcessName, CPU gibi cmdlet çıktısını alabilirsiniz.
ExchangeOnlineManagement modülü sürümü: 3.0.0 veya üzerini kullandığınızda hatayla karşılaşabilirsiniz. Sorunu çözmek için PowerShellGet ve PackageManagement modüllerini de açıkça yüklediğinizden emin olun.
Az.Accounts modülünü 2.12.3 veya daha yeni bir sürümle içeri aktarırsanız, PowerShell 5.1 runbook'larının modülün bu sürümüne bağımlılığı varsa Newtonsoft.Json v10 modülünü açıkça içeri aktardığınızdan emin olun. Bu sorunun geçici çözümü PowerShell 7.2 runbook'larını kullanmaktır.
Az.Automation Modülü'nde New-AzAutomationVariable cmdlet'i kullanarak nesne türünde bir değişkeni karşıya yüklediğinizde, işlem beklendiği gibi çalışmaz.
Geçici çözüm: ConvertTo-Json cmdlet'ini kullanarak nesneyi bir JSON dizesine dönüştürün ve ardından değeri JSON dizesi olan değişkeni karşıya yükleyin. Bu geçici çözüm, Azure Otomasyonu ortamı içindeki değişkenin JSON dizesi olarak düzgün işlenmesini sağlar.
Örnek - Azure VM'leri çevresinde depolanan bilgileri içeren bir PowerShell nesnesi oluşturma
# Retrieve Azure virtual machines with status information for the 'northeurope' region
$AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"}
$VMstopatch = @($AzVM).Id
# Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch
# Convert the object to a JSON string
$jsonString = $VMstopatch | ConvertTo-Json
# Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString
Sınırlamalar
-
PowerShell 7.1 artık üst ürün PowerShell tarafından desteklenmiyor. Uzun süreli destek için PowerShell 7.4'te yeni runbook'lar oluşturmanızı ve güncel olmayan runbook'ları güncelleştirmenizi öneririz.
- Azure Otomasyonu iç PowerShell cmdlet'leri bir Linux Karma Runbook Çalışanında desteklenmez. Otomasyon hesabı paylaşılan kaynaklarına (varlıklar) ve işlevlerine erişmek için PowerShell runbook'unuzun başında
automationassets modülünü içeri aktarmanız gerekir.
- PowerShell 7 çalışma zamanı sürümünde, içeri aktarılan modüller için modül etkinlikleri ayıklanmaz.
-
PSCredential runbook parametre türü PowerShell 7 çalışma zamanı sürümünde desteklenmez.
- PowerShell 7.x iş akışlarını desteklemez. Daha fazla bilgi için bkz . PowerShell İş Akışı .
- PowerShell 7.x şu anda imzalı runbook'ları desteklememektedir.
- Kaynak denetimi tümleştirmesi PowerShell 7.1'i (önizleme) desteklemez. Kaynak denetiminde bulunan PowerShell 7.1 (önizleme) runbook'ları ise Otomasyon hesabında Çalışma Zamanı 5.1 olarak oluşturulur.
- PowerShell 7.1 modül yönetimi,
Get-AzAutomationModule cmdlet'leri aracılığıyla desteklenmez.
- Runbook, giriş değeri '.' karakterini içerdiğinde, herhangi bir günlük izlemesi olmadan başarısız olur.
- Azure runbook
Start-Job ve -credential ile desteklenmez.
- Azure tüm PowerShell giriş parametrelerini desteklemez.
Daha fazla bilgi edinin.
Bilinen sorunlar
gibi C:\modules iç dosya yollarına bağımlılık alan runbook'lar hizmet arka uç altyapısındaki değişikliklerden dolayı başarısız olabilir. İç dosya yollarında bağımlılık olmadığından emin olmak için runbook kodunu değiştirin ve gerekli modül bilgilerini almak için Get-ChildItem kullanın.
Örnek betik
# Get information about module "Microsoft.Graph.Authentication"
$ModuleName = "Microsoft.Graph.Authentication"
$NewPath = "C:\usr\src\PSModules\$ModuleName"
$OldPath = "C:\Modules\User\$ModuleName"
if (Test-Path -Path $NewPath -PathType Container) {
Get-ChildItem -Path $NewPath
} elseif (Test-Path -Path $OldPath -PathType Container) {
Get-ChildItem -Path $OldPath
} else {
Write-Output "Module $ModuleName not present."
}
# Getting the path to the Temp folder, if needed.
$tmp = $env:TEMP
Get-AzStorageAccount cmdlet bir hatayla başarısız olabilir: Get-AzStorageAccount komutu, Az.Storage modülünde bulundu fakat modül yüklenemedi.
Kullanarak .\child-runbook.ps1 alt betiklerin yürütülmesi bu önizlemede desteklenmez.
Geçici çözüm: Üst runbook'tan başka bir runbook başlatmak için (iç cmdlet) veya Start-AutomationRunbook (modüldenStart-AzAutomationRunbook) kullanın Az.Automation .
Günlük tercihini tanımlayan runbook özellikleri PowerShell 7 çalışma zamanında desteklenmez.
Geçici çözüm: Runbook'un başındaki tercihi açıkça aşağıdaki gibi ayarlayın:
$VerbosePreference = "Continue"
$ProgressPreference = "Continue"
Azure Otomasyonu'nda bu sürüm kullanıldığında beklenmeyen bir davranış olabileceğinden, modülü PowerShell 7 çalışma zamanı için 2.4.0 sürümüne aktarmaktan Az.Accounts kaçının.
PowerShell 7 çalışma zamanında çalışan iş için hata çıkış akışlarıyla ilgili biçimlendirme sorunlarıyla karşılaşabilirsiniz.
Diğer modüllere bağımlı bir PowerShell 7.1 modülünü içeri aktardığınızda, bağımlı modülün PowerShell 7.1 sürümü yüklendiğinde bile içeri aktarma düğmesinin gri olduğunu fark edebilirsiniz. Örneğin Az PowerShell modülü. İşlem sürümü 4.20.0, Az.Accounts'a >= 2.6.0 bağımlılığına sahiptir. PowerShell 5.1'deki eşdeğer bir bağımlı modül sürüm gereksinimlerini karşılamadığında bu sorun oluşur. Örneğin, Az.Accounts'un 5.1 sürümü 2.6.0'dı < .
Web kancasını kullanarak PowerShell 7 runbook'unu başlattığınızda, web kancası giriş parametresini geçersiz bir JSON'a otomatik olarak dönüştürür.
ExchangeOnlineManagement modülü sürümü: 3.0.0 veya üzerini kullanmanızı öneririz çünkü sürüm: 3.0.0 veya üzeri iş hatalarına yol açabilir.
Az.Accounts modülünü 2.12.3 veya daha yeni bir sürümle içeri aktarırsanız, PowerShell 7.1 runbook'larının modülün bu sürümüne bağımlılığı varsa Newtonsoft.Json v10 modülünü açıkça içeri aktardığınızdan emin olun. Bu sorunun geçici çözümü PowerShell 7.2 runbook'larını kullanmaktır.
Az.Automation Modülü'nde New-AzAutomationVariable cmdlet'i kullanarak nesne türünde bir değişkeni karşıya yüklediğinizde, işlem beklendiği gibi çalışmaz.
Geçici çözüm: ConvertTo-Json cmdlet'ini kullanarak nesneyi bir JSON dizesine dönüştürün ve ardından değeri JSON dizesi olan değişkeni karşıya yükleyin. Bu geçici çözüm, Azure Otomasyonu ortamı içindeki değişkenin JSON dizesi olarak düzgün işlenmesini sağlar.
Örnek - Azure VM'leri çevresinde depolanan bilgileri içeren bir PowerShell nesnesi oluşturma
# Retrieve Azure virtual machines with status information for the 'northeurope' region
$AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"}
$VMstopatch = @($AzVM).Id
# Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch
# Convert the object to a JSON string
$jsonString = $VMstopatch | ConvertTo-Json
# Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook)
New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString
PowerShell İş Akışı Çalışma Kitapları
PowerShell İş Akışı runbook'ları, Windows PowerShell İş Akışı'na dayalı metin runbook'larıdır. Azure portalındaki metin düzenleyicisini kullanarak runbook'un kodunu doğrudan düzenlersiniz. Ayrıca herhangi bir çevrimdışı metin düzenleyicisini kullanabilir ve runbook'u Azure Otomasyonu içeri aktarabilirsiniz.
Not
PowerShell 7.1 (önizleme) ve PowerShell 7.2, İş Akışı runbook'larını desteklemez.
Avantajlar
- PowerShell İş Akışı koduyla tüm karmaşık mantığı uygulayın.
- Hata varsa işlemi sürdürmek için denetim noktalarını kullanın.
- Paralel olarak birden çok eylem gerçekleştirmek için paralel işlemeyi kullanın.
- Üst düzey iş akışları oluşturmak için alt runbook'lar olarak diğer grafik runbook'ları ve PowerShell İş Akışı runbook'larını içerebilir.
Sınırlamalar
- PowerShell iş akışı PowerShell 7+ sürümlerinde desteklenmez. Bu nedenle, eski runbook'lar yükseltilemiyor.
- Daha yeni PowerShell 7+ sürümlerine kıyasla paralel yürütmenin verimsiz işlenmesi.
- PowerShell İş Akışı, birden çok işlem kullanılarak dahili olarak çalışır. Bu nedenle, bir işlemde kullanılabilen modüller başka bir işlemde kullanılamayabilir ve komut bulunamadı gibi özel durumlara neden olabilir.
- PowerShell İş Akışı'nın seri durumdan çıkarılmış nesneler gibi ek karmaşıklıklarıyla ilgilenmek için runbook'lar gereklidir.
- Çalıştırmadan önce derlenmeleri gerektiğinden runbook'ların başlatılması PowerShell runbook'larından daha uzun sürer.
- PowerShell runbook'larını yalnızca
Start-AzAutomationRunbook cmdlet'i kullanarak alt runbook olarak ekleyebilirsiniz.
- Runbook'lar Linux Karma Runbook Çalışanı üzerinde çalıştırılamaz.
Python çalışma kitapları
Python runbook'ları Python 3.10 altında derlenmiş. Azure portalındaki metin düzenleyicisini kullanarak runbook'un kodunu doğrudan düzenleyebilirsiniz. Ayrıca çevrimdışı bir metin düzenleyicisi kullanabilir ve runbook'u Azure Otomasyonu'a aktarabilirsiniz. Python 2.7 ve Python 3.8 artık üst ürün tarafından desteklenmemektedir ve Python 3.10 çalışma zamanı sürümünde runbook'lar oluşturmanız önerilir.
Python 3.10 çalışma zamanı sürümü, tüm bölgelerde hem bulut hem de Hibrit işler için desteklenmektedir.
Avantajlar
Not
Python paketini içeri aktarmak birkaç dakika sürebilir.
- Sağlam Python kitaplıklarını kullanır.
- Azure'da veya Hibrit Runbook Çalışanlarında çalışabilir.
- Kod farklı sürümlerde uyumluysa, herhangi bir 3.x sürümündeki betikler ve paketler çalışabilir.
- Windows makinelerindeki Python 3.10 Karma işleri için, kullanmak isteyebileceğiniz herhangi bir 3.x sürümünü yüklemeyi seçebilirsiniz.
- Linux makinelerindeki Python 3.10 Karma işleri için, DSC OMSConfig ve Linux Karma Çalışanı'nı çalıştırmak için makinede yüklü Python 3 sürümüne bağımlıyız. Python 3 sürümleri arasında yöntem imzalarında veya sözleşmelerinde hataya neden olan değişiklikler yoksa farklı sürümler işe yaramalıdır.
Sınırlamalar
Python runbook'larının sınırlamaları şunlardır:
- Python 3.10 modülleri için şu anda yalnızca cp310 Linux işletim sistemini hedefleyen tekerlek dosyaları desteklenmektedir.
Daha fazla bilgi edinin
- Kaynak denetimi tümleştirmesi desteklenmiyor.
- Python 3.10 için özel paketler yalnızca iş çalışma zamanı sırasında doğrulanır. Paket çalışma zamanında uyumlu değilse veya gerekli paket bağımlılıkları otomasyon hesabına aktarılmıyorsa işin başarısız olması beklenir.
- Şu anda Python 3.10 runbook'ları yalnızca Azure portalında ve Rest API'de desteklenmektedir.
- Python 3.8 artık üst ürün Python tarafından desteklenmiyor. Desteklenen sürümlerde yeni runbook'lar oluşturmanızı ve güncel olmayan runbook'ları güncelleştirmenizi öneririz.
- Python betiği oluşturma hakkında bilgi sahibi olmanız gerekir.
- Kaynak denetimi tümleştirmesi desteklenmiyor.
- Python 3.8 modülleri için cp38-amd64'i hedefleyen tekerlek dosyalarını kullanın.
- Üçüncü taraf kitaplıklarını kullanmak için paketleri Otomasyon hesabına aktarmanız gerekir.
-
Python 3.8 runbook'u başlatmak için PowerShell/PowerShell İş Akışı'nda Start-AutomationRunbook cmdlet'inin kullanılması çalışmaz. Bu sınırlamayı geçici olarak çözmek için Az.Automation modülünden Start-AzAutomationRunbook cmdlet'ini veya AzureRm.Automation modülünden Start-AzureRmAutomationRunbook cmdlet'ini kullanabilirsiniz.
- Azure Otomasyonu sys.stderr'ı desteklemez.
- Python automationassets paketi pypi.org'da kullanılamadığından Windows makinesine aktarılamaz.
-
Python 2.7 artık üst ürün Python tarafından desteklenmiyor. Desteklenen sürümlerde yeni runbook'lar oluşturmanızı ve güncel olmayan runbook'ları güncelleştirmenizi öneririz.
- Python betiği oluşturma hakkında bilgi sahibi olmanız gerekir.
- Python 2.7.12 modülleri için cp27-amd6 tekerlek dosyalarını kullanın.
- Üçüncü taraf kitaplıklarını kullanmak için paketleri Otomasyon hesabına aktarmanız gerekir.
- Azure Otomasyonu sys.stderr'ı desteklemez.
- Python automationassets paketi pypi.org'da kullanılamadığından Windows makinesine aktarılamaz.
Not
Python runbook'u başlatmak için web kancası kullanılması desteklenmez.
Birden çok Python sürümü
Windows Hibrit çalışanları için geçerlidir. Bir Windows Runbook Çalışanı için Python 2 runbook'u çalıştırırken önce ortam değişkenini PYTHON_2_PATH arar ve geçerli bir yürütülebilir dosyaya işaret edip etmediğini doğrular. Örneğin, yükleme klasörü C:\Python2 ise, C:\Python2\python.exe'in geçerli bir yol olup olmadığını denetler. Bulunamazsa, benzer bir denetim yapmak için ortam değişkenini PATH arar.
Python 3 için önce env değişkenini PYTHON_3_PATH arar ve ardından ortam değişkenine PATH geri döner.
Python'ın yalnızca bir sürümünü kullanırken, değişkenine PATH yükleme yolunu ekleyebilirsiniz. Runbook Worker'da her iki sürümü de kullanmak istiyorsanız, bu sürümler için modülün konumunu ve PYTHON_2_PATH konumunu ayarlayınPYTHON_3_PATH.
Bilinen sorunlar
Bulut işleri için Python 3.8 işleri bazen bir özel durum iletisiyle invalid interpreter executable pathbaşarısız olur. Bu özel durumu, işin gecikmesi, 10 dakikadan uzun süre başlaması veya Python 3.8 çalışma kitaplarını başlatmak için Start-AutomationRunbook kullanılması durumlarında görebilirsiniz. İş gecikirse runbook'un yeniden başlatılması yeterli olacaktır.
Grafik temelli runbook’lar
Azure portalındaki grafik düzenleyiciyi kullanarak grafik ve grafik PowerShell İş Akışı runbook'ları oluşturabilir ve düzenleyebilirsiniz. Ancak, bu tür runbook'u başka bir araçla oluşturamaz veya düzenleyemezsiniz. Grafik runbook'ların ana özellikleri:
- Otomasyon hesabınızdaki dosyalara aktarılıp başka bir Otomasyon hesabına aktarıldı.
- PowerShell kodu oluşturma.
- İçeri aktarma sırasında grafik PowerShell İş Akışı runbook'larına veya bu runbook'lardan dönüştürülür.
Avantajlar
- Görsel insert-link-configure yazma modelini kullanın.
- Verilerin süreç boyunca nasıl aktığına odaklanın.
- Yönetim süreçlerini görsel olarak temsil eder.
- Üst düzey iş akışları oluşturmak için diğer runbook'ları alt runbook'lar olarak ekleyin.
- Modüler programlamayı teşvik edin.
Sınırlamalar
- Azure portal dışında oluşturulamaz veya düzenlenemez.
- Karmaşık mantık yürütmek için PowerShell kodu içeren bir kod etkinliği gerekebilir.
- Metin biçimlerinden birine dönüştüremez veya bir metin runbook'unu grafik biçime dönüştüremezsiniz.
- Grafik iş akışının oluşturduğu PowerShell kodu görüntülenemez veya doğrudan düzenlenemez. Oluşturduğunuz kodu herhangi bir kod etkinliğinde görüntüleyebilirsiniz.
- Linux Hibrit Runbook Çalışanı üzerinde runbook'lar çalıştırılamaz. Bkz. Hybrid Runbook Worker kullanarak veri merkezinizdeki veya buluttaki kaynakları otomatik hale getirin.
- Grafik runbook'lar dijital olarak imzalanamaz.
Sonraki adımlar