Gerenciar agendas na Automação do Azure

Para agendar um runbook na Automação do Azure para iniciar em um horário especificado, vincule-o a uma ou mais agendas. Uma agenda pode ser configurada para ser executada uma vez ou em uma agenda recorrente horária ou diária para runbooks no portal do Azure. Você também pode programá-los para dias semanais, mensais, específicos da semana ou dias do mês, ou um determinado dia do mês. Um runbook pode ser ligado a várias agendas e uma agenda pode ter vários runbooks a si ligados.

Nota

A Automação do Azure dá suporte ao Horário de verão e o agenda adequadamente para operações de automação.

Nota

Atualmente, as agendas não estão habilitadas para configurações de DSC da Automação do Azure.

Cmdlets do PowerShell usados para acessar agendas

Os cmdlets na tabela a seguir criam e gerenciam agendas de automação com o PowerShell. Eles são enviados como parte dos módulos Az.

Cmdlets Descrição
Get-AzAutomationSchedule Recupera uma agenda.
Get-AzAutomationScheduledRunbook Recupera runbooks agendados.
Novo-AzAutomationSchedule Cria uma nova agenda.
Register-AzAutomationScheduledRunbook Associa um runbook a um cronograma.
Remove-AzAutomationSchedule Remove uma agenda.
Set-AzAutomationSchedule Define as propriedades de uma agenda existente.
Cancelar o registro-AzAutomationScheduledRunbook Dissocia um runbook de um cronograma.

Criar uma agenda

Você pode criar uma nova agenda para seus runbooks no portal do Azure, com o PowerShell ou usando um modelo do Azure Resource Manager (ARM). Para evitar afetar seus runbooks e os processos que eles automatizam, você deve primeiro testar todos os runbooks que tenham agendas vinculadas com uma conta de automação dedicada para testes. Um teste valida se os runbooks agendados continuam a funcionar corretamente. Se você vir um problema, poderá solucionar e aplicar as alterações necessárias antes de migrar a versão atualizada do runbook para a produção.

Nota

Sua conta de Automação não obtém automaticamente novas versões de módulos, a menos que você as tenha atualizado manualmente selecionando a opção Atualizar módulos do Azure em Módulos. A Automação do Azure usa os módulos mais recentes em sua conta de Automação quando um novo trabalho agendado é executado.

Criar uma nova agenda no portal do Azure

  1. Na sua conta de automação, no painel esquerdo, selecione Agendas em Recursos compartilhados.

  2. Na página Agendas, selecione Adicionar uma agenda.

  3. Na página Nova agenda, insira um nome e, opcionalmente, insira uma descrição para a nova agenda.

    Nota

    Atualmente, as agendas de automação não suportam o uso de caracteres especiais no nome da agenda.

  4. Selecione se a agenda é executada uma vez ou em uma agenda recorrente selecionando Uma vez ou Recorrente. Se você selecionar Uma vez, especifique uma hora de início e, em seguida, selecione Criar. Se você selecionar Recorrente, especifique uma hora de início. Para Repetir sempre, selecione a frequência com que deseja que o runbook se repita. Selecione por hora, dia, semana ou mês.

    • Se você selecionar Semana, os dias da semana serão apresentados para você escolher. Selecione quantos dias quiser. A primeira corrida da sua agenda acontecerá no primeiro dia selecionado após a hora de início. Por exemplo, para escolher um horário de fim de semana, selecione sábado e domingo.

    Setting weekend recurring schedule

    • Se você selecionar Mês, terá opções diferentes. Para a opção Ocorrências mensais, selecione Dias do mês ou Dias da semana. Se você selecionar Dias do mês, um calendário será exibido para que você possa escolher quantos dias quiser. Se você escolher uma data como o dia 31 que não ocorra no mês atual, a programação não será executada. Se quiser que a agenda seja executada no último dia, selecione Sim em Executar no último dia do mês. Se você selecionar Dias da semana, a opção Repetir a cada será exibida. Escolha Primeiro, Segundo, Terceiro, Quarto ou Último. Por fim, escolha um dia para repetir.

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

  5. Quando tiver terminado, selecione Criar.

Criar uma nova agenda com o PowerShell

Use o cmdlet New-AzAutomationSchedule para criar agendas. Você especifica a hora de início da programação e a frequência com que ela deve ser executada. Os exemplos a seguir mostram como criar muitos cenários de agendamento diferentes.

Nota

Atualmente, as agendas de automação não suportam o uso de caracteres especiais no nome da agenda.

Criar um cronograma único

O exemplo a seguir cria uma programação única.

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

Criar uma agenda recorrente

O exemplo a seguir mostra como criar uma agenda recorrente que é executada todos os dias às 13:00 durante um ano.

$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 uma agenda recorrente semanal

O exemplo a seguir mostra como criar uma programação semanal que é executada apenas em dias úteis.

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

Crie uma programação semanal recorrente para fins de semana

O exemplo a seguir mostra como criar uma programação semanal que é executada apenas nos fins de semana.

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

Crie uma agenda recorrente para o primeiro, décimo quinto e último dia do mês

O exemplo a seguir mostra como criar uma agenda recorrente que é executada no primeiro, décimo quinto e último dia de um mês.

$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

Criar uma agenda com um modelo do Resource Manager

Neste exemplo, usamos um modelo ARM (Automation Resource Manager) que cria uma nova agenda de trabalho. Para obter informações gerais sobre esse modelo para gerenciar agendas de tarefas de automação, consulte Microsoft.Automation automationAccounts/jobSchedules template reference.

Copie este arquivo de modelo em um editor de texto:

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

Edite os seguintes valores de parâmetro e salve o modelo como um arquivo JSON:

  • Nome do objeto de agenda de trabalho: um GUID (Identificador Global Exclusivo) é usado como o nome do objeto de agenda de trabalho.

    Importante

    Para cada agenda de trabalho implantada com um modelo ARM, o GUID deve ser exclusivo. Mesmo se você estiver reagendando uma agenda existente, precisará alterar o GUID. Isso se aplica mesmo se você tiver excluído anteriormente uma agenda de trabalho existente que foi criada com o mesmo modelo. A reutilização do mesmo GUID resulta em uma falha na implantação.

    Existem serviços on-line que podem gerar um novo GUID para você, como este Free Online GUID Generator.

  • Nome da agenda: representa o nome da agenda de trabalho de automação que será vinculada ao runbook especificado.

  • Nome do runbook: representa o nome do runbook de automação ao qual o agendamento de trabalho deve ser associado.

Depois que o arquivo tiver sido salvo, você poderá criar a agenda de trabalho do runbook com o seguinte comando do PowerShell. O comando usa o parâmetro para especificar o caminho e o TemplateFile nome do arquivo do modelo.

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

Um runbook pode ser ligado a várias agendas e uma agenda pode ter vários runbooks a si ligados. Se um runbook tiver parâmetros, você poderá fornecer valores para eles. Você deve fornecer valores para quaisquer parâmetros obrigatórios e também pode fornecer valores para quaisquer parâmetros opcionais. Esses valores são usados sempre que o runbook é iniciado por essa agenda. Você pode anexar o mesmo runbook a outra agenda e especificar valores de parâmetros diferentes.

  1. No portal do Azure, na sua conta de automação, selecione Runbooks em Process Automation.
  2. Selecione o nome do runbook a ser agendado.
  3. Se o runbook não estiver atualmente vinculado a uma agenda, você terá a opção de criar uma nova agenda ou vincular a uma agenda existente.
  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. Você pode inserir informações de parâmetros aqui.

Use o cmdlet Register-AzAutomationScheduledRunbook para vincular uma agenda. Pode especificar os valores dos parâmetros do runbook através do parâmetro Parâmetros . Para obter mais informações sobre como especificar valores de parâmetro, consulte Iniciando um runbook na automação do Azure. O exemplo a seguir mostra como vincular uma agenda a um runbook usando um cmdlet do Azure Resource Manager com parâmetros.

$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ência

O intervalo mais frequente para o qual uma agenda na Automação do Azure pode ser configurada é de uma hora. Se você precisar que as agendas sejam executadas com mais frequência do que isso, há duas opções:

  • Crie um webhook para o runbook e use os Aplicativos Lógicos do Azure para chamar o webhook. Os Aplicativos Lógicos do Azure fornecem granularidade mais refinada para definir uma agenda.

  • Crie quatro agendas que começam dentro de 15 minutos uma da outra e são executadas uma vez a cada hora. Este cenário permite que o runbook seja executado a cada 15 minutos com os diferentes horários.

Desativar uma agenda

Quando você desabilita uma agenda, qualquer runbook vinculado a ela não é mais executado nessa agenda. Você pode desativar manualmente uma agenda ou definir um tempo de expiração para agendas com uma frequência ao criá-las. Quando o tempo de expiração é atingido, o cronograma é desativado.

Desabilitar uma agenda no portal do Azure

  1. Na sua conta de Automação, no painel esquerdo, selecione Agendas em Recursos Partilhados.
  2. Selecione o nome de uma agenda para abrir o painel de detalhes.
  3. Alteração ativada para Não.

Nota

Se quiser desativar uma agenda que tenha uma hora de início no passado, altere a data de início para uma hora no futuro antes de salvá-la.

Desabilitar uma agenda com o PowerShell

Use o cmdlet Set-AzAutomationSchedule para alterar as propriedades de uma agenda existente. Para desativar a agenda, especifique False para o IsEnabled parâmetro.

O exemplo a seguir mostra como desabilitar uma agenda para um runbook usando um cmdlet do Azure Resource Manager.

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

Remover uma agenda

Quando estiver pronto para remover suas agendas, você poderá usar o portal do Azure ou o PowerShell. Lembre-se de que você só pode remover uma agenda que tenha sido desativada conforme descrito na seção anterior.

Remover uma agenda usando o portal do Azure

  1. Na sua conta de Automação, no painel esquerdo, selecione Agendas em Recursos Partilhados.
  2. Selecione o nome de uma agenda para abrir o painel de detalhes.
  3. Clique em Eliminar.

Remover uma agenda com o PowerShell

Você pode usar o Remove-AzAutomationSchedule cmdlet conforme mostrado abaixo para excluir uma agenda existente.

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

Próximos passos