Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Çoğu Azure Otomasyonu runbook'un bir tür çıkışı vardır. Bu çıkış kullanıcıya bir hata iletisi veya başka bir runbook ile kullanılması amaçlanan karmaşık bir nesne olabilir. Windows PowerShell, betikten veya iş akışından çıktı göndermek için birden fazla akış sağlar. Azure Otomasyonu bu akışların her biriyle farklı çalışır. Runbook oluştururken akışları kullanmak için en iyi uygulamaları takip etmelisiniz.
Aşağıdaki tabloda, yayımlanan runbook'lar için Azure portalında ve bir runbook'un test edilmesi sırasında her akışın davranışı kısaca açıklanmaktadır. Runbook'lar arasındaki iletişim için kullanılan ana akış, çıkış akışıdır. Diğer akışlar, kullanıcıya bilgi iletmeyi amaçlayan ileti akışları olarak sınıflandırılır.
| Veri Akışı | Açıklama | Yayımlanmış | Test etme |
|---|---|---|---|
| Hata | Kullanıcıya yönelik hata iletisi. Bir istisnanın aksine, runbook, varsayılan olarak bir hata mesajından sonra çalışmaya devam eder. | İş geçmişine yazıldı | Test çıktısı bölmesinde görüntülenir |
| Debug | Etkileşimli bir kullanıcıya yönelik iletiler. Runbook'larda kullanılmamalıdır. | İş geçmişine yazılmıyor | Test çıktısı bölmesinde görüntülenmiyor |
| Çıktı | Diğer runbook'lar tarafından kullanılması amaçlanan nesneler. | İş geçmişine yazıldı | Test çıktısı bölmesinde görüntülenir |
| İlerleme Durumu | Runbook'taki her etkinlikten önce ve sonra otomatik oluşturulan kayıtlar. Runbook, etkileşimli bir kullanıcıya yönelik olduğundan kendi ilerleme durumu kayıtlarını oluşturmaya çalışmamalıdır. | Runbook için ilerleme kaydı açıksa yalnızca çalışma geçmişine yazılır. | Test çıktısı bölmesinde görüntülenmiyor |
| Ayrıntılı | Genel veya hata ayıklama bilgileri veren iletiler. | Runbook için ayrıntılı günlük kaydı açıksa, yalnızca iş geçmişine yazılır. | Test çıktısı bölmesinde yalnızca VerbosePreference değişkeni runbook'ta Devam olarak ayarlandıysa görüntülenir. |
| Uyarı | Kullanıcıya yönelik uyarı iletisi. | İş geçmişine yazıldı | Test çıktısı bölmesinde görüntülenir |
Çıkış akışını kullanma
Çıkış akışı, doğru çalıştığında bir betik veya iş akışı tarafından oluşturulan nesnelerin çıkışı için kullanılır. Azure Otomasyonu öncelikle bu akışı, mevcut runbook'u çağıran üst runbook'lar tarafından kullanılacak nesneler için kullanır. Ana süreç bir runbook'u satır içi olarak çağırdığında, alt işlem çıkış akışından ana sürece veri döndürür.
Runbook'unuz, yalnızca başka bir runbook tarafından hiç çağrılmadığı durumlarda, genel bilgileri istemciye iletmek için çıkış akışını kullanır. Ancak en iyi uygulama olarak runbook'larınız genellikle kullanıcıya genel bilgileri iletmek için ayrıntılı akışı kullanmalıdır.
Runbook'unuzun Write-Output kullanarak veri yazmasını çıkış akışına sağlayın. Alternatif olarak, nesneyi betikte kendi satırına yerleştirebilirsiniz.
#The following lines both write an object to the output stream.
Write-Output -InputObject $object
$object
İşlevden çıktıyı işlemek
Bir runbook işlevi çıkış akışına yazdığında, çıkış runbook'a geri iletilir. Eğer runbook bu çıktıyı bir değişkene atarsa, çıktı akışa yazılmaz. İşlevin içinden diğer akışlara yazmak, runbook'a karşılık gelen akışa yazar. Aşağıdaki örnek PowerShell İş Akışı runbook'unu göz önünde bulundurun.
Workflow Test-Runbook
{
Write-Verbose "Verbose outside of function" -Verbose
Write-Output "Output outside of function"
$functionOutput = Test-Function
$functionOutput
Function Test-Function
{
Write-Verbose "Verbose inside of function" -Verbose
Write-Output "Output inside of function"
}
}
Runbook işinin çıkış akışı:
Output inside of function
Output outside of function
Runbook işinin ayrıntılı akışı:
Verbose outside of function
Verbose inside of function
Runbook'u yayımladıktan sonra ve başlatmadan önce, ayrıntılı akış çıkışını almak için runbook ayarlarında ayrıntılı kayıt özelliğini de açmanız gerekir.
Çıkış veri türünü bildirme
Çıkış veri türlerine örnekler aşağıda verilmiştir:
System.StringSystem.Int32System.Collections.HashtableMicrosoft.Azure.Commands.Compute.Models.PSVirtualMachine
bir iş akışında çıkış veri türünü bildirme
İş akışı OutputType özniteliğini kullanarak çıktısının veri türünü belirtir. Bu öznitelik çalışma zamanı sırasında etkili değildir. Ancak tasarım aşamasında runbook'un beklenen çıktısını gösterir. Runbook'lar için araç kümesi gelişmeye devam ettikçe, tasarım zamanında çıkış veri türlerini bildirmenin önemi artar. Bu nedenle, bu bildirimi oluşturduğunuz tüm runbook'lara eklemek en iyi yöntemdir.
Aşağıdaki örnek runbook bir dize nesnesi çıkışı yapar ve çıkış türü bildirimini içerir. Runbook'unuz belirli bir türde dizi çıkışı yapıyorsa, yine de o türdeki dizi yerine, türü belirtmelisiniz.
Workflow Test-Runbook
{
[OutputType([string])]
$output = "This is some string output."
Write-Output $output
}
Grafiksel çalışma kitabında çıkış veri türünü bildirme
Bir çıkış türünü grafik veya grafiksel PowerShell iş akışı runbook'unda bildirmek için Giriş ve Çıkış menü seçeneğini seçip çıkış türünü girebilirsiniz. Üst bir runbook ona başvurduğunda türün kolayca tanımlanabilmesi için tam .NET sınıf adının kullanılması önerilir. Tam adın kullanılması, sınıfın tüm özelliklerini runbook'taki veri yolu üzerinde açığa çıkarır ve özellikler, koşullandırılmış mantık, loglama ve diğer runbook aktiviteleri için değer olarak referans alınırken esnekliği artırır.
Not
Giriş ve Çıkış özellikleri bölmesindeki Çıkış Türü alanına bir değer girdikten sonra, girişinizi tanıması için denetimin dışına tıkladığınızdan emin olun.
Aşağıdaki örnekte, Giriş ve Çıkış özelliğini göstermek için iki grafik runbook gösterilmektedir. Modüler runbook tasarım modelini uygularken, Managed identity kullanarak Azure kimlik doğrulamasını yöneten Runbook kimliğini doğrula şablonu olarak bir runbook'nuz vardır. Normalde belirli bir senaryoyu otomatikleştirmek için temel mantığı yürüten ikinci runbook, bu durumda Kimlik Doğrulama Runbook şablonunu yürütür. Sonuçları Test çıkış bölmenizde görüntüler. Normal koşullarda, bu runbook'un alt runbook'un çıktısından faydalanarak bir kaynak üzerinde işlem yapması gerekebilir.
AuthenticateTo-Azure runbook'un temel mantığı aşağıda verilmiştır.
.
Runbook, kimlik doğrulama profili özelliklerini döndüren Microsoft.Azure.Commands.Profile.Models.PSAzureProfile çıkış türünü içerir.
Bu runbook basit olsa da, burada dikkat çekilmesi gereken bir yapılandırma öğesi vardır. Son etkinlik, Write-Output cmdlet'ini Inputobject parametresi için bir PowerShell ifadesi kullanarak bir değişkene profil verilerini yazmak üzere yürütür. Bu parametre için Write-Outputgereklidir.
Bu örnekteki Test-ChildOutputType adlı ikinci runbook, iki etkinliği tanımlar.
İlk etkinlik AuthenticateTo-Azure runbook'unu çağırır. İkinci etkinlik, Write-Verbose cmdlet'i, Veri kaynağıEtkinlik çıkışı olarak ayarlanmış şekilde çalıştırır. Ayrıca Field path, AuthenticateTo-Azure runbook'un bağlam çıktısı olan Context.Subscription.Name olarak ayarlanır.
Sonuçta elde edilen çıkış, aboneliğin adıdır.
İleti akışlarıyla çalışma
Çıkış akışının aksine, ileti akışları bilgileri kullanıcıya iletir. Farklı türde bilgiler için birden çok ileti akışı vardır ve Azure Otomasyonu her akışı farklı işler.
Uyarı ve hata akışlarına çıkış yazma
Uyarı ve hata akışları, runbook'ta meydana gelen sorunları kaydeder. Azure Otomasyonu bir runbook yürütürken bu akışları iş geçmişine yazar. Otomasyon, bir runbook test edildiğinde Azure portalındaki Test çıkış bölmesindeki akışları içerir.
Varsayılan olarak, bir runbook bir uyarı veya hatadan sonra çalıştırılmaya devam eder. Prosedür kitabınızın bir uyarı veya hata durumunda askıya alınmasını istiyorsanız, mesajı oluşturmadan önce prosedür kitabınızda bir tercih değişkeni ayarlayabilirsiniz. Örneğin, runbook'un bir istisna durumunda olduğu gibi bir hatada askıya alınmasını sağlamak için ErrorActionPreference değişkenini Durdur olarak ayarlayın.
Write-Warning veya Write-Error cmdlet'ini kullanarak bir uyarı veya hata iletisi oluşturun. Etkinlikler, uyarı ve hata veri akışlarına da yazabilir.
#The following lines create a warning message and then an error message that will suspend the runbook.
$ErrorActionPreference = "Stop"
Write-Warning -Message "This is a warning message."
Write-Error -Message "This is an error message that will stop the runbook because of the preference variable."
Akışta hata ayıklamak için çıkış yazma
Azure Otomasyonu etkileşimli kullanıcılar için hata ayıklama iletisi akışını kullanır. Varsayılan olarak Azure Otomasyonu, hata ayıklama akışı verilerini yakalamaz; yalnızca çıkış, hata ve uyarı verilerini yakalar ve runbook bunu yakalamak üzere yapılandırılmışsa detaylı verileri de yakalar.
Hata ayıklama akışı verilerini yakalamak için runbook'larınızda iki eylem gerçekleştirmeniz gerekir:
Değişken
$GLOBAL:DebugPreference="Continue"'yi, PowerShell'e hata ayıklama iletisiyle karşılaştığında devam etme talimatı veren, ayarlayın. $GLOBAL: bölümü, PowerShell'e bu işlemi, ifade yürütülürken betiğin bulunduğu yerel kapsam yerine genel kapsamda yapmasını söyler.Yakalamadığımız hata ayıklama akışını çıkış gibi yakaladığımız bir akışa yeniden yönlendirin. Bu işlem, yürütülecek deyimine karşı PowerShell yeniden yönlendirmesi ayarlanarak yapılır. PowerShell yeniden yönlendirmesi hakkında daha fazla bilgi için bkz . Yeniden Yönlendirme Hakkında.
Örnekler
Bu örnekte, runbook, iki farklı akışın çıktısını alma amacıyla Write-Output ve Write-Debug cmdlet'leri kullanılarak yapılandırılır.
Write-Output "This is an output message."
Write-Debug "This is a debug message."
Bu runbook olduğu haliyle çalıştırılırsa, runbook işinin çıktı penceresi aşağıdaki çıktıyı gösterir:
This is an output message.
Bu örnekte runbook önceki örneğe benzer şekilde yapılandırılmıştır, ancak $GLOBAL:DebugPreference="Continue" deyimi dâhil edilmiştir ve 5>&1 deyiminin sonuna Write-Debug eklenmiştir.
Write-Output "This is an output message."
$GLOBAL:DebugPreference="Continue"
Write-Debug "This is a debug message." 5>&1
Bu çalışma kitabı yürütülürse, çalışma kitabı görevinin çıktısı bölmesinde aşağıdaki çıktılar akış halinde görünür:
This is an output message.
This is a debug message.
Bu durum, $GLOBAL:DebugPreference="Continue" ifadesinin PowerShell'e hata ayıklama iletilerini görüntülemesi talimatını vermesi ve 5>&1 ifadesinin sonuna Write-Debug eklenmesinin ise PowerShell'e akış 5'i (hata ayıklama) akış 1'e (çıkış) yönlendirmesi talimatını vermesi nedeniyledir.
Ayrıntılı akışa çıkış yazma
Ayrıntılı ileti akışı runbook işlemi hakkında genel bilgileri destekler. Bir runbook için hata ayıklama akışı kullanılamadığından, runbook'unuz hata ayıklama bilgileri için detaylı iletiler kullanmalıdır.
Varsayılan olarak, performans nedenleriyle iş geçmişi kamuya açık hale getirilmiş runbook'ların ayrıntılı mesajlarını depolamaz. Ayrıntılı iletileri depolamak için yayımlanan runbook'larınızı ayrıntılı iletileri günlüğe kaydedecek şekilde yapılandırmak üzere Log Ayrıntılı Kayıtlar ayarını içeren Azure portal Configure sekmesini kullanın. Bu seçeneği yalnızca sorun gidermek veya bir runbook'ta hata ayıklamak için açın. Çoğu durumda, ayrıntılı kayıtları günlüğe kaydetmeme varsayılan ayarını korumalısınız.
Bir runbook, ayrıntılı kayıtları günlüğe kaydedecek şekilde yapılandırılmış olsa bile, test edildiğinde ayrıntılı mesajlar görüntülenmez.
Runbook'u test ederken ayrıntılı iletileri görüntülemek için VerbosePreference değişkenini Devam olarak ayarlamanız gerekir. Bu değişken ayarlandığında, Azure portalının Test çıkış bölmesinde ayrıntılı iletiler görüntülenir.
Aşağıdaki kod, Write-Verbose cmdlet'ini kullanarak ayrıntılı bir ileti oluşturur.
#The following line creates a verbose message.
Write-Verbose -Message "This is a verbose message."
İlerleme kayıtlarını işleme
bir runbook'u ilerleme durumu kayıtlarını günlüğe kaydedecek şekilde yapılandırmak için Azure portalının Configure sekmesini kullanabilirsiniz. Varsayılan ayar, performansı en üst düzeye çıkarmak için kayıtları günlüğe kaydetmemektir. Çoğu durumda varsayılan ayarı tutmanız gerekir. Bu seçeneği yalnızca sorun gidermek veya bir runbook'ta hata ayıklamak için açın.
İlerleme kaydını etkinleştirirseniz, runbook'unuz her etkinlik çalışmadan önce ve sonra iş geçmişine bir kayıt yazar. Runbook, ilerleme kayıtlarını günlüğe kaydedecek şekilde yapılandırılmış olsa bile runbook testinde ilerleme iletileri görüntülenmez.
Not
Bu cmdlet etkileşimli bir kullanıcıyla kullanılmak üzere tasarlandığından, Write-Progress cmdlet'i bir runbook'ta geçerli değildir.
Tercih değişkenleriyle çalışma
Farklı çıkış akışlarına gönderilen verilere yanıtı denetlemek için runbook'larınızda belirli Windows PowerShell preference değişkenlerini ayarlayabilirsiniz. Aşağıdaki tabloda runbook'larda kullanılabilecek tercih değişkenleri, varsayılan ve geçerli değerleriyle listelemektedir. Windows PowerShell'de Azure Otomasyonu dışında kullanıldığında tercih değişkenleri için ek değerler kullanılabilir.
| Değişken | Varsayılan Değer | Geçerli Değerler |
|---|---|---|
WarningPreference |
Devam et | Durdur Devam et SilentlyContinue (SessizDevamEt) |
ErrorActionPreference |
Devam et | Durdur Devam et SilentlyContinue (SessizDevamEt) |
VerbosePreference |
SilentlyContinue (SessizDevamEt) | Durdur Devam et SilentlyContinue (SessizDevamEt) |
Sonraki tabloda runbook'larda geçerli olan tercih değişkeni değerlerinin davranışı listelenir.
| Değer | Davranış |
|---|---|
| Devam et | İletiyi günlüğe kaydeder ve runbook'u yürütmeye devam eder. |
| SilentlyContinue (SessizDevamEt) | İletiyi günlüğe kaydetmeden runbook'u yürütmeye devam eder. Bu değer mesajı görmezden gelen bir etki yaratır. |
| Durdur | İletiyi günlüğe kaydeder ve runbook'u askıya alır. |
Runbook çıkışını ve iletilerini alma
Azure portalında runbook çıktısı ve iletileri alma
Runbook işinin ayrıntılarını Azure portalında, runbook'un Jobs sekmesini kullanarak görüntüleyebilirsiniz. İş özeti, iş hakkındaki genel bilgilere ve oluşan özel durumlara ek olarak giriş parametrelerini ve çıkış akışını görüntüler. İş geçmişi, çıkış akışından gelen iletileri, uyarı ve hata akışlarını içerir. Ayrıca, runbook ayrıntılı ve ilerleme durumu kayıtlarını günlüğe kaydedecek şekilde yapılandırılmışsa, ayrıntılı akış ve ilerleme durumu kayıtlarından gelen iletileri de içerir.
Not
Python runbook'lar için iş akışları şu anda İngilizce dilinde çıktı için desteklenmektedir.
Windows PowerShell'de runbook çıktısı ve iletileri alma
Windows PowerShell'de, bir runbook'tan çıkış ve mesajları almak için Get-AzAutomationJobOutput cmdlet'ini kullanabilirsiniz. Bu cmdlet işin kimliğini gerektirir ve alınacak akışın belirtilmesi için adlı Stream bir parametreye sahiptir. İşin tüm akışlarını almak için bu parametre için Any değerini belirtebilirsiniz.
Aşağıdaki örnek, örnek bir runbook başlatır ve tamamlanmasını bekler. Runbook yürütmeyi tamamladıktan sonra betik, işin runbook çıkış akışını toplar.
$job = Start-AzAutomationRunbook -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook"
$doLoop = $true
While ($doLoop) {
$job = Get-AzAutomationJob -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Id $job.JobId
$status = $job.Status
$doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped"))
}
Get-AzAutomationJobOutput -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Id $job.JobId -Stream Output
# For more detailed job output, pipe the output of Get-AzAutomationJobOutput to Get-AzAutomationJobOutputRecord
Get-AzAutomationJobOutput -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Id $job.JobId -Stream Any | Get-AzAutomationJobOutputRecord
Grafik runbook'larda runbook çıktısı ve iletileri alma
Grafik runbook'lar için, etkinlik düzeyi izleme biçiminde ek çıkış ve ileti günlüğü sağlanır. İki izleme düzeyi vardır: Temel ve Ayrıntılı. Temel izleme, çalışma kitabındaki her etkinliğin başlangıç ve bitiş saatlerini, ayrıca tüm etkinlik yenileme işlemleriyle ilgili bilgileri görüntüler. Bazı örnekler, deneme sayısı ve etkinliğin başlangıç saatidir. Ayrıntılı izleme, temel izleme özelliklerinin yanı sıra her etkinlik için giriş ve çıkış verilerinin günlüğe kaydedilmesini içerir.
Şu anda etkinlik düzeyinde izleme, ayrıntılı akışı kullanarak kayıtları yazar. Bu nedenle izlemenin yanında ayrıntılı günlük kaydını da etkinleştirmeniz gerekir. İzleme etkinleştirilmiş grafik runbook'lar için ilerleme durumu kayıtlarını günlüğe kaydetmeye gerek yoktur. Temel izleme aynı amaca hizmet eder ve daha bilgilendiricidir.
Görüntüden, grafik runbook'lar için ayrıntılı günlüğe kaydetme ve izlemeyi etkinleştirmenin üretim İş Akışları görünümünde çok daha fazla bilgi sağladığını görebilirsiniz. Runbook kullanılarak üretim sorunlarını gidermek için bu ek bilgiler hayati önem taşıyabilir.
Ancak, sorun giderme için runbook'un ilerleme durumunu izlemek için bu bilgilere ihtiyacınız yoksa, genel bir uygulama olarak izlemeyi kapalı tutmak isteyebilirsiniz. İzleme kayıtları özellikle çok sayıda olabilir. Grafik runbook izleme ile, Temel veya Ayrıntılı izleme yapılandırmanıza bağlı olarak etkinlik başına iki ila dört kayıt alabilirsiniz.
Etkinlik düzeyi izlemeyi etkinleştirmek için:
Azure portalında Otomasyon hesabınızı açın.
İşlem Otomasyonu altında Runbook'lar'ı seçerek Runbook'ların listesini açın.
Runbook'lar sayfasında, runbook listenizden bir "grafik runbook" seçin.
Ayarlar altında Günlüğe kaydetme ve izleme'ye tıklayın.
Ayrıntılı günlük kaydını etkinleştirmek için Günlük ve İzleme sayfasında, Ayrıntılı kayıtları günlüğe kaydet altında Açık'a tıklayın.
Etkinlik düzeyi izleme'nin altında, istediğiniz izleme düzeyine göre izleme düzeyini Temel veya Ayrıntılı olarak değiştirin.
Microsoft Azure İzleyici günlüklerinde çalışma kitabı çıktısını ve iletilerini alın
Azure Otomasyonu runbook iş durumunu ve iş akışlarını Log Analytics çalışma alanınıza gönderebilir. Azure İzleyici şunları yapmanızı sağlayan günlükleri destekler:
- Otomasyon işlerinize ilişkin içgörü edinin.
- Runbook iş durumunuz temelinde bir e-posta veya uyarı tetikleyin; örneğin, Başarısız veya Askıya Alındı.
- İş akışları arasında gelişmiş sorgular yazın.
- Farklı Otomasyon hesaplarındaki işleri bağıntılandırın.
- İş geçmişini görselleştirme.
Azure İzleyici Günlükleri ile iş verilerini toplamak, ilişkilendirmek ve üzerinde işlem yapmak için tümleştirmeyi yapılandırma hakkında daha fazla bilgi için bkz. Otomasyondan Azure İzleyici Günlüklerine iş durumu ve iş akışlarını iletme.
Sonraki adımlar
- Örnek sorgular için bkz . İş günlükleri ve iş akışları için örnek sorgular
- Runbook'larla çalışmak için bkz. Azure Otomasyonu içinde runbook'ları yönetme.
- PowerShell betiğini bilmiyorsanız PowerShell belgelerine bakın.
- Azure Otomasyonu PowerShell cmdlet başvurusu için bkz. Az.Automation.
- Runbook çıkışı ve ileti akışlarıyla ilgili sorunları gidermek için bkz. Runbook sorunlarını giderme.