Share via


Runbook çıkışını ve ileti akışlarını yapılandırma

Ç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, bir betikten veya iş akışından çıkış göndermek için birden çok akış sağlar. Azure Otomasyonu bu akışların her biriyle farklı çalışır. Runbook oluştururken akışları kullanmak için en iyi yöntemleri izlemeniz gerekir.

Aşağıdaki tabloda, yayımlanan runbook'lar ve bir runbook'un test edilmesi sırasında Azure portalında her akışın davranışı kısaca açıklanmaktadır. Çıkış akışı, runbook'lar arasındaki iletişim için kullanılan ana akıştır. Diğer akışlar, kullanıcıya bilgi iletmeyi amaçlayan ileti akışları olarak sınıflandırılır.

Akış Tanım Yayımlandı Test etme
Hata Kullanıcıya yönelik hata iletisi. Bir özel durumun aksine, runbook varsayılan olarak bir hata iletisinden sonra devam eder. İş geçmişine yazıldı Test çıktısı bölmesinde görüntülenir
Hata Ayıklama 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 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. yalnızca runbook için ilerleme günlüğü açıksa iş 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. yalnızca runbook için ayrıntılı günlük açıksa iş geçmişine yazılır Test çıktısı bölmesinde yalnızca değişken runbook'ta Devam olarak ayarlandıysa VerbosePreference 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 geçerli runbook'u çağıran üst runbook'lar tarafından kullanılacak nesneler için bu akışı kullanır. Üst öğe bir runbook'u satır içi olarak çağırdığında, alt öğe çıkış akışından üst öğeye veri döndürür.

Runbook'unuz, genel bilgileri istemciye yalnızca başka bir runbook tarafından hiç çağrılmadıysa 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.

Write-Output kullanarak runbook'unuzun çıkış akışına veri yazmasını 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 çıkışı işleme

Bir runbook işlevi çıkış akışına yazdığında, çıkış runbook'a geri geçirilir. Runbook bu çıkışı bir değişkene atarsa çıkış çıkış akışına yazılamaz. İş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ı günlük kaydını da açmanız gerekir.

Çıkış veri türünü bildirme

Çıkış veri türlerine örnekler aşağıda verilmiştir:

  • System.String
  • System.Int32
  • System.Collections.Hashtable
  • Microsoft.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 özniteliğin çalışma zamanı sırasında hiçbir etkisi yoktur, ancak runbook'un beklenen çıktısının tasarım zamanında bir gösterge sağlar. 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
}

Grafik runbook'ta çıkış veri türünü bildirme

Bir çıkış türünü grafik veya grafik powershell iş akışı runbook'unda bildirmek için Giriş ve Çıkış menü seçeneğini belirleyip çıkış türünü girebilirsiniz. Üst runbook başvurduğunda türü kolayca tanımlanabilir hale getirmek 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 databus'ta kullanıma sunar ve özellikler koşullu mantık, günlüğe kaydetme ve diğer runbook etkinlikleri için değer olarak başvurma için kullanıldığında esnekliği artırır.
Runbook Input and Output option

Dekont

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 uyguladığınızda, Yönetilen kimlikleri kullanarak Azure ile kimlik doğrulamasını yöneten Runbook kimliğini doğrulama şablonu olarak bir runbook'nuz vardır. Normalde belirli bir senaryoyu otomatikleştirmek için temel mantık gerçekleştiren ikinci runbook, bu durumda Runbook kimliğini doğrulama ş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 yararlanan bir kaynağa karşı bir şey yapması gerekir.

Burada AuthenticateTo-Azure runbook'unun temel mantığı verilmiştır.
Authenticate Runbook Template Example.

Runbook, kimlik doğrulama profili özelliklerini döndüren çıkış türünü Microsoft.Azure.Commands.Profile.Models.PSAzureProfileiçerir.
Runbook Output Type Example

Bu runbook basit olsa da, burada çağrılan bir yapılandırma öğesi vardır. Son etkinlik, parametre için Write-Output bir PowerShell ifadesi kullanarak bir değişkene profil verileri yazmak için cmdlet'ini Inputobject yürütür. Bu parametre için Write-Outputgereklidir.

Bu örnekteki Test-ChildOutputType adlı ikinci runbook, iki etkinliği tanımlar.
Example Child Output Type Runbook

İlk etkinlik AuthenticateTo-Azure runbook'unu çağırır. İkinci etkinlik cmdlet'ini Write-Verbose, Veri kaynağı Etkinlik çıkışı olarak ayarlanmış şekilde çalıştırır. Ayrıca, Alan yolu, AuthenticateTo-Azure runbook'un bağlam çıktısı olan Context.Subscription.Name olarak ayarlanır.

Screenshot of write-verbose cmdlet parameter data source.

Sonuçta elde edilen çıkış, aboneliğin adıdır.
Test-ChildOutputType Runbook Results

İ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 oluşan sorunları günlüğe 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 yürütülmeye devam eder. İletiyi oluşturmadan önce runbook'un bir tercih değişkeni ayarlamasını sağlayarak runbook'unuzun bir uyarı veya hatada askıya alınması gerektiğini belirtebilirsiniz. Örneğin, runbook'un bir özel durumda olduğu gibi bir hatada askıya alınmasına neden olmak için değişkeni Durdur olarak ayarlayın ErrorActionPreference .

Write-Warning veya Write-Error cmdlet'ini kullanarak bir uyarı veya hata iletisi oluşturun. Etkinlikler uyarı ve hata 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 herhangi bir hata ayıklama akışı verisi yakalamaz, runbook bunu yakalamak üzere yapılandırılmışsa yalnızca çıkış, hata ve uyarı verilerinin yanı sıra ayrıntılı veriler de yakalanır.

Hata ayıklama akışı verilerini yakalamak için runbook'larınızda iki eylem gerçekleştirmeniz gerekir:

  1. Hata ayıklama iletisiyle karşılaşıldığında PowerShell'e devam etmesi için komutunu veren değişkenini $GLOBAL:DebugPreference="Continue"ayarlayın. $GLOBAL: bölümü PowerShell'e bunu deyimi yürütülürken betiğin içinde yer alan yerel kapsam yerine genel kapsamda gerçekleştirmesini söyler.

  2. 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, ve Write-Debug cmdlet'leri kullanılarak Write-Output iki farklı akışın çıktısını alma amacıyla yapılandırılır.

Write-Output "This is an output message." 
Write-Debug "This is a debug message."

Bu runbook olduğu gibi yürütülecekse runbook işinin çıkış bölmesi aşağıdaki çıkışın akışını yapar:

This is an output message.

Bu örnekte runbook önceki örneğe benzer şekilde yapılandırılmıştır, ancak deyimi $GLOBAL:DebugPreference="Continue" deyiminin Write-Debug sonuna eklenmiştir5>&1.

Write-Output "This is an output message." 
$GLOBAL:DebugPreference="Continue" 
Write-Debug "This is a debug message." 5>&1

Bu runbook yürütülecek olsaydı runbook işinin çıkış bölmesi aşağıdaki çıkışın akışını yapar:

This is an output message.
This is a debug message.

Bunun nedeni, deyiminin $GLOBAL:DebugPreference="Continue" PowerShell'e hata ayıklama iletilerini görüntülemesini bildirmesi ve deyiminin sonuna eklenmesinin 5>&1Write-Debug PowerShell'e akış 5'i (hata ayıklama) akış 1'e (çıkış) yönlendirmesini bildirmesi nedeniyle oluşur.

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 ayrıntılı iletiler kullanmalıdır.

Varsayılan olarak, performans nedeniyle iş geçmişi yayımlanmış runbook'lardan ayrıntılı iletileri 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 Ayrıntılı Kayıtları Günlüğe Kaydet ayarıyla Azure portalı Yapılandır 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ı tutmanız gerekir.

Bir runbook'u test ederken, runbook ayrıntılı kayıtları günlüğe kaydedecek şekilde yapılandırılmış olsa bile ayrıntılı iletiler görüntülenmez. Runbook'u test ederken ayrıntılı iletileri görüntülemek için değişkeni Devam olarak ayarlamanız VerbosePreference gerekir. Bu değişken kümesiyle, Ayrıntılı iletiler Azure portalının Test çıkış bölmesinde 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

Azure portalının Yapılandır sekmesini kullanarak ilerleme durumu kayıtlarını günlüğe kaydedecek bir runbook yapılandırabilirsiniz. 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ı günlüğünü etkinleştirirseniz runbook'unuz her etkinlik çalıştırıldıktan önce ve çalıştırıldıktan 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.

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 tercih 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 Durdur
Devam
SilentlyContinue
ErrorActionPreference Devam Durdur
Devam
SilentlyContinue
VerbosePreference SilentlyContinue Durdur
Devam
SilentlyContinue

Sonraki tabloda runbook'larda geçerli olan tercih değişkeni değerlerinin davranışı listelenir.

Değer Davranış
Devam İletiyi günlüğe kaydeder ve runbook'u yürütmeye devam eder.
SilentlyContinue İletiyi günlüğe kaydetmeden runbook'u yürütmeye devam eder. Bu değer, iletiyi yoksayma etkisine sahiptir.
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'un İşler sekmesini kullanarak Azure portalında bir runbook işinin ayrıntılarını 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.

Dekont

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 Get-AzAutomationJobOutput cmdlet'ini kullanarak bir runbook'tan çıktı ve ileti alabilirsiniz. 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, runbook çıkış akışını işten 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, runbook'taki her etkinliğin başlangıç ve bitiş saatinin yanı sıra tüm etkinlik yeniden denemeleri ile 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 izlemeyi etkinleştirirken ayrıntılı günlük kaydını 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.

Graphical authoring job streams view

Görüntüden, grafik runbook'lar için ayrıntılı günlüğe kaydetmeyi ve izlemeyi etkinleştirmenin üretim İşi Akışlar görünümünde çok daha fazla bilgi sağladığını görebilirsiniz. Bu ek bilgiler runbook ile üretim sorunlarını gidermek için gerekli olabilir.

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:

  1. Azure portalında, Otomasyon hesabınızı açın.

  2. Runbook'ların listesini açmak için İşlem Otomasyonu altında Runbook'lar'ı seçin.

  3. Runbook'lar sayfasında runbook'lar listenizden bir grafik runbook seçin.

  4. Ayarlar altında Günlüğe kaydetme ve izleme'ye tıklayın.

  5. Ayrıntılı günlük kaydını etkinleştirmek için Günlük ve İzleme sayfasındaki Ayrıntılı kayıtları günlüğe kaydet'in altında Açık'a tıklayın.

  6. 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.

    Graphical Authoring Logging and Tracing page

Microsoft Azure İzleyici günlüklerinde runbook çıktısı ve iletileri alma

Azure Otomasyonu Log Analytics çalışma alanınıza runbook iş durumu ve iş akışları 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.

İş verilerini toplamak, ilişkilendirmek ve üzerinde işlem yapmak için Azure İzleyici Günlükleri ile tümleştirmeyi yapılandırma hakkında daha fazla bilgi için bkz . Otomasyondan Azure İzleyici Günlüklerine iş durumunu ve iş akışlarını iletme.

Sonraki adımlar