Azure Otomasyonu'de zamanlamaları yönetme

Azure Otomasyonu'da bir runbook'u belirli bir zamanda başlayacak şekilde zamanlamak için bir veya daha fazla zamanlamaya bağlarsınız. Zamanlama, Azure portalında runbook'lar için bir kez veya yinelenen bir saatlik veya günlük zamanlamada çalışacak şekilde yapılandırılabilir. Ayrıca bunları haftalık, aylık, haftanın belirli günleri veya ayın günleri ya da ayın belirli bir günü için zamanlayabilirsiniz. Bir runbook, birden çok zaman çizelgesine bağlanabilir ve bir zaman çizelgesine birden çok runbook bağlı olabilir.

Dekont

Azure Otomasyonu Yaz Saati uygulamasını destekler ve otomasyon işlemleri için uygun şekilde zamanlar.

Dekont

Zamanlamalar şu anda Azure Otomasyonu DSC yapılandırmaları için etkinleştirilmemiş.

Zamanlamalara erişmek için kullanılan PowerShell cmdlet'leri

Aşağıdaki tabloda yer alan cmdlet'ler PowerShell ile Otomasyon zamanlamaları oluşturur ve yönetir. Az modüllerinin bir parçası olarak göndermektedirler.

Cmdlet'ler Tanım
Get-AzAutomationSchedule Bir zamanlama alır.
Get-AzAutomationScheduledRunbook Zamanlanmış runbook'ları alır.
New-AzAutomationSchedule Yeni bir zamanlama oluşturur.
Register-AzAutomationScheduledRunbook Bir runbook'u bir zamanlamayla ilişkilendirir.
Remove-AzAutomationSchedule Zamanlamayı kaldırır.
Set-AzAutomationSchedule Mevcut bir zamanlamanın özelliklerini ayarlar.
Unregister-AzAutomationScheduledRunbook Bir runbook'u bir zamanlamadan kaldırır.

Bir zamanlama oluşturma

Runbook'larınız için Azure portalından, PowerShell ile veya bir Azure Resource Manager (ARM) şablonu kullanarak yeni bir zamanlama oluşturabilirsiniz. Runbook'larınızı ve otomatikleştirdikleri işlemleri etkilememek için, önce test için ayrılmış bir Otomasyon hesabıyla bağlantılı zamanlamaları olan runbook'ları test etmelisiniz. Test, zamanlanmış runbook'larınızın düzgün çalışmaya devam ettiğini doğrular. Bir sorun görürseniz, güncelleştirilmiş runbook sürümünü üretime geçirmeden önce sorunları giderebilir ve gerekli değişiklikleri uygulayabilirsiniz.

Dekont

Modüller'den Azure modüllerini güncelleştir seçeneğini belirleyerek bunları el ile güncelleştirmediğiniz sürece Otomasyon hesabınız modüllerin yeni sürümlerini otomatik olarak almaz. Azure Otomasyonu, yeni bir zamanlanmış iş çalıştırıldığında Otomasyon hesabınızdaki en son modülleri kullanır.

Azure portalında yeni zamanlama oluşturma

  1. Otomasyon hesabınızda, sol bölmede Paylaşılan Kaynaklar'ın altında Zamanlamalar'ı seçin.

  2. Zamanlamalar sayfasında Zamanlama ekle'yi seçin.

  3. Yeni zamanlama sayfasında bir ad girin ve isteğe bağlı olarak yeni zamanlama için bir açıklama girin.

    Dekont

    Otomasyon zamanlamaları şu anda zamanlama adında özel karakterlerin kullanılmasını desteklememektedir.

  4. Bir Kez veya Yinelenen'i seçerek zamanlamanın bir kez mi yoksa yeniden yinelenen bir zamanlamada mı çalıştırılıp çalıştırılmayacağını seçin. Bir kez'i seçerseniz bir başlangıç saati belirtin ve ardından Oluştur'u seçin. Yinelenen'i seçerseniz bir başlangıç saati belirtin. Yineleme sıklığı için runbook'un ne sıklıkta yinelemesini istediğinizi seçin. Saate, güne, haftaya veya aya göre seçin.

    • Hafta'yı seçerseniz, haftanın günleri arasından seçim yapmanız için sunulur. İstediğiniz kadar gün seçin. Zamanlamanızın ilk çalıştırması, başlangıç saatinden sonra seçilen ilk günde gerçekleşir. Örneğin, hafta sonu zamanlaması seçmek için Cumartesi ve Pazar'ı seçin.

    Setting weekend recurring schedule

    • Ay'ı seçerseniz size farklı seçenekler sunulur. Aylık oluşumlar seçeneği için Ay günleri veya Hafta günleri'ni seçin. Ay günleri'ni seçerseniz, istediğiniz kadar gün seçebilmeniz için bir takvim görüntülenir. Geçerli ay içinde gerçekleşmeyen 31. tarih gibi bir tarih seçerseniz zamanlama çalışmaz. Zamanlamanın son günde çalışmasını istiyorsanız, Ayın son günü çalıştır'ın altında Evet'i seçin. Hafta günleri'ni seçerseniz Her zaman yinele seçeneği görüntülenir. Birinci, İkinci, Üçüncü, Dördüncü veya Son'u seçin. Son olarak, tekrar etmek için bir gün seçin.

    Monthly schedule on first, fifteenth, and last day of the month

  5. Tamamladığınızda Oluştur'u seçin.

PowerShell ile yeni zamanlama oluşturma

Zamanlama oluşturmak için New-AzAutomationSchedule cmdlet'ini kullanın. Zamanlamanın başlangıç saatini ve çalışma sıklığını belirtirsiniz. Aşağıdaki örneklerde birçok farklı zamanlama senaryosunun nasıl oluşturulacağı gösterilmektedir.

Dekont

Otomasyon zamanlamaları şu anda zamanlama adında özel karakterlerin kullanılmasını desteklememektedir.

Tek seferlik zamanlama oluşturma

Aşağıdaki örnek tek seferlik bir zamanlama oluşturur.

$TimeZone = ([System.TimeZoneInfo]::Local).Id
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule01" -StartTime "23:00" -OneTime -ResourceGroupName "ResourceGroup01" -TimeZone $TimeZone

Yinelenen zamanlama oluşturma

Aşağıdaki örnekte, bir yıl boyunca her gün saat 13:00'te çalışan yinelenen bir zamanlamanın nasıl oluşturulacağı gösterilmektedir.

$StartTime = Get-Date "13:00:00"
$EndTime = $StartTime.AddYears(1)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule02" -StartTime $StartTime -ExpiryTime $EndTime -DayInterval 1 -ResourceGroupName "ResourceGroup01"

Haftalık yinelenen zamanlama oluşturma

Aşağıdaki örnekte, yalnızca hafta içi günlerde çalışan haftalık bir zamanlamanın nasıl oluşturulacağı gösterilmektedir.

$StartTime = (Get-Date "13:00:00").AddDays(1)
[System.DayOfWeek[]]$WeekDays = @([System.DayOfWeek]::Monday..[System.DayOfWeek]::Friday)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule03" -StartTime $StartTime -WeekInterval 1 -DaysOfWeek $WeekDays -ResourceGroupName "ResourceGroup01"

Hafta sonları için haftalık yinelenen zamanlama oluşturma

Aşağıdaki örnekte, yalnızca hafta sonları çalışan haftalık bir zamanlamanın nasıl oluşturulacağı gösterilmektedir.

$StartTime = (Get-Date "18:00:00").AddDays(1)
[System.DayOfWeek[]]$WeekendDays = @([System.DayOfWeek]::Saturday,[System.DayOfWeek]::Sunday)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Weekends 6PM" -StartTime $StartTime -WeekInterval 1 -DaysOfWeek $WeekendDays -ResourceGroupName "ResourceGroup01"

Ayın ilk, on beş ve son günleri için yinelenen bir zamanlama oluşturma

Aşağıdaki örnekte, ayın ilk, onbeş ve son gününde çalışan yinelenen bir zamanlamanın nasıl oluşturulacağı gösterilmektedir.

$StartTime = (Get-Date "18:00:00").AddDays(1)
New-AzAutomationSchedule -AutomationAccountName "TestAzureAuto" -Name "1st, 15th and Last" -StartTime $StartTime -DaysOfMonth @("One", "Fifteenth", "Last") -ResourceGroupName "TestAzureAuto" -MonthInterval 1

Resource Manager şablonuyla zamanlama oluşturma

Bu örnekte, yeni bir iş zamanlaması oluşturan bir Otomasyon Resource Manager (ARM) şablonu kullanıyoruz. Otomasyon iş zamanlamalarını yönetmeye yönelik bu şablon hakkında genel bilgi için bkz . Microsoft.Automation automationAccounts/jobSchedules şablon başvurusu.

Bu şablon dosyasını bir metin düzenleyicisine kopyalayın:

{
  "name": "5d5f3a05-111d-4892-8dcc-9064fa591b96",
  "type": "Microsoft.Automation/automationAccounts/jobSchedules",
  "apiVersion": "2015-10-31",
  "properties": {
    "schedule": {
      "name": "scheduleName"
    },
    "runbook": {
      "name": "runbookName"
    },
    "runOn": "hybridWorkerGroup",
    "parameters": {}
  }
}

Aşağıdaki parametre değerlerini düzenleyin ve şablonu JSON dosyası olarak kaydedin:

  • İş zamanlaması nesne adı: İş zamanlaması nesnesinin adı olarak GUID (Genel Benzersiz Tanımlayıcı) kullanılır.

    Önemli

    BIR ARM şablonuyla dağıtılan her iş zamanlaması için GUID benzersiz olmalıdır. Mevcut bir zamanlamayı yeniden zamanlasanız bile GUID'yi değiştirmeniz gerekir. Bu, daha önce aynı şablonla oluşturulmuş mevcut bir iş zamanlamasını silseniz bile geçerlidir. Aynı GUID'nin yeniden kullanılmaya başlanması, başarısız bir dağıtıma neden olur.

    Bu Ücretsiz Çevrimiçi GUID Oluşturucu gibi, sizin için yeni bir GUID oluşturabilen çevrimiçi hizmetler vardır.

  • Zamanlama adı: Belirtilen runbook'a bağlanacak Otomasyon iş zamanlamasının adını temsil eder.

  • Runbook adı: İş zamanlamasının ilişkilendirileceği Otomasyon runbook'unun adını temsil eder.

Dosya kaydedildikten sonra aşağıdaki PowerShell komutuyla runbook iş zamanlamasını oluşturabilirsiniz. komutu, şablonun TemplateFile yolunu ve dosya adını belirtmek için parametresini kullanır.

New-AzResourceGroupDeployment -ResourceGroupName "ContosoEngineering" -TemplateFile "<path>\RunbookJobSchedule.json"

Bir runbook, birden çok zaman çizelgesine bağlanabilir ve bir zaman çizelgesine birden çok runbook bağlı olabilir. Bir runbook'un parametreleri varsa, bunlar için değerler sağlayabilirsiniz. Tüm zorunlu parametreler için değerler sağlamanız gerekir ve isteğe bağlı parametreler için de değer sağlayabilirsiniz. Bu değerler runbook bu zamanlama tarafından her başlatıldığında kullanılır. Aynı runbook'u başka bir zamanlamaya ekleyebilir ve farklı parametre değerleri belirtebilirsiniz.

  1. Azure portalında, otomasyon hesabınızda İşlem Otomasyonu altında Runbook'lar'ı seçin.
  2. Zamanlamak için runbook'un adını seçin.
  3. Runbook şu anda bir zamanlamaya bağlı değilse, yeni bir zamanlama oluşturma veya var olan bir zamanlamaya bağlantı oluşturma seçeneği sunulur.
  4. Runbook'ta parametreler varsa Çalıştırma ayarlarını değiştir (Varsayılan:Azure) seçeneğini belirleyebilirsiniz ve Parametreler bölmesi görüntülenir. Parametre bilgilerini buraya girebilirsiniz.

Bir zamanlamayı bağlamak için Register-AzAutomationScheduledRunbook cmdlet'ini kullanın. Parametreler parametresiyle runbook’un parametreleri için değer belirtebilirsiniz. Parametre değerlerini belirtme hakkında daha fazla bilgi için bkz. Azure Otomasyonu'de Runbook başlatma. Aşağıdaki örnekte, parametreleri olan bir Azure Resource Manager cmdlet'ini kullanarak bir zamanlamayı runbook'a bağlama işlemi gösterilmektedir.

$automationAccountName = "MyAutomationAccount"
$runbookName = "Test-Runbook"
$scheduleName = "Sample-DailySchedule"
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Register-AzAutomationScheduledRunbook -AutomationAccountName $automationAccountName `
-Name $runbookName -ScheduleName $scheduleName -Parameters $params `
-ResourceGroupName "ResourceGroup01"

Runbook'ları daha sık çalışacak şekilde zamanlama

Azure Otomasyonu içindeki bir zamanlamanın yapılandırılabilmesi için en sık kullanılan aralık bir saattir. Zamanlamaların bundan daha sık çalıştırılmasını istiyorsanız iki seçenek vardır:

  • Runbook için bir web kancası oluşturun ve Web kancasını çağırmak için Azure Logic Apps'i kullanın. Azure Logic Apps, zamanlamayı tanımlamak için daha ayrıntılı ayrıntı düzeyi sağlar.

  • Her biri birbirinin 15 dakika içinde başlayıp saatte bir çalıştırılacak dört zamanlama oluşturun. Bu senaryo runbook'un farklı zamanlamalarla 15 dakikada bir çalışmasını sağlar.

Zamanlamayı devre dışı bırakma

Bir zamanlamayı devre dışı bırakırsanız, buna bağlı runbook'lar artık bu zamanlamaya göre çalışmaz. Bir zamanlamayı el ile devre dışı bırakabilir veya zamanlamaları oluştururken sıklık içeren bir süre sonu ayarlayabilirsiniz. Süre sonu süresine ulaşıldığında zamanlama devre dışı bırakılır.

Azure portalından zamanlamayı devre dışı bırakma

  1. Otomasyon hesabınızda, sol bölmede Paylaşılan Kaynaklar'ın altında Zamanlamalar'ı seçin.
  2. Ayrıntılar bölmesini açmak için zamanlamanın adını seçin.
  3. Etkin'i Hayır olarak değiştirin.

Dekont

Geçmişte başlangıç saati olan bir zamanlamayı devre dışı bırakmak istiyorsanız, kaydetmeden önce başlangıç tarihini gelecekte bir saat olarak değiştirmeniz gerekir.

PowerShell ile zamanlamayı devre dışı bırakma

Mevcut zamanlamanın özelliklerini değiştirmek için Set-AzAutomationSchedule cmdlet'ini kullanın. Zamanlamayı devre dışı bırakmak için parametre için False değerini IsEnabled belirtin.

Aşağıdaki örnekte, Azure Resource Manager cmdlet'ini kullanarak bir runbook zamanlamasının nasıl devre dışı bırakıldığı gösterilmektedir.

$automationAccountName = "MyAutomationAccount"
$scheduleName = "Sample-MonthlyDaysOfMonthSchedule"
Set-AzAutomationSchedule -AutomationAccountName $automationAccountName `
-Name $scheduleName -IsEnabled $false -ResourceGroupName "ResourceGroup01"

Zamanlamayı kaldırma

Zamanlamalarınızı kaldırmaya hazır olduğunuzda Azure portalını veya PowerShell'i kullanabilirsiniz. Yalnızca önceki bölümde açıklandığı gibi devre dışı bırakılmış bir zamanlamayı kaldırabileceğinizi unutmayın.

Azure portalını kullanarak zamanlamayı kaldırma

  1. Otomasyon hesabınızda, sol bölmede Paylaşılan Kaynaklar'ın altında Zamanlamalar'ı seçin.
  2. Ayrıntılar bölmesini açmak için zamanlamanın adını seçin.
  3. Sil'e tıklayın.

PowerShell ile zamanlamayı kaldırma

Mevcut bir zamanlamayı silmek için aşağıda gösterildiği gibi cmdlet'ini kullanabilirsiniz Remove-AzAutomationSchedule .

$automationAccountName = "MyAutomationAccount"
$scheduleName = "Sample-MonthlyDaysOfMonthSchedule"
Remove-AzAutomationSchedule -AutomationAccountName $automationAccountName `
-Name $scheduleName -ResourceGroupName "ResourceGroup01"

Sonraki adımlar

  • Zamanlamalara erişmek için kullanılan cmdlet'ler hakkında daha fazla bilgi edinmek için bkz. Azure Otomasyonu modülleri yönetme.
  • Runbook'lar hakkında genel bilgi için bkz. Azure Otomasyonu'de Runbook yürütme.