Zarządzanie harmonogramami w usłudze Azure Automation

Aby zaplanować uruchamianie elementu runbook w usłudze Azure Automation o określonej godzinie, należy połączyć go z co najmniej jednym harmonogramem. Harmonogram można skonfigurować tak, aby był uruchamiany raz lub w cyklicznym harmonogramie godzinowym lub dziennym dla elementów Runbook w witrynie Azure Portal. Można również zaplanować je dla tygodniowych, miesięcznych, określonych dni tygodnia lub dni miesiąca lub określonego dnia miesiąca. Element Runbook może zostać powiązany z wieloma harmonogramami, a harmonogram może zostać powiązany z wieloma elementami Runbook.

Uwaga

Usługa Azure Automation obsługuje czas letni i harmonogramy odpowiednie dla operacji automatyzacji.

Uwaga

Harmonogramy nie są obecnie włączone dla konfiguracji DSC usługi Azure Automation.

Polecenia cmdlet programu PowerShell używane do uzyskiwania dostępu do harmonogramów

Polecenia cmdlet w poniższej tabeli tworzą harmonogramy automatyzacji i zarządzają nimi za pomocą programu PowerShell. Są one dostarczane jako część modułów Az.

Polecenia cmdlet opis
Get-AzAutomationSchedule Pobiera harmonogram.
Get-AzAutomationScheduledRunbook Pobiera zaplanowane elementy Runbook.
New-AzAutomationSchedule Tworzy nowy harmonogram.
Register-AzAutomationScheduledRunbook Kojarzy element Runbook z harmonogramem.
Remove-AzAutomationSchedule Usuwa harmonogram.
Set-AzAutomationSchedule Ustawia właściwości istniejącego harmonogramu.
Unregister-AzAutomationScheduledRunbook Usuwanie skojarzenia elementu Runbook z harmonogramu.

Tworzenie harmonogramu

Nowy harmonogram elementów Runbook można utworzyć w witrynie Azure Portal przy użyciu programu PowerShell lub szablonu usługi Azure Resource Manager (ARM). Aby uniknąć wpływu na elementy Runbook i procesy, które automatyzują, należy najpierw przetestować wszystkie elementy Runbook połączone z kontem usługi Automation przeznaczonym do testowania. Test sprawdza, czy zaplanowane elementy Runbook nadal działają poprawnie. Jeśli wystąpi problem, możesz rozwiązać problem i zastosować wszelkie wymagane zmiany przed przeprowadzeniem migracji zaktualizowanej wersji elementu Runbook do środowiska produkcyjnego.

Uwaga

Twoje konto usługi Automation nie pobiera automatycznie żadnych nowych wersji modułów, chyba że zostały one ręcznie zaktualizowane, wybierając opcję Aktualizuj moduły platformy Azure w obszarze Moduły. Usługa Azure Automation używa najnowszych modułów na koncie usługi Automation po uruchomieniu nowego zaplanowanego zadania.

Tworzenie nowego harmonogramu w witrynie Azure Portal

  1. Na koncie usługi Automation w okienku po lewej stronie wybierz pozycję Harmonogramy w obszarze Udostępnione zasoby.

  2. Na stronie Harmonogramy wybierz pozycję Dodaj harmonogram.

  3. Na stronie Nowy harmonogram wprowadź nazwę i opcjonalnie wprowadź opis nowego harmonogramu.

    Uwaga

    Harmonogramy automatyzacji nie obsługują obecnie używania znaków specjalnych w nazwie harmonogramu.

  4. Wybierz, czy harmonogram jest uruchamiany raz, czy w harmonogramie powtarzanym, wybierając pozycję Raz lub Cyklicznie. Jeśli wybierzesz pozycję Raz, określ godzinę rozpoczęcia, a następnie wybierz pozycję Utwórz. W przypadku wybrania opcji Cykliczne określ godzinę rozpoczęcia. W polu Recur every (Powtarzaj co) wybierz częstotliwość powtarzania elementu Runbook. Wybierz według godziny, dnia, tygodnia lub miesiąca.

    • W przypadku wybrania pozycji Tydzień zostaną wyświetlone dni tygodnia do wyboru. Wybierz dowolną liczbę dni. Pierwszy przebieg harmonogramu nastąpi w pierwszym dniu wybranym po godzinie rozpoczęcia. Aby na przykład wybrać harmonogram weekendu, wybierz pozycję Sobota i Niedziela.

    Setting weekend recurring schedule

    • W przypadku wybrania pozycji Miesiąc otrzymujesz różne opcje. W przypadku opcji Wystąpienia miesięczne wybierz pozycję Dni miesiąca lub Dni tygodnia. Jeśli wybierzesz pozycję Dni miesiąca, zostanie wyświetlony kalendarz, aby można było wybrać dowolną liczbę dni. Jeśli wybierzesz datę, na przykład 31, która nie zostanie wykonana w bieżącym miesiącu, harmonogram nie zostanie uruchomiony. Jeśli chcesz, aby harmonogram był uruchamiany w ostatnim dniu, wybierz pozycję Tak w obszarze Uruchom w ostatnim dniu miesiąca. W przypadku wybrania pozycji Dni tygodnia zostanie wyświetlona opcja Powtarzaj każdą opcję. Wybierz pozycję Pierwszy, Drugi, Trzeci, Czwarty lub Ostatni. Na koniec wybierz dzień, na który chcesz powtórzyć.

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

  5. Po zakończeniu wybierz Utwórz.

Tworzenie nowego harmonogramu przy użyciu programu PowerShell

Użyj polecenia cmdlet New-AzAutomationSchedule, aby utworzyć harmonogramy. Należy określić godzinę rozpoczęcia harmonogramu i częstotliwość, z jaką ma być uruchamiana. W poniższych przykładach pokazano, jak utworzyć wiele różnych scenariuszy harmonogramu.

Uwaga

Harmonogramy automatyzacji nie obsługują obecnie używania znaków specjalnych w nazwie harmonogramu.

Tworzenie jednorazowego harmonogramu

Poniższy przykład tworzy jednorazowy harmonogram.

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

Tworzenie harmonogramu cyklicznego

W poniższym przykładzie pokazano, jak utworzyć cykliczny harmonogram uruchamiany codziennie o godzinie 13:00 przez rok.

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

Tworzenie cotygodniowego harmonogramu cyklicznego

W poniższym przykładzie pokazano, jak utworzyć harmonogram tygodniowy uruchamiany tylko w dni robocze.

$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"

Tworzenie cotygodniowego harmonogramu cyklicznego dla weekendów

W poniższym przykładzie pokazano, jak utworzyć harmonogram tygodniowy uruchamiany tylko w weekendy.

$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"

Tworzenie harmonogramu cyklicznego dla pierwszego, piętnastego i ostatniego dnia miesiąca

W poniższym przykładzie pokazano, jak utworzyć cykliczny harmonogram uruchamiany w pierwszym, piętnastym i ostatnim dniu miesiąca.

$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

Tworzenie harmonogramu przy użyciu szablonu usługi Resource Manager

W tym przykładzie używamy szablonu usługi Automation Resource Manager (ARM), który tworzy nowy harmonogram zadań. Aby uzyskać ogólne informacje o tym szablonie do zarządzania harmonogramami zadań usługi Automation, zobacz Dokumentacja szablonu Microsoft.Automation AutomationAccounts/jobSchedules.

Skopiuj ten plik szablonu do edytora tekstów:

{
  "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": {}
  }
}

Edytuj następujące wartości parametrów i zapisz szablon jako plik JSON:

  • Nazwa obiektu harmonogramu zadań: identyfikator GUID (globalnie unikatowy identyfikator) jest używany jako nazwa obiektu harmonogramu zadań.

    Ważne

    Dla każdego harmonogramu zadań wdrożonych przy użyciu szablonu usługi ARM identyfikator GUID musi być unikatowy. Nawet jeśli planujesz zaplanowanie istniejącego harmonogramu, musisz zmienić identyfikator GUID. Ma to zastosowanie nawet wtedy, gdy wcześniej usunięto istniejący harmonogram zadań, który został utworzony przy użyciu tego samego szablonu. Ponowne użycie tego samego identyfikatora GUID powoduje niepowodzenie wdrożenia.

    Dostępne są usługi online, które mogą wygenerować nowy identyfikator GUID dla Ciebie, na przykład ten bezpłatny generator identyfikatora GUID online.

  • Nazwa harmonogramu: reprezentuje nazwę harmonogramu zadań automatyzacji, który zostanie połączony z określonym elementem Runbook.

  • Nazwa elementu Runbook: reprezentuje nazwę elementu Runbook usługi Automation, z który ma być skojarzony harmonogram zadań.

Po zapisaniu pliku możesz utworzyć harmonogram zadań elementu Runbook za pomocą następującego polecenia programu PowerShell. Polecenie używa parametru TemplateFile , aby określić ścieżkę i nazwę pliku szablonu.

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

Element Runbook może zostać powiązany z wieloma harmonogramami, a harmonogram może zostać powiązany z wieloma elementami Runbook. Jeśli element Runbook ma parametry, możesz podać dla nich wartości. Musisz podać wartości dla wszystkich obowiązkowych parametrów, a także podać wartości dla dowolnych parametrów opcjonalnych. Te wartości są używane za każdym razem, gdy element Runbook zostanie uruchomiony zgodnie z tym harmonogramem. Możesz dołączyć ten sam element Runbook do innego harmonogramu i określić różne wartości parametrów.

  1. W witrynie Azure Portal na koncie automatyzacji wybierz pozycję Elementy Runbook w obszarze Automatyzacja procesów.
  2. Wybierz nazwę elementu Runbook, aby zaplanować.
  3. Jeśli element Runbook nie jest obecnie połączony z harmonogramem, możesz utworzyć nowy harmonogram lub połączyć się z istniejącym harmonogramem.
  4. Jeśli element Runbook ma parametry, możesz wybrać opcję Modyfikuj ustawienia uruchamiania (Default:Azure) i zostanie wyświetlone okienko Parametry . Tutaj możesz wprowadzić informacje o parametrach.

Użyj polecenia cmdlet Register-AzAutomationScheduledRunbook, aby połączyć harmonogram. Można określić wartości parametrów elementu Runbook za pomocą parametru Parametry . Aby uzyskać więcej informacji na temat określania wartości parametrów, zobacz Uruchamianie elementu Runbook w usłudze Azure Automation. W poniższym przykładzie pokazano, jak połączyć harmonogram z elementem Runbook przy użyciu polecenia cmdlet usługi Azure Resource Manager z parametrami.

$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"

Planowanie uruchamiania elementów Runbook częściej

Najczęstszym interwałem, dla którego można skonfigurować harmonogram usługi Azure Automation, jest jedna godzina. Jeśli chcesz, aby harmonogramy były uruchamiane częściej, dostępne są dwie opcje:

  • Utwórz element webhook dla elementu Runbook i użyj usługi Azure Logic Apps , aby wywołać element webhook. Usługa Azure Logic Apps zapewnia bardziej szczegółowy stopień szczegółowości do zdefiniowania harmonogramu.

  • Utwórz cztery harmonogramy, które rozpoczynają się w ciągu 15 minut od siebie i uruchamiają się co godzinę. Ten scenariusz umożliwia uruchamianie elementu Runbook co 15 minut z różnymi harmonogramami.

Wyłączanie harmonogramu

Po wyłączeniu harmonogramu wszystkie połączone z nim elementy Runbook nie będą już uruchamiane zgodnie z tym harmonogramem. Harmonogram można ręcznie wyłączyć lub ustawić czas wygaśnięcia harmonogramów z częstotliwością ich tworzenia. Po osiągnięciu czasu wygaśnięcia harmonogram jest wyłączony.

Wyłączanie harmonogramu w witrynie Azure Portal

  1. Na koncie usługi Automation w okienku po lewej stronie wybierz pozycję Harmonogramy w obszarze Udostępnione zasoby.
  2. Wybierz nazwę harmonogramu, aby otworzyć okienko szczegółów.
  3. Zmień wartość Włączone na Nie.

Uwaga

Jeśli chcesz wyłączyć harmonogram, który ma godzinę rozpoczęcia w przeszłości, musisz zmienić datę rozpoczęcia na godzinę w przyszłości przed zapisaniem.

Wyłączanie harmonogramu za pomocą programu PowerShell

Użyj polecenia cmdlet Set-AzAutomationSchedule, aby zmienić właściwości istniejącego harmonogramu. Aby wyłączyć harmonogram, określ wartość False dla parametru IsEnabled .

W poniższym przykładzie pokazano, jak wyłączyć harmonogram elementu Runbook przy użyciu polecenia cmdlet usługi Azure Resource Manager.

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

Usuwanie harmonogramu

Gdy wszystko będzie gotowe do usunięcia harmonogramów, możesz użyć witryny Azure Portal lub programu PowerShell. Pamiętaj, że można usunąć tylko harmonogram, który został wyłączony zgodnie z opisem w poprzedniej sekcji.

Usuwanie harmonogramu przy użyciu witryny Azure Portal

  1. Na koncie usługi Automation w okienku po lewej stronie wybierz pozycję Harmonogramy w obszarze Udostępnione zasoby.
  2. Wybierz nazwę harmonogramu, aby otworzyć okienko szczegółów.
  3. Kliknij polecenie Usuń.

Usuwanie harmonogramu za pomocą programu PowerShell

Możesz użyć polecenia cmdlet , Remove-AzAutomationSchedule jak pokazano poniżej, aby usunąć istniejący harmonogram.

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

Następne kroki