Azure Otomasyonu'nda Runbook başlatma

Aşağıdaki tablo, belirli bir senaryonuza en uygun Azure Otomasyonu runbook başlatma yöntemini belirlemenize yardımcı olur. Bu makale, Azure portalı ve Windows PowerShell ile runbook başlatmaya ilişkin ayrıntıları içerir. Diğer yöntemlerle ilgili ayrıntılar, aşağıdaki bağlantılardan erişebileceğiniz diğer belgelerde verilmiştir.

Yöntem Özellik -lerini
Azure portalı
  • Etkileşimli kullanıcı arabirimine sahip en basit yöntem.
  • Basit parametre değerleri sağlamak için form.
  • İş durumunu kolayca izleyin.
  • Azure oturum açma ile kimliği doğrulanmış erişim.
  • Windows PowerShell
  • Windows PowerShell cmdlet'leri ile komut satırından arama.
  • Birden çok adımla otomatik özelliğe dahil edilebilir.
  • İsteğin kimliği sertifika veya OAuth kullanıcı sorumlusu / hizmet sorumlusu ile doğrulanır.
  • Basit ve karmaşık parametre değerleri sağlayın.
  • İş durumunu izleme.
  • PowerShell cmdlet'lerini desteklemek için gereken istemci.
  • Azure Otomasyonu API
  • En esnek yöntem ama aynı zamanda en karmaşık.
  • HTTP isteğinde bulunabilen herhangi bir özel koddan çağrı yapın.
  • Sertifikayla veya Oauth kullanıcı sorumlusu / hizmet sorumlusuyla kimliği doğrulanmış istek.
  • Basit ve karmaşık parametre değerleri sağlayın. API'yi kullanarak bir Python runbook'u çağırıyorsanız JSON yükü seri hale getirilmelidir.
  • İş durumunu izleme.
  • Web Kancaları
  • Runbook'u tek bir HTTP isteğinden başlatın.
  • URL'de güvenlik belirteci ile kimliği doğrulandı.
  • İstemci, web kancası oluşturulduğunda belirtilen parametre değerlerini geçersiz kılamaz. Runbook, HTTP isteği ayrıntılarıyla doldurulmuş tek bir parametre tanımlayabilir.
  • web kancası URL'si aracılığıyla iş durumunu izleme olanağı yok.
  • Azure Uyarısına yanıt verme
  • Azure uyarısına yanıt olarak bir runbook başlatın.
  • Runbook için web kancasını yapılandırın ve uyarı bağlantısı oluşturun.
  • URL'de güvenlik belirteci ile kimliği doğrulandı.
  • Plan
  • Runbook'u saatlik, günlük, haftalık veya aylık zamanlamaya göre otomatik olarak başlatın.
  • Azure portalı, PowerShell cmdlet'leri veya Azure API aracılığıyla zamanlamayı işleme.
  • Zamanlama ile kullanılacak parametre değerlerini sağlayın.
  • Başka bir Runbook'tan
  • Bir runbook'u başka bir runbook'ta etkinlik olarak kullanın.
  • Birden çok runbook tarafından kullanılan işlevler için kullanışlıdır.
  • Alt runbook'a parametre değerleri sağlayın ve üst runbook'ta çıktıyı kullanın.
  • Aşağıdaki görüntüde runbook'un yaşam döngüsündeki ayrıntılı adım adım işlemler gösterilmektedir. Runbook'un Azure Otomasyonu'da başlamasının farklı yollarını içerir. Karma Runbook Çalışanı'nın Azure Otomasyonu runbook'ları yürütmesi için gereken bileşenler ve farklı bileşenler arasındaki etkileşimler. Veri merkezinizde Otomasyon runbook'larını yürütme hakkında bilgi edinmek için bkz. karma runbook çalışanları

    Runbook Architecture

    Runbook parametreleriyle çalışma

    Azure portalından veya Windows PowerShell'den bir runbook başlattığınızda yönerge Azure Otomasyonu web hizmeti aracılığıyla gönderilir. Bu hizmet karmaşık veri türlerine sahip parametreleri desteklemez. Karmaşık bir parametre için bir değer sağlamanız gerekiyorsa, bunu Azure Otomasyonu'daki Alt runbook'larda açıklandığı gibi başka bir runbook'tan satır içi olarak çağırmanız gerekir.

    Azure Otomasyonu web hizmeti, aşağıdaki bölümlerde açıklandığı gibi belirli veri türlerini kullanan parametreler için özel işlevler sağlar.

    Adlandırılmış değerler

    Parametre [object] veri türüyse, şu JSON biçimini kullanarak adlandırılmış değerlerin listesini gönderebilirsiniz: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}. Bu değerler basit türler olmalıdır. Runbook, parametreyi her adlandırılmış değere karşılık gelen özelliklere sahip bir PSCustomObject olarak alır.

    kullanıcıadlı bir parametreyi kabul eden aşağıdaki sınama runbook’u göz önünde bulundurun.

    Workflow Test-Parameters
    {
       param (
          [Parameter(Mandatory=$true)][object]$user
       )
        $userObject = $user | ConvertFrom-JSON
        if ($userObject.Show) {
            foreach ($i in 1..$userObject.RepeatCount) {
                $userObject.FirstName
                $userObject.LastName
            }
        }
    }
    

    Aşağıdaki metin kullanıcı parametresi için kullanılabilir.

    {FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
    

    Bu, aşağıdaki çıkışı döndürür:

    Joe
    Smith
    Joe
    Smith
    

    Diziler

    Parametre [dizi] veya [dize[]] gibi bir diziyse, ona bir değer listesi göndermek için aşağıdaki JSON biçimini kullanabilirsiniz: [Değer1, Değer2, Değer3]. Bu değerler basit türler olmalıdır.

    kullanıcıadlı bir parametreyi kabul eden aşağıdaki sınama runbook’u göz önünde bulundurun.

    Workflow Test-Parameters
    {
       param (
          [Parameter(Mandatory=$true)][array]$user
       )
        if ($user[3]) {
            foreach ($i in 1..$user[2]) {
                $ user[0]
                $ user[1]
            }
        }
    }
    

    Aşağıdaki metin kullanıcı parametresi için kullanılabilir.

    ["Joe","Smith",2,true]
    

    Bu, aşağıdaki çıkışı döndürür:

    Joe
    Smith
    Joe
    Smith
    

    Kimlik Bilgileri

    Parametre veri türü PSCredentialise, Azure Otomasyonu kimlik bilgisi varlığının adını sağlayabilirsiniz. Runbook, belirttiğiniz ada sahip kimlik bilgilerini alır. Aşağıdaki test runbook'u adlı credentialbir parametreyi kabul eder.

    Workflow Test-Parameters
    {
       param (
          [Parameter(Mandatory=$true)][PSCredential]$credential
       )
       $credential.UserName
    }
    

    adlı My Credentialbir kimlik bilgisi varlığı olduğu varsayılarak kullanıcı parametresi için aşağıdaki metin kullanılabilir.

    My Credential
    

    Kimlik bilgilerindeki kullanıcı adının olduğu jsmithvarsayıldığında aşağıdaki çıkış görüntülenir.

    jsmith
    

    Azure portalı ile runbook başlatma

    1. Azure portalında Otomasyon'a tıklayın ve ardından Otomasyon hesabının adını seçin.
    2. Sol bölmeden Runbook'lar'ı seçin.
    3. Runbook'lar sayfasında bir runbook seçin ve başlat'a tıklayın.
    4. Runbook'un parametreleri varsa, her parametre için bir metin kutusu ile değerler sağlamanız istenir. Parametreler hakkında daha fazla bilgi için bkz . Runbook Parametreleri.
    5. İş bölmesinde runbook işinin durumunu görüntüleyebilirsiniz.

    PowerShell ile runbook başlatma

    Start-AzAutomationRunbook'u kullanarak Windows PowerShell ile bir runbook başlatabilirsiniz. Aşağıdaki örnek kod, Test-Runbook adlı bir runbook'u başlatır.

    Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
    

    Start-AzAutomationRunbook runbook başlatıldıktan sonra durumu izlemek için kullanabileceğiniz bir iş nesnesi döndürür. Daha sonra bu iş nesnesini Get-AzAutomationJob ile kullanarak işin durumunu belirleyebilir ve get-AzAutomationJobOutput çıktısını alabilirsiniz. Aşağıdaki örnek Test-Runbook adlı bir runbook başlatır, tamamlanana kadar bekler ve ardından çıktısını görüntüler.

    $runbookName = "Test-Runbook"
    $ResourceGroup = "ResourceGroup01"
    $AutomationAcct = "MyAutomationAccount"
    
    $job = Start-AzAutomationRunbook -AutomationAccountName $AutomationAcct -Name $runbookName -ResourceGroupName $ResourceGroup
    
    $doLoop = $true
    While ($doLoop) {
       $job = Get-AzAutomationJob -AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup
       $status = $job.Status
       $doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped"))
    }
    
    Get-AzAutomationJobOutput -AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup -Stream Output
    

    Runbook parametre gerektiriyorsa, bunları karma tablo olarak sağlamanız gerekir. Karma tablo anahtarı parametre adıyla eşleşmelidir ve değer parametre değeridir. Aşağıdaki örnek; FirstName ve LastName adlı iki dize parametresi, RepeatCount adlı bir tamsayı ve Show adlı bir boolean parametresiyle bir runbook’u nasıl çalıştıracağınızı gösterir. Parametreler hakkında daha fazla bilgi için bkz . Runbook Parametreleri.

    $params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
    Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
    

    Sonraki adımlar