Gerenciar agendamentos na Automação do AzureManage schedules in Azure Automation

Para agendar um runbook na Automação do Azure para iniciar em um horário específico, você deve vinculá-lo a uma ou mais agendas.To schedule a runbook in Azure Automation to start at a specified time, you link it to one or more schedules. Um agendamento pode ser configurado para ser executado uma vez ou de forma recorrente a cada hora ou diariamente para runbooks no portal do Azure.A schedule can be configured to either run once or on a recurring hourly or daily schedule for runbooks in the Azure portal. Você também pode agendá-los para semanal, mensal, dias específicos da semana ou dias do mês ou um determinado dia do mês.You can also schedule them for weekly, monthly, specific days of the week or days of the month, or a particular day of the month. Um runbook pode ser vinculado a várias agendas, e uma agenda pode ter vários runbooks vinculados a ela.A runbook can be linked to multiple schedules, and a schedule can have multiple runbooks linked to it.

Observação

A Automação do Azure dá suporte a horário de verão, que é agendado adequadamente para operações de automação.Azure Automation supports Daylight Savings Time and schedules it appropriately for automation operations.

Observação

Atualmente, os agendamentos não estão habilitados para as configurações de DSC de Automação do Azure.Schedules currently are not enabled for Azure Automation DSC configurations.

Cmdlets do PowerShell usados para acessar agendamentosPowerShell cmdlets used to access schedules

Os cmdlets na tabela a seguir são usados para criar e gerenciar agendamentos de Automação com o PowerShell.The cmdlets in the following table create and manage Automation schedules with PowerShell. Eles são fornecidos como parte dos módulos AZ.They ship as part of the Az modules.

CmdletsCmdlets DescriçãoDescription
Get-AzAutomationScheduleGet-AzAutomationSchedule Recupera uma agenda.Retrieves a schedule.
Get-AzAutomationScheduledRunbookGet-AzAutomationScheduledRunbook Recupera runbooks agendados.Retrieves scheduled runbooks.
New-AzAutomationScheduleNew-AzAutomationSchedule Cria uma nova agenda.Creates a new schedule.
Register-AzAutomationScheduledRunbookRegister-AzAutomationScheduledRunbook Associa um runbook a uma agenda.Associates a runbook with a schedule.
Remove-AzAutomationScheduleRemove-AzAutomationSchedule Remove uma agenda.Removes a schedule.
Set-AzAutomationScheduleSet-AzAutomationSchedule Define as propriedades de uma agenda existente.Sets the properties for an existing schedule.
Unregister-AzAutomationScheduledRunbookUnregister-AzAutomationScheduledRunbook Dissocia um runbook de uma agenda.Dissociates a runbook from a schedule.

Criar um agendamentoCreate a schedule

Você pode criar um novo agendamento para runbooks no portal do Azure ou com o PowerShell.You can create a new schedule for your runbooks in the Azure portal or with PowerShell. Para evitar impactos em seus runbooks e os processos que eles automatizam, primeiro você deve testar quaisquer runbooks que tenham agendamentos vinculados a uma conta de Automação dedicada a testes.To avoid affecting your runbooks and the processes they automate, you should first test any runbooks that have linked schedules with an Automation account dedicated for testing. Um teste valida que seus runbooks agendados continuam funcionando corretamente.A test validates that your scheduled runbooks continue to work correctly. Se encontrar algum problema, você poderá solucionar e aplicar as alterações necessárias antes de migrar a versão atualizada do runbook para produção.If you see a problem, you can troubleshoot and apply any changes required before you migrate the updated runbook version to production.

Observação

Sua conta de Automação não recebe automaticamente nenhuma nova versão dos módulos, a menos que você os tenha atualizado manualmente selecionando a opção Atualizar módulos do Azure em Módulos.Your Automation account doesn't automatically get any new versions of modules unless you've updated them manually by selecting the Update Azure modules option from Modules. A Automação do Azure usa os módulos mais recentes de sua conta de Automação quando um novo trabalho agendado é executado.Azure Automation uses the latest modules in your Automation account when a new scheduled job is run.

Para criar um novo agendamento no portal do AzureCreate a new schedule in the Azure portal

  1. No portal do Azure, em sua conta de Automação, selecione Agendas na seção Recursos Compartilhados à esquerda.In the Azure portal, from your Automation account, select Schedules under the section Shared Resources on the left.

  2. Selecione Adicionar um agendamento na parte superior da página.Select Add a schedule at the top of the page.

  3. No painel Novo agendamento, digite um nome e insira uma descrição do novo agendamento (opcional).On the New schedule pane, enter a name and optionally enter a description for the new schedule.

  4. Selecione se o agendamento é executado uma vez ou em um agendamento recorrente selecionando Uma vez ou Recorrente.Select whether the schedule runs one time or on a reoccurring schedule by selecting Once or Recurring. Se você selecionar Uma vez, especifique uma hora de início e clique em Criar.If you select Once, specify a start time and then select Create. Se você selecionar Recorrente, especifique uma hora de início.If you select Recurring, specify a start time. Para Repetir a cada, selecione com que frequência você deseja que o runbook se repita.For Recur every, select how often you want the runbook to repeat. Selecione por hora, dia, semana ou mês.Select by hour, day, week, or month.

    1. Se você selecionar Semana, os dias da semana serão apresentados para sua escolha.If you select Week, the days of the week are presented for you to choose from. Selecione quantos dias você desejar.Select as many days as you want. A primeira execução da agenda de ocorrerá no primeiro dia selecionado após a hora de início.The first run of your schedule will happen on the first day selected after the start time. Por exemplo, para escolher um agendamento de fim de semana, selecione sábado e domingo.For example, to choose a weekend schedule, select Saturday and Sunday.

      Definir agendamento recorrente de fim de semana

    2. Se você selecionar Mês, terá diferentes opções.If you select Month, you're given different options. Para a opção Ocorrências mensais, selecione Dias do mês ou Dias da semana.For the Monthly occurrences option, select either Month days or Week days. Se você selecionar Dias do mês, você verá um calendário onde poderá escolher quantos dias quiser.If you select Month days, a calendar appears so that you can choose as many days as you want. Se você escolher uma data, como o 31º dia, que não ocorre no mês atual, a programação não será executada.If you choose a date such as the 31st that doesn't occur in the current month, the schedule won't run. Se você quiser que o agendamento seja executado no último dia, escolha Sim em Executar no último dia do mês.If you want the schedule to run on the last day, select Yes under Run on last day of month. Se você selecionar Dias da semana, a opção Repetir a cada será exibida.If you select Week days, the Recur every option appears. Escolher primeira, segundo, terceira, quarto, ou último.Choose First, Second, Third, Fourth, or Last. Finalmente, escolha um dia para repetir.Finally, choose a day to repeat on.

      Agendamento mensal no primeiro, décimo-quinto e no último dia do mês

  5. Ao terminar, selecione Criar.When you're finished, select Create.

Criar um novo agendamento com o PowerShellCreate a new schedule with PowerShell

Use o cmdlet New-AzAutomationSchedule para criar agendamentos.Use the New-AzAutomationSchedule cmdlet to create schedules. Especifique a hora de início para a agenda e a frequência de execução.You specify the start time for the schedule and the frequency it should run. Os exemplos a seguir mostram como criar vários cenários de agendamento diferentes.The following examples show how to create many different schedule scenarios.

Criar um agendamento únicoCreate a one-time schedule

O exemplo a seguir cria um agendamento único.The following example creates a one-time schedule.

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

Criar um agendamento recorrenteCreate a recurring schedule

O exemplo a seguir mostra como criar um agendamento recorrente que é executado todos os dias às 13:00 por um ano.The following example shows how to create a recurring schedule that runs every day at 1:00 PM for a year.

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

Criar um agendamento recorrente semanalCreate a weekly recurring schedule

O exemplo a seguir mostra como criar um agendamento semanal que é executado somente em dias da semana.The following example shows how to create a weekly schedule that runs on weekdays only.

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

Criar um agendamento recorrente semanal para fins de semanaCreate a weekly recurring schedule for weekends

O exemplo a seguir mostra como criar um agendamento semanal que é executado somente em fins de semana.The following example shows how to create a weekly schedule that runs on weekends only.

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

Criar um agendamento recorrente para o primeiro, décimo-quinto e último dia do mêsCreate a recurring schedule for the first, fifteenth, and last days of the month

O exemplo a seguir mostra como criar um agendamento recorrente que é executado no primeiro, décimo-quinto e no último dia de um mês.The following example shows how to create a recurring schedule that runs on the first, fifteenth, and last day of a month.

$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

Um runbook pode ser vinculado a várias agendas, e uma agenda pode ter vários runbooks vinculados a ela.A runbook can be linked to multiple schedules, and a schedule can have multiple runbooks linked to it. Se um runbook tiver parâmetros, você poderá fornecer valores para eles.If a runbook has parameters, you can provide values for them. Você precisa fornecer valores para todos os parâmetros obrigatórios e também pode fornecer valores para os opcionais.You must provide values for any mandatory parameters, and you also can provide values for any optional parameters. Esses valores são usados sempre que o runbook é iniciado por essa agenda.These values are used each time the runbook is started by this schedule. Você pode anexar o mesmo runbook a outra agenda e especificar valores de parâmetro diferentes.You can attach the same runbook to another schedule and specify different parameter values.

  1. No portal do Azure, na sua conta de automação, selecione Runbooks em Automação de processos.In the Azure portal, from your automation account, select Runbooks under Process Automation.
  2. Selecione o nome do runbook para agendar.Select the name of the runbook to schedule.
  3. Se o runbook não estiver vinculado atualmente a um agendamento, você terá a opção de criar um novo agendamento ou de vincular a um agendamento existente.If the runbook isn't currently linked to a schedule, you're offered the option to create a new schedule or link to an existing schedule.
  4. Se o runbook tiver parâmetros, você poderá selecionar a opção Modificar configurações de execução (padrão: Azure) e o painel Parâmetros será exibido.If the runbook has parameters, you can select the option Modify run settings (Default:Azure) and the Parameters pane appears. Você pode inserir informações de parâmetro aqui.You can enter parameter information here.

Use o cmdlet Register-AzAutomationScheduledRunbook para vincular um agendamento.Use the Register-AzAutomationScheduledRunbook cmdlet to link a schedule. Você pode especificar valores para os parâmetros do runbook com o parâmetro Parameters.You can specify values for the runbook’s parameters with the Parameters parameter. Para mais informações para especificar os valores do parâmetro, consulte Como iniciar um runbook na Automação do Azure.For more information on how to specify parameter values, see Starting a Runbook in Azure Automation. O exemplo a seguir mostra como vincular um agendamento a um runbook usando um cmdlet do Azure Resource Manager com parâmetros.The following example shows how to link a schedule to a runbook by using an Azure Resource Manager cmdlet with parameters.

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

Agendar runbooks para serem executados com mais frequênciaSchedule runbooks to run more frequently

O intervalo mais frequente para o qual a Automação do Azure pode ser configurada é uma hora.The most frequent interval for which a schedule in Azure Automation can be configured is one hour. Se você precisar de agendamentos para executar com mais frequência do que isso, há duas opções:If you require schedules to run more frequently than that, there are two options:

  • Criar um webhook para o runbook e usar o Aplicativos Lógicos do Azure para chamar o webhook.Create a webhook for the runbook, and use Azure Logic Apps to call the webhook. Os Aplicativos Lógicos do Azure fornecem granularidade mais refinada para definir um agendamento.Azure Logic Apps provides more fine-grained granularity to define a schedule.

  • Crie quatro agendamentos que iniciam em intervalos de 15 minutos e são executados a cada hora.Create four schedules that all start within 15 minutes of each other and run once every hour. Este cenário permite que o runbook seja executado a cada 15 minutos com as diferentes agendas.This scenario allows the runbook to run every 15 minutes with the different schedules.

Desabilitar um agendamentoDisable a schedule

Quando você desabilita uma agenda, qualquer runbook vinculados a ela deixam de ser executados segundo ela.When you disable a schedule, any runbook linked to it no longer runs on that schedule. Você pode desabilitar manualmente uma agenda ou definir uma hora de expiração para agendas com uma frequência ao criá-las.You can manually disable a schedule or set an expiration time for schedules with a frequency when you create them. Quando o tempo de expiração é atingido, a agenda é desabilitada.When the expiration time is reached, the schedule is disabled.

Desabilitar um agendamento no portal do AzureDisable a schedule from the Azure portal

  1. Na sua conta de Automação, selecione Agendamentos em Recursos compartilhados.In your Automation account, select Schedules under Shared Resources.
  2. Clique no nome de um agendamento para abrir o painel de detalhes.Select the name of a schedule to open the details pane.
  3. Altere Habilitado para Não.Change Enabled to No.

Observação

Se desejar desabilitar um agendamento que tenha uma hora de início no passado, você deverá alterar a data de início para uma hora no futuro antes de salvá-la.If you want to disable a schedule that has a start time in the past, you must change the start date to a time in the future before you save it.

Desabilitar um agendamento com o PowerShellDisable a schedule with PowerShell

Use o cmdlet Set-AzAutomationSchedule para alterar as propriedades de um agendamento existente.Use the Set-AzAutomationSchedule cmdlet to change the properties of an existing schedule. Para desabilitar o agendamento, especifique false para o parâmetro IsEnabled.To disable the schedule, specify False for the IsEnabled parameter.

O exemplo a seguir mostra como desabilitar um agendamento para um runbook usando um cmdlet do Azure Resource Manager.The following example shows how to disable a schedule for a runbook by using an Azure Resource Manager cmdlet.

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

Remover um agendamentoRemove a schedule

Quando estiver tudo pronto para remover seus agendamentos, você poderá usar o portal do Azure ou o PowerShell.When you're ready to remove your schedules, you can either use the Azure portal or PowerShell. Lembre-se de que você só pode remover um agendamento desabilitado conforme descrito na seção anterior.Remember that you can only remove a schedule that has been disabled as described in the previous section.

Remover um agendamento usando o portal do AzureRemove a schedule using the Azure portal

  1. Na sua conta de Automação, selecione Agendamentos em Recursos compartilhados.In your Automation account, select Schedules under Shared Resources.
  2. Clique no nome de uma agenda para abrir o painel de detalhes.Click the name of a schedule to open the details pane.
  3. Clique em Excluir.Click Delete.

Remover um agendamento com o PowerShellRemove a schedule with PowerShell

Você pode usar o cmdlet Remove-AzAutomationSchedule como mostrado abaixo, para excluir um agendamento.You can use the Remove-AzAutomationSchedule cmdlet as shown below to delete an existing schedule.

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

Próximas etapasNext steps