Runbook sorunlarını giderme
Bu makalede, oluşabilecek runbook sorunları ve bunların nasıl çözülebileceği açıklanmaktadır. Genel bilgi için bkz. Azure Otomasyonu runbook yürütme.
Artık içeri aktarılan ve varsayılan olmayan modüllerdeki cmdlet'leri grafik PowerShell runbook'larında kullanmak mümkün değildir
Sorun
Bir PowerShell modülünü içeri aktardığınızda, cmdlet'lerini grafik PowerShell runbook'larında kullanamazsınız.
Neden
PowerShell runbook'larının güvenlik duruşunu geliştirmek için hizmet artık modül bildirim dosyasını işleyip cmdlet'leri ve işlevleri dışarı aktarmaz. Bu, grafik PowerShell runbook'ları yazılırken kullanılamayacağı anlamına gelir.
Çözüm
Mevcut runbook'ların yürütülmesi üzerinde hiçbir etkisi yoktur. Varsayılan olmayan PowerShell modülleri kullanan yeni runbook'lar için bu sorunun üstesinden gelmek için grafik PowerShell runbook'ları yerine metinsel runbook'ları kullanmanızı öneririz. Runbook yazma deneyimini basitleştirmek için GitHub Copilot'dan yararlanan PowerShell runbook'larını yazmak ve düzenlemek için VScode için Azure Otomasyonu uzantısını kullanabilirsiniz.
Start-AzAutomationRunbook "runbookName beklenen desenle eşleşmiyor" hata iletisiyle başarısız oluyor
Sorun
Belirli runbook'ları başlatmak için çalıştırdığınızda Start-AzAutomationRunbook
:
start-azautomationRunbook -Name "Test_2" -AutomationAccountName "AutomationParent" -ResourceGroupName "AutomationAccount"
Aşağıdaki hatayla başarısız olur:
Start-AzAutomationRunbook: "runbookname" does not match expected pattern '^[a-zA-Z]*-*[a-zA-Z0-9]*$'
Neden
Az.Automation modülünün 1.9.0 sürümünde kullanıma sunulan kod, runbook'ların adlarını doğrular ve runbook'ları birden çok "-" karakterle veya adında "_" karakteri geçersiz olarak yanlış bayraklar.
Geçici çözüm
Modülün 1.8.0 sürümüne geri dönmenizi öneririz.
Çözüm
Şu anda bu sorunu gidermek için bir düzeltme dağıtmaya çalışıyoruz.
Runbook sorunlarını tanılama
Azure Otomasyonu'nda runbook yürütme sırasında hatalar aldığınızda, sorunları tanılamaya yardımcı olması için aşağıdaki adımları kullanabilirsiniz:
Yerel makinenizde runbook betiğinizin başarıyla yürütüldüğünden emin olun.
Dil başvurusu ve öğrenme modülleri için PowerShell Belgelerine veya Python Belgelerine bakın. Betiğinizin yerel olarak çalıştırılması, aşağıdakiler gibi yaygın hataları bulabilir ve çözebilir:
- Eksik modüller
- Sözdizimi hataları
- Mantık hataları
Runbook hata akışlarını araştırın.
Belirli iletiler için bu akışlara bakın ve bunları bu makalede belgelenen hatalarla karşılaştırın.
Düğümlerinizin ve Otomasyon çalışma alanınızın gerekli modüllere sahip olduğundan emin olun.
Runbook'unuz modülleri içeri aktarıyorsa, Modülleri içeri aktarma bölümündeki adımları kullanarak bunların Otomasyon hesabınızda kullanılabilir olduğunu doğrulayın. Azure Otomasyonu'nda Azure PowerShell modüllerini güncelleştirme başlığı altındaki yönergeleri izleyerek PowerShell modüllerinizi en son sürüme güncelleştirin. Diğer sorun giderme bilgileri için bkz. Modüllerde sorun giderme.
Runbook'unuz askıya alınıyor veya beklenmedik şekilde başarısız oluyorsa:
- Runbook'u başlatmak için süresi dolmuş bir web kancası kullanmaya çalışıyorsanız web kancasını yenileyin.
- Geçerli runbook durumlarını ve sorunun bazı olası nedenlerini belirlemek için iş durumlarını denetleyin.
- Runbook askıya alınmadan önce ne olacağını tanımlamak için runbook’a ilave çıktı ekleyin.
- İşiniz tarafından oluşturulan özel durumları işleyin.
Runbook işi veya Karma Runbook Çalışanı üzerindeki ortam yanıt vermiyorsa bu adımı uygulayın.
Runbook'larınızı Azure Otomasyonu yerine bir Karma Runbook Çalışanı üzerinde çalıştırıyorsanız karma çalışanın sorunlarını gidermeniz gerekebilir.
Senaryo: Batı Avrupa bölgesinde yeni Otomasyon işi oluşturulamıyor
Sorun
Yeni Otomasyon işleri oluştururken gecikme veya iş oluşturma hatasıyla karşılaşabilirsiniz. Zamanlanmış işler otomatik olarak kullanımdan kaldırılır ve bir hata görürseniz portal aracılığıyla yürütülen işler kullanımdan kaldırılabilir.
Neden
Bunun nedeni, Batı Avrupa bölgesindeki Otomasyon hizmetini kullanan müşterilerin runbook'larından yüksek yük olmasıdır.
Çözüm
Hata olasılığını azaltmak için gereksinimlerinize ve ortamınıza göre uygunsa aşağıdaki eylemi gerçekleştirin:
- İş oluşturma işlemi için saat başı (saat 12:00, 1:00, 2:00 vb.) kullanıyorsanız, genellikle saat veya yarım saat içinde iş başlangıç zamanını saat/yarım saatten beş dakika öncesine veya sonrasına taşımanızı öneririz. Bunun nedeni, müşterilerin çoğunun iş yürütme için saatin başlangıcını kullanmasıdır ve bu da hizmet üzerindeki yükü önemli ölçüde artırırken, diğer zaman yuvalarında yükün nispeten düşük olmasıdır.
Senaryo: Runbook şu hatayla başarısız oluyor: "Bu. Client.SubscriptionId null olamaz." hata iletisi
Sorun
Azure nesnelerini yönetmeye çalışan connect-AzAccount -Identity yönetilen kimliği kullanan runbook'unuz başarıyla çalışamıyor ve aşağıdaki hatayı günlüğe kaydedecek - this.Client.SubscriptionId cannot be null.
get-azvm : 'this.Client.SubscriptionId' cannot be null. At line:5 char:1 + get-azvm + ~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzVM], ValidationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.GetAzureVMCommand
Neden
Yönetilen Kimliğe (veya runbook'ta kullanılan başka bir hesaba) aboneliğe erişim izni verilmediğinde bu durum oluşabilir.
Çözüm
Yönetilen Kimliğe (veya runbook'ta kullanılan başka bir hesaba) abonelik üzerinde uygun bir rol üyeliği verin. Daha fazla bilgi edinin
Senaryo: Azure Depolama, Azure Key Vault veya Azure SQL'e erişim engellendi
Bu senaryoda örnek olarak Azure Depolama kullanılır; ancak bilgiler Azure Key Vault ve Azure SQL için de aynı şekilde geçerlidir.
Sorun
Bir Runbook'tan Azure Depolama'ya erişmeye çalışmak aşağıdaki iletiye benzer bir hatayla sonuçlanır: The remote server returned an error: (403) Forbidden. HTTP Status Code: 403 - HTTP Error Message: This request is not authorized to perform this operation.
Neden
Azure Depolama'da Azure Güvenlik Duvarı etkindir.
Çözüm
Azure Depolama, Azure Key Vault veya Azure SQL'de Azure Güvenlik Duvarı etkinleştirilmesi, söz konusu hizmetler için Azure Otomasyonu runbook'lardan erişimi engeller. Otomasyon güvenilen hizmet listesinde yer almadığından, güvenilen Microsoft hizmetlerine izin vermek için güvenlik duvarı özel durumu etkinleştirildiğinde bile erişim engellenir. Etkin bir güvenlik duvarıyla erişim yalnızca Karma Runbook Çalışanı ve sanal ağ hizmet uç noktası kullanılarak yapılabilir.
Senaryo: Runbook, İzin yok veya Yasak 403 hatasıyla başarısız oluyor
Sorun
Runbook'unuz İzin yok veya Yasak 403 hatasıyla veya eşdeğeriyle başarısız oluyor.
Neden
Farklı Çalıştır hesaplarının Azure kaynakları üzerinde geçerli Otomasyon hesabınızla aynı izinleri olmayabilir.
Çözüm
Farklı Çalıştır hesabınızın betiğinizde kullanılan kaynaklara erişme izinlerine sahip olduğundan emin olun.
Senaryo: Azure hesabında oturum açma başarısız oldu
Sorun
cmdlet'iyle Connect-AzAccount
çalışırken aşağıdaki hatalardan birini alırsınız:
Unknown_user_type: Unknown User Type
No certificate was found in the certificate store with thumbprint
Neden
Kimlik bilgisi varlık adı geçerli değilse bu hatalar oluşur. Otomasyon kimlik bilgileri varlığını ayarlarken kullandığınız kullanıcı adı ve parola geçerli olmadığında da bu hatalar oluşabilir.
Çözüm
Neyin yanlış olduğunu belirlemek için şu adımları izleyin:
Özel karakter olmadığından emin olun. Bu karakterler, Azure'a bağlanmak için kullandığınız Otomasyon kimlik bilgisi varlık adındaki
\@
karakterini içerir.Yerel PowerShell ISE düzenleyicinizdeki Azure Otomasyonu kimlik bilgisinde depolanan kullanıcı adını ve parolayı kullanıp kullanamadığınızı denetleyin. PowerShell ISE'de aşağıdaki cmdlet'leri çalıştırın.
$Cred = Get-Credential #Using Azure Service Management Add-AzureAccount -Credential $Cred #Using Azure Resource Manager Connect-AzAccount -Credential $Cred
Kimlik doğrulamanız yerel olarak başarısız olursa Microsoft Entra kimlik bilgilerinizi düzgün ayarlamadığınız anlamına gelir. Microsoft Entra hesabının doğru ayarlanması için Microsoft Entra ID kullanarak Azure'da kimlik doğrulama makalesine bakın.
Hata geçici gibi görünüyorsa kimlik doğrulamayı daha sağlam hale getirmek için kimlik doğrulama yordamınıza yeniden deneme mantığı eklemeyi deneyin.
$logonAttempt = 0 $logonResult = $False while(!($connectionResult) -And ($logonAttempt -le 10)) { $LogonAttempt++ #Logging in to Azure... $connectionResult = Connect-AzAccount ` Start-Sleep -Seconds 30 if($connectionResult) { $logonResult = $True } }
Senaryo: Oturum açmak için Login-AzureRMAccount komutunu çalıştırma
Sorun
Bir runbook çalıştırdığınızda aşağıdaki hatayı alırsınız:
Run Login-AzureRMAccount to login.
Neden
Farklı Çalıştır hesabı kullanmadığınızda veya Farklı Çalıştır hesabının süresi dolduğunda bu hata oluşabilir.
Bu hatanın iki temel nedeni vardır:
- AzureRM veya Az modülünün farklı sürümleri var.
- Ayrı bir abonelikteki kaynaklara erişmeye çalışıyorsunuz.
Çözüm
Bir AzureRM veya Az modülünü güncelleştirdikten sonra bu hatayı alırsanız tüm modüllerinizi aynı sürüme güncelleştirin.
Başka bir abonelikteki kaynaklara erişmeye çalışıyorsanız izinleri yapılandırmak için şu adımları izleyin:
Otomasyon Farklı Çalıştır hesabına gidin ve Uygulama Kimliği ile Parmak İzi'ni kopyalayın.
Otomasyon hesabının barındırılmadığı aboneliğin Erişim denetimine gidin ve yeni bir rol ataması ekleyin.
Daha önce toplanan Uygulama Kimliğini ekleyin. Katkıda bulunan izinleri'ne tıklayın.
Aboneliğin adını kopyalayın.
Artık Otomasyon hesabınızdan diğer aboneliğe yönelik izinleri test etmek için aşağıdaki runbook kodunu kullanabilirsiniz. değerini 1. adımda kopyalanan değerle değiştirin
<CertificateThumbprint>
. değerini 4. adımda kopyalanan değerle değiştirin"<SubscriptionName>"
.$Conn = Get-AutomationConnection -Name AzureRunAsConnection Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint "<CertificateThumbprint>" #Select the subscription you want to work with Select-AzSubscription -SubscriptionName '<YourSubscriptionNameGoesHere>' #Test and get outputs of the subscriptions you granted access. $subscriptions = Get-AzSubscription foreach($subscription in $subscriptions) { Set-AzContext $subscription Write-Output $subscription.Name }
Senaryo: Azure aboneliği bulunamıyor
Sorun
, Select-AzureRMSubscription
veya Select-AzSubscription
cmdlet'iyle Select-AzureSubscription
çalışırken aşağıdaki hatayı alırsınız:
The subscription named <subscription name> cannot be found.
Hata
Aşağıdaki durumlarda bu hata oluşabilir:
- Abonelik adı geçerli değil.
- Abonelik ayrıntılarını almaya çalışan Microsoft Entra kullanıcısı, aboneliğin yöneticisi olarak yapılandırılmamış.
- Cmdlet kullanılamıyor.
- Bağlam değiştirme oluştu.
Çözüm
Bağlam değiştirme için bkz. Azure Otomasyonu'da bağlam geçişi.
Senaryo: Birden fazla abonelikle ilgilenirken runbook'lar başarısız oluyor
Sorun
Runbook'ları yürütürken runbook, Azure kaynaklarını yönetemiyor.
Neden
Runbook çalışırken doğru bağlamı kullanmıyor. Bunun nedeni runbook'un yanlışlıkla yanlış aboneliğe erişmeye çalışması olabilir.
Aşağıdaki gibi hatalar görebilirsiniz:
Get-AzVM : The client '<client-id>' with object id '<object-id> does not have authorization to perform action 'Microsoft.Compute/virtualMachines/read' over scope '/subscriptions/<subscriptionIdOfSubscriptionWhichDoesntContainTheVM>/resourceGroups/REsourceGroupName/providers/Microsoft.Compute/virtualMachines/VMName '.
ErrorCode: AuthorizationFailed
StatusCode: 403
ReasonPhrase: Forbidden Operation
ID : <AGuidRepresentingTheOperation> At line:51 char:7 + $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $UNBV... +
veya şunun gibi:
Get-AzureRmResource : Resource group "SomeResourceGroupName" could not be found.
... resources = Get-AzResource -ResourceGroupName $group.ResourceGro ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Get-AzResource], CloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResourceCmdlet
Çözüm
Yanlışlıkla yanlış aboneliğe erişmeye çalışmaktan kaçınmak için bkz. Azure Otomasyonu'de bağlam değiştirme.
Senaryo: Çok faktörlü kimlik doğrulaması etkinleştirildiği için Azure'da kimlik doğrulaması başarısız oluyor
Sorun
Azure kullanıcı adınız ve parolanızla Azure'da kimlik doğrulaması yaparken aşağıdaki hatayı alıyorsunuz:
Add-AzureAccount: AADSTS50079: Strong authentication enrollment (proof-up) is required
Neden
Azure hesabınızda çok faktörlü kimlik doğrulaması varsa, Azure'da kimlik doğrulaması yapmak için Microsoft Entra kullanıcısını kullanamazsınız. Bunun yerine, kimlik doğrulaması için bir sertifika veya hizmet sorumlusu kullanmanız gerekir.
Çözüm
Azure Resource Manager cmdlet'leriyle hizmet sorumlusu kullanmak için bkz . Azure portalını kullanarak hizmet sorumlusu oluşturma ve Azure Resource Manager ile hizmet sorumlusu kimliğini doğrulama.
Senaryo: Runbook "Görev iptal edildi" hata iletisiyle başarısız oluyor
Sorun
Runbook'unuz aşağıdaki örneğe benzer bir hatayla başarısız oluyor:
Exception: A task was cancelled.
Neden
Bu hatanın nedeni eski Azure modüllerinin kullanılması olabilir.
Çözüm
Azure modüllerinizi en son sürüme güncelleştirerek bu hatayı çözebilirsiniz:
- Otomasyon hesabınızda Modüller'i ve ardından Azure modüllerini güncelleştir'i seçin.
- Güncelleştirme 15 dakika kadar sürebilir. İşlem tamamlandıktan sonra başarısız olan runbook'u yeniden çalıştırın.
Modüllerinizi güncelleştirme hakkında daha fazla bilgi için Azure Otomasyonu'nda Azure modüllerini güncelleştirme konusuna bakın.
Senaryo: Terim bir cmdlet, işlev veya betik adı olarak tanınmıyor.
Sorun
Runbook'unuz aşağıdaki örneğe benzer bir hatayla başarısız oluyor:
The term 'Connect-AzAccount' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if the path was included verify that the path is correct and try again.
Neden
Bu hata aşağıdaki nedenlerden kaynaklanabilir:
- Cmdlet'i içeren modül Otomasyon hesabına aktarılmadı.
- Cmdlet'i içeren modül içeri aktarıldı ama güncel değil.
Çözüm
Bu hatayı düzeltmek için aşağıdaki görevlerden birini yapın:
- Azure modülü için bkz. Azure Otomasyonu'nda Azure PowerShell modüllerini güncelleştirme ve Otomasyon hesabınızdaki modüllerinizi güncelleştirme hakkında bilgi edinin.
- Azure dışı bir modül için modülün Otomasyon hesabınıza aktarıldığından emin olun.
Senaryo: Cmdlet, Azure Otomasyonu üzerinde PnP PowerShell runbook'unda başarısız oluyor
Sorun
Bir runbook doğrudan Azure Otomasyonu çıkışına PnP PowerShell tarafından oluşturulan bir nesne yazdığında cmdlet çıkışı Otomasyon'a geri akış yapamaz.
Neden
Bu sorun en yaygın olarak, Azure Otomasyonu PnP PowerShell cmdlet'lerini çağıran runbook'ları add-pnplistitem
dönüş nesnelerini yakalamadan işlediğinde oluşur.
Çözüm
Cmdlet'lerin tüm nesneleri standart çıktıya yazmaya çalışmaması için değişkenlere dönüş değerleri atamak için betiklerinizi düzenleyin. Betik, burada gösterildiği gibi çıkış akışını bir cmdlet'e yeniden yönlendirebilir.
$null = add-pnplistitem
Betiğiniz cmdlet çıkışını ayrıştırıyorsa betiğin çıkışı bir değişkende depolaması ve çıkışın akışını yapmak yerine değişkeni işlemesi gerekir.
$SomeVariable = add-pnplistitem ....
if ($SomeVariable.someproperty -eq ....
Senaryo: Runbook yürütülürken cmdlet tanınmadı
Sorun
Runbook işiniz bu hatayı vererek başarısız oluyor:
<cmdlet name>: The term <cmdlet name> is not recognized as the name of a cmdlet, function, script file, or operable program.
Neden
Bu hata, PowerShell altyapısı runbook'unuzda kullandığınız cmdlet'i bulamadığında oluşur. Cmdlet'i içeren modülün hesapta eksik olması, runbook adıyla bir ad çakışması olması veya cmdlet'in başka bir modülde de bulunması ve Otomasyon'un adı çözümleyememe olasılığı vardır.
Çözüm
Sorunu çözmek için aşağıdaki çözümlerden herhangi birini kullanın:
- Cmdlet adını doğru girdiğinizden emin olun.
- Cmdlet'in Otomasyon hesabınızda mevcut olduğundan ve çakışma olmadığından emin olun. Cmdlet'in mevcut olup olmadığını doğrulamak için, bir runbook'u düzenleme modunda açın ve kitaplıkta bulmak istediğiniz cmdlet'i arayın veya komutunu çalıştırın
Get-Command <CommandName>
. Cmdlet'in hesapta kullanılabilir olduğunu ve diğer cmdlet'lerle veya runbook'larla ad çakışması olmadığını doğruladıktan sonra cmdlet'i tuvale ekleyin. Runbook'unuzda geçerli bir parametre kümesi kullandığınızdan emin olun. - Ad çakışmanız varsa ve cmdlet iki farklı modülde kullanılabiliyorsa, cmdlet için tam adı kullanarak sorunu çözün. Örneğin,
ModuleName\CmdletName
değerini kullanabilirsiniz. - Runbook'u bir karma çalışan grubunda şirket içinde yürütüyorsanız, modülün ve cmdlet'in karma çalışanı barındıran makineye yüklendiğinden emin olun.
Senaryo: Add-AzAccount çağrısında yanlış nesne başvurusu
Sorun
cmdlet'inin Connect-AzAccount
diğer adı olan ile Add-AzAccount
çalışırken bu hatayı alırsınız:
Add-AzAccount : Object reference not set to an instance of an object
Neden
Runbook, Otomasyon hesabını eklemek için çağırmadan Add-AzAccount
önce düzgün adımları gerçekleştirmezse bu hata oluşabilir. Gerekli adımlardan biri, Farklı Çalıştır hesabıyla oturum açmaktır. Runbook'unuzda kullanılacak doğru işlemler için bkz. Azure Otomasyonu'de Runbook yürütme.
Senaryo: Nesne başvurusu bir nesnenin örneğine ayarlanmadı
Sorun
parametresiyle Wait
bir alt runbook çağırdığınızda ve Output akışı bir nesne içerdiğinde aşağıdaki hatayı alırsınız:
Object reference not set to an instance of an object
Neden
Akış nesneleri içeriyorsa Çıkış Start-AzAutomationRunbook
akışını doğru işlemez.
Çözüm
Yoklama mantığı uygulayın ve çıkışı almak için Get-AzAutomationJobOutput cmdlet'ini kullanın. Bu mantığın bir örneği burada tanımlanmıştır:
$AutomationAccountName = "ContosoAutomationAccount"
$RunbookName = "ChildRunbookExample"
$ResourceGroupName = "ContosoRG"
function IsJobTerminalState([string]$Status) {
$TerminalStates = @("Completed", "Failed", "Stopped", "Suspended")
return $Status -in $TerminalStates
}
$StartAzAutomationRunbookParameters = @{
Name = $RunbookName
AutomationAccountName = $AutomationAccountName
ResourceGroupName = $ResourceGroupName
}
$Job = Start-AzAutomationRunbook @StartAzAutomationRunBookParameters
$PollingSeconds = 5
$MaxTimeout = New-TimeSpan -Hours 3 | Select-Object -ExpandProperty TotalSeconds
$WaitTime = 0
while(-NOT (IsJobTerminalState $Job.Status) -and $WaitTime -lt $MaxTimeout) {
Start-Sleep -Seconds $PollingSeconds
$WaitTime += $PollingSeconds
$Job = $Job | Get-AzAutomationJob
}
$Job | Get-AzAutomationJobOutput | Get-AzAutomationJobOutputRecord | Select-Object -ExpandProperty Value
Senaryo: Seri durumdan çıkarılmış nesne nedeniyle Runbook başarısız oluyor
Sorun
Runbook'unuz şu hatayla başarısız oluyor:
Cannot bind parameter <ParameterName>.
Cannot convert the <ParameterType> value of type Deserialized <ParameterType> to type <ParameterType>.
Neden
Runbook'unuz bir PowerShell İş Akışı ise, iş akışı askıya alınırsa runbook durumunuzu kalıcı hale getirmek için karmaşık nesneleri seri durumdan çıkarılmış biçimde depolar.
Çözüm
Bu sorunu çözmek için aşağıdaki çözümlerden birini kullanın:
- Karmaşık nesneleri bir cmdlet'ten başka bir cmdlet'e aktarıyorsanız bu cmdlet'leri bir
InlineScript
etkinliğinde sarmalayın. - Karmaşık nesnenin tamamını geçirmek yerine nesneden ihtiyacınız olan adı veya değeri geçirin.
- PowerShell İş Akışı runbook'u yerine PowerShell runbook'u kullanın.
Senaryo: 400 Web kancası çağrılırken Hatalı İstek durumu
Sorun
Azure Otomasyonu runbook için web kancası çağırmaya çalıştığınızda aşağıdaki hatayı alırsınız:
400 Bad Request : This webhook has expired or is disabled
Neden
Çağırmaya çalıştığınız web kancası devre dışı bırakıldı veya süresi doldu.
Çözüm
Web kancası devre dışı bırakıldıysa Azure Portal aracılığıyla onu yeniden etkinleştirebilirsiniz. Web kancasının süresi dolduysa, silip yeniden oluşturmanız gerekir. Web kancasını yenileyebilmeniz için süresinin dolmamış olması gerekir.
Senaryo: 429: Şu anda istek oranı fazla büyük
Sorun
Cmdlet'i çalıştırırken Get-AzAutomationJobOutput
aşağıdaki hata iletisini alırsınız:
429: The request rate is currently too large. Please try again
Neden
Bu hata, çok sayıda ayrıntılı akışı olan bir runbook'tan iş çıktısı alınırken oluşabilir.
Çözüm
Bu hatayı düzeltmek için aşağıdakilerden birini yapın:
- Runbook'u düzenleyin ve yaydığı iş akışlarının sayısını azaltın.
- cmdlet'i çalıştırılırken alınacak akış sayısını azaltın. Bunu yapmak için, Get-AzAutomationJobOutput cmdlet'inin parametresinin
Stream
değerini yalnızca Çıkış akışlarını alacak şekilde ayarlayabilirsiniz.
Senaryo: Ayrılan kota aşıldığından Runbook işi başarısız oluyor
Sorun
Runbook işiniz bu hatayı vererek başarısız oluyor:
The quota for the monthly total job run time has been reached for this subscription
Neden
bu hata, iş yürütmesi hesabınız için 500 dakikalık ücretsiz kotayı aştığında oluşur. Bu kota tüm iş yürütme görevleri türleri için geçerlidir. Bu görevlerden bazıları bir işi test eder, portaldan bir iş başlatır, web kancalarını kullanarak bir işi yürütür veya Azure portalını veya veri merkezinizi kullanarak yürütülecek bir iş zamanlar. Otomasyon fiyatlandırması hakkında daha fazla bilgi edinmek için bkz . Otomasyon fiyatlandırması.
Çözüm
Ayda 500 dakikadan fazla işlem kullanmak istiyorsanız aboneliğinizi Ücretsiz katmanından Temel katmana değiştirin:
- Azure aboneliğinizde oturum açın.
- Yükseltecek Otomasyon hesabını seçin.
- Ayarlar'ı ve ardından Fiyatlandırma'yı seçin.
- Hesabınızı Temel katmana yükseltmek için sayfanın altındaki Etkinleştir'i seçin.
Senaryo: Runbook çıkış akışı 1 MB'tan büyük
Sorun
Azure korumalı alanında çalışan runbook'unuz aşağıdaki hatayla başarısız oluyor:
The runbook job failed due to a job stream being larger than 1MB, this is the limit supported by an Azure Automation sandbox.
Neden
Runbook'unuz çıkış akışına çok fazla özel durum verisi yazmaya çalıştığından bu hata oluşur.
Çözüm
İş çıkış akışında 1 MB sınırı vardır. Runbook'unuzun ve catch
bloklarını kullanarak try
yürütülebilir bir dosyaya veya alt işleme çağrıları dahil etmesini sağlayın. İşlemler bir özel durum oluşturursa, kodun özel durumdan gelen mesajı bir Otomasyon değişkenine yazmasını sağlayın. Bu teknik, mesajın iş çıkış akışına yazılmasını engeller. Yürütülen Karma Runbook Çalışanı işlerinde, 1 MB'a kesilmiş çıkış akışı hata iletisi olmadan görüntülenir.
Senaryo: Runbook işini başlatmak için üç deneme yapıldı ama her deneme başarısız oldu
Sorun
Runbook'unuz aşağıdaki hatayla başarısız oluyor:
The job was tried three times but it failed
Neden
Aşağıdaki sorunlardan biri bu hataya neden olabilir:
Bellek sınırı. 400 MB'tan fazla bellek kullanan bir iş başarısız olabilir. Korumalı alana ayrılan bellekle ilgili belgelerde yer alan sınırlar Otomasyon hizmet sınırları sayfasında bulunur.
Ağ yuvaları. Azure korumalı alanları 1.000 eşzamanlı ağ yuvasıyla sınırlıdır. Daha fazla bilgi için bkz. Otomasyon hizmet sınırları.
Modül uyumsuz. Modül bağımlılıkları doğru olmayabilir. Bu durumda runbook'unuz genellikle bir
Command not found
veyaCannot bind parameter
iletisi döndürür.Korumalı alan için Active Directory ile kimlik doğrulaması yok. Runbook'unuz Azure korumalı alanında çalışan bir yürütülebilir dosyayı veya alt işlemi çağırmaya çalıştı. Azure Active Directory Kimlik Doğrulama Kitaplığı'nı (ADAL) kullanarak Runbook'ları Microsoft Entra Id ile kimlik doğrulaması yapmak için yapılandırma desteklenmez.
Çözüm
Bellek sınırı, ağ yuvaları. Bellek sınırları içinde çalışmanın önerilen yolları, iş yükünü birden çok runbook arasında bölmek, bellekte daha az veri işlemek, runbook'larınızdan gereksiz çıkış yazmaktan kaçınmak ve PowerShell iş akışı runbook'larınıza kaç denetim noktası yazıldığından kaçınmaktır. Değişkenleri temizlemek için gibi
$myVar.clear
clear yöntemini kullanın ve atık toplamayı hemen çalıştırmak için kullanın[GC]::Collect
. Bu eylemler çalışma zamanında runbook'unuzun bellek ayak izini azaltır.Modül uyumsuz. Azure Otomasyonu'da Azure PowerShell modülleri güncelleştirme bölümündeki adımları izleyerek Azure modüllerinizi güncelleştirin.
Korumalı alan için Active Directory ile kimlik doğrulaması yok. Runbook'la Microsoft Entra Kimlik'te kimlik doğrulaması yaparken Otomasyon hesabınızda Azure AD modülünün bulunduğundan emin olun. Runbook'un otomatikleştirdiği görevleri yerine getirmek için Farklı Çalıştır hesabına gerekli izinleri verdiğinizden emin olun.
Runbook'unuz Azure korumalı alanında çalışan bir yürütülebilir dosyayı veya alt işlemi çağıramıyorsa Karma Runbook Çalışanı'nda runbook'u kullanın. Azure korumalı alanlarına uygulanan bellek ve ağ sınırları karma çalışanlara uygulanmaz.
Senaryo: PowerShell işi "Yöntem çağrılamıyor" hata iletisiyle başarısız oluyor
Sorun
Azure'da çalışan bir runbook'ta PowerShell işi başlattığınızda aşağıdaki hata iletisini alıyorsunuz:
Exception was thrown - Cannot invoke method. Method invocation is supported only on core types in this language mode.
Neden
Bu hata, Azure korumalı alanında çalışan runbook'ların Tam Dil modunda çalışamazsınız.
Çözüm
Bu hatayı düzeltmenin iki yolu vardır:
- Start-Job kullanmak yerine Start-AzAutomationRunbook komutunu kullanarak runbook'u başlatın.
- Runbook'u bir Karma Runbook Çalışanı üzerinde çalıştırmayı deneyin.
Bu davranış ve Azure Otomasyonu runbook'ların diğer davranışları hakkında daha fazla bilgi edinmek için bkz. Azure Otomasyonu'da Runbook yürütme.
Senaryo: Uzun süre çalışan runbook tamamlanamıyor
Sorun
Runbook'unuz üç saat çalıştırıldıktan sonra Durduruldu durumunda gösterilir. Şu hatayı da alabilirsiniz:
The job was evicted and subsequently reached a Stopped state. The job cannot continue running.
Bu davranış, Azure Otomasyonu içindeki işlemlerin eşit pay izlemesi nedeniyle Azure korumalı alanlarında tasarım gereğidir. Bir işlem üç saatten uzun bir süre yürütülürse, fair share otomatik olarak bir runbook'u durdurur. Adil paylaşım süresi sınırını aşan bir runbook'un durumu runbook türüne göre farklılık gösterir. PowerShell ve Python runbook'ları Durduruldu durumuna ayarlanır. PowerShell İş Akışı runbook'ları Başarısız olarak ayarlanır.
Neden
Runbook, Azure korumalı alanında adil paylaşımın izin verdiği üç saatlik sınırı aştı.
Çözüm
Önerilen çözümlerden biri runbook'u Karma Runbook Çalışanı üzerinde çalıştırmaktır. Karma çalışanlar, Azure korumalı alanlarının sahip olduğu üç saatlik adil paylaşım runbook sınırıyla sınırlı değildir. Beklenmeyen yerel altyapı sorunları varsa, Karma Runbook Çalışanları üzerinde çalışan runbook'lar yeniden başlatma davranışlarını destekleyecek şekilde geliştirilmelidir.
Bir diğer çözüm de alt runbook'lar oluşturarak runbook'u iyileştirmektir. Runbook'unuz aynı işlevi birkaç kaynakta döngüye alırsa (örneğin, birkaç veritabanındaki bir veritabanı işleminde), işlevi bir alt runbook'a taşıyabilirsiniz. Her alt runbook ayrı bir işlemde paralel olarak yürütülür. Bu davranış, üst runbook'un tamamlanması için toplam süreyi azaltır.
Alt runbook senaryosunu etkinleştiren PowerShell cmdlet'leri şunlardır:
- Start-AzAutomationRunbook. Bu cmdlet bir runbook başlatmanızı ve bu runbook'a parametre iletmenizi sağlar.
- Get-AzAutomationJob. Alt runbook tamamlandıktan sonra gerçekleştirilmesi gereken işlemler varsa, bu cmdlet her alt öğe için iş durumunu denetlemenize olanak tanır.
Senaryo: get_SerializationSettings yöntemiyle ilgili iş akışlarında hata
Sorun
Runbook için iş akışlarınızda aşağıdaki hatayı görürsünüz:
Connect-AzAccount : Method 'get_SerializationSettings' in type
'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly
'Microsoft.Azure.Commands.ResourceManager.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
does not have an implementation.
At line:16 char:1
+ Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -Appl ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Connect-AzAccount], TypeLoadException
+ FullyQualifiedErrorId : System.TypeLoadException,Microsoft.Azure.Commands.Profile.ConnectAzAccountCommand
Neden
Bu hatanın nedeni büyük olasılıkla runbook'unuzda AzureRM'den Az modüllerine tamamlanmamış bir geçiş kullanılmasıdır. Bu durum, Azure Otomasyonu yalnızca AzureRM modüllerini kullanarak bir runbook işi başlatmasına ve ardından yalnızca Az modüllerini kullanarak başka bir iş başlatmasına neden olabilir ve bu da korumalı alan kilitlenmesine neden olur.
Çözüm
Az ve AzureRM cmdlet'lerinin aynı runbook'ta kullanılmasını önermiyoruz. Modüllerin doğru kullanımı hakkında daha fazla bilgi edinmek için bkz . Az modüllerine geçiş.
Senaryo: Runbook veya uygulama için Azure korumalı alanı kullanılırken erişim reddedildi
Sorun
Runbook'unuz veya uygulamanız bir Azure korumalı alanında çalıştırmayı denediğinde ortam erişimi reddeder.
Neden
Bu sorun, Azure korumalı alanları tüm işlem dışı COM sunucularına erişimi engellediğinden oluşabilir. Örneğin, korumalı bir uygulama veya runbook, Windows Yönetim Araçları'na (WMI) veya Windows Installer hizmetine (msiserver.exe) çağrı yapamaz.
Çözüm
Azure korumalı alan kullanımı hakkında ayrıntılı bilgi için bkz . Runbook yürütme ortamı.
Senaryo: Runbook içinde Key Vault kullanılırken geçersiz Yasak durum kodu
Sorun
Azure Key Vault'a bir Azure Otomasyonu runbook üzerinden erişmeye çalıştığınızda aşağıdaki hatayı alırsınız:
Operation returned an invalid status code 'Forbidden'
Neden
Bu sorunun olası nedenleri şunlardır:
- Farklı Çalıştır hesabı kullanılmıyor.
- Yetersiz izinler.
Çözüm
Farklı Çalıştır hesabı kullanmama
Key Vault'a erişmek için Farklı Çalıştır hesabı kullandığınızdan emin olmak için 5. Adım - Azure kaynaklarını yönetmek için kimlik doğrulaması ekleme adımlarını izleyin.
Yetersiz izinler
Farklı Çalıştır hesabınızın Key Vault'a erişmek için yeterli izinlere sahip olduğundan emin olmak için Key Vault'a izinler ekleyin.
Senaryo: Runbook "Parametre uzunluğu aşıldı" hatasıyla başarısız oluyor
Sorun
Runbook'unuz parametreler kullanıyor ve aşağıdaki hatayla başarısız oluyor:
Total Length of Runbook Parameter names and values exceeds the limit of 30,000 characters. To avoid this issue, use Automation Variables to pass values to runbook.
Neden
Python 2.7, Python 3.8 ve PowerShell 7.1 runbook'larında sağlanabilir tüm Parametrelerin toplam karakter uzunluğu sınırı vardır. Tüm Parametre adlarının ve Parametre değerlerinin toplam uzunluğu 30.000 karakteri aşmamalıdır.
Çözüm
Bu sorunun üstesinden gelmek için Azure Otomasyonu Değişkenlerini kullanarak değerleri runbook'a geçirebilirsiniz. Alternatif olarak, toplam uzunluğun 30.000 karakteri aşmadığından emin olmak için Parametre adları ve Parametre değerleri'ndeki karakter sayısını azaltabilirsiniz.
Önerilen belgeler
Sonraki adımlar
Sorununuzu burada görmüyorsanız veya sorununuzu çözemiyorsanız daha fazla destek için aşağıdaki kanallardan birini deneyin:
- Azure Forumları aracılığıyla Azure uzmanlarından yanıt alın.
- Müşteri deneyimini geliştirmeye yönelik resmi Microsoft Azure hesabı @AzureSupport ile bağlantı kurun. Azure Desteği yanıtlar, destek ve uzmanlar için sizi Azure topluluğuna bağlar.
- Daha fazla yardıma ihtiyacınız varsa bir Azure desteği olayı oluşturabilirsiniz. Azure desteği sitesine gidin ve Destek Al'ı seçin.