Hantera scheman i Azure Automation

Om du vill schemalägga en runbook i Azure Automation så att den startar vid en angiven tidpunkt länkar du den till ett eller flera scheman. Ett schema kan konfigureras för att antingen köra en gång eller enligt ett återkommande schema per timme eller dagligen för runbooks i Azure-portalen. Du kan också schemalägga dem för veckovisa, månatliga, specifika veckodagar eller dagar i månaden eller en viss dag i månaden. En runbook kan länkas till flera scheman och ett schema kan ha flera runbooks länkade till den.

Kommentar

Azure Automation stöder sommartid och schemalägger den på lämpligt sätt för automatiseringsåtgärder.

Kommentar

Scheman är för närvarande inte aktiverade för Azure Automation DSC-konfigurationer.

PowerShell-cmdletar som används för att komma åt scheman

Cmdletarna i följande tabell skapar och hanterar Automation-scheman med PowerShell. De levereras som en del av Az-modulerna.

Cmdletar Description
Get-AzAutomationSchedule Hämtar ett schema.
Get-AzAutomationScheduledRunbook Hämtar schemalagda runbooks.
New-AzAutomationSchedule Skapar ett nytt schema.
Register-AzAutomationScheduledRunbook Associerar en runbook med ett schema.
Remove-AzAutomationSchedule Tar bort ett schema.
Set-AzAutomationSchedule Anger egenskaperna för ett befintligt schema.
Avregistrera AzAutomationScheduledRunbook Kopplar bort en runbook från ett schema.

Skapa en tidsplan

Du kan skapa ett nytt schema för dina runbooks från Azure-portalen, med PowerShell eller med hjälp av en Arm-mall (Azure Resource Manager). För att undvika att påverka dina runbooks och de processer som de automatiserar bör du först testa alla runbooks som har länkade scheman med ett Automation-konto som är dedikerat för testning. Ett test verifierar att dina schemalagda runbooks fortsätter att fungera korrekt. Om du ser ett problem kan du felsöka och tillämpa de ändringar som krävs innan du migrerar den uppdaterade Runbook-versionen till produktion.

Kommentar

Ditt Automation-konto får inte automatiskt några nya versioner av moduler om du inte har uppdaterat dem manuellt genom att välja alternativet Uppdatera Azure-moduler från Moduler. Azure Automation använder de senaste modulerna i ditt Automation-konto när ett nytt schemalagt jobb körs.

Skapa ett nytt schema i Azure-portalen

  1. Från ditt Automation-konto går du till den vänstra rutan och väljer Scheman under Delade resurser.

  2. På sidan Scheman väljer du Lägg till ett schema.

  3. På sidan Nytt schema anger du ett namn och anger en beskrivning för det nya schemat.

    Kommentar

    Automation-scheman stöder för närvarande inte användning av specialtecken i schemanamnet.

  4. Välj om schemat ska köras en gång eller enligt ett återkommande schema genom att välja En gång eller Återkommande. Om du väljer En gång anger du en starttid och väljer sedan Skapa. Om du väljer Återkommande anger du en starttid. För Upprepa varje väljer du hur ofta du vill att runbooken ska upprepas. Välj efter timme, dag, vecka eller månad.

    • Om du väljer Vecka visas veckodagarna som du kan välja mellan. Välj så många dagar du vill. Den första körningen av schemat sker den första dagen som valts efter starttiden. Om du till exempel vill välja ett helgschema väljer du Lördag och Söndag.

    Setting weekend recurring schedule

    • Om du väljer Månad får du olika alternativ. För alternativet Månatliga förekomster väljer du antingen Månadsdagar eller Veckodagar. Om du väljer Månadsdagar visas en kalender så att du kan välja så många dagar du vill. Om du väljer ett datum, till exempel det 31:a som inte inträffar under den aktuella månaden, körs inte schemat. Om du vill att schemat ska köras den sista dagen väljer du Ja under Kör den sista dagen i månaden. Om du väljer Veckodagar visas alternativet Upprepa varje. Välj Första, Andra, Tredje, Fjärde eller Sista. Välj slutligen en dag att upprepa.

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

  5. När du är klar väljer du Skapa.

Skapa ett nytt schema med PowerShell

Använd cmdleten New-AzAutomationSchedule för att skapa scheman. Du anger starttiden för schemat och hur ofta det ska köras. I följande exempel visas hur du skapar många olika schemascenarier.

Kommentar

Automation-scheman stöder för närvarande inte användning av specialtecken i schemanamnet.

Skapa ett engångsschema

I följande exempel skapas ett engångsschema.

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

Skapa ett återkommande schema

I följande exempel visas hur du skapar ett återkommande schema som körs varje dag kl. 13:00 under ett år.

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

Skapa ett återkommande veckoschema

I följande exempel visas hur du skapar ett veckoschema som endast körs på vardagar.

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

Skapa ett veckovis återkommande schema för helger

I följande exempel visas hur du skapar ett veckoschema som endast körs på helger.

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

Skapa ett återkommande schema för den första, femtonde och sista dagen i månaden

I följande exempel visas hur du skapar ett återkommande schema som körs den första, femtonde och sista dagen i en månad.

$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

Skapa ett schema med en Resource Manager-mall

I det här exemplet använder vi en ARM-mall (Automation Resource Manager) som skapar ett nytt jobbschema. Allmän information om den här mallen för att hantera Automation-jobbscheman finns i Mallreferens för Microsoft.Automation automationAccounts/jobSchedules.

Kopiera den här mallfilen till en textredigerare:

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

Redigera följande parametervärden och spara mallen som en JSON-fil:

  • Namn på jobbschemaobjekt: Ett GUID (globalt unikt identifierare) används som namn på jobbschemaobjektet.

    Viktigt!

    För varje jobbschema som distribueras med en ARM-mall måste GUID vara unikt. Även om du schemalägger om ett befintligt schema måste du ändra GUID. Detta gäller även om du tidigare har tagit bort ett befintligt jobbschema som skapades med samma mall. Om du återanvänder samma GUID resulterar det i en misslyckad distribution.

    Det finns tjänster online som kan generera ett nytt GUID åt dig, till exempel den här kostnadsfria GUID-generatorn online.

  • Schemanamn: Representerar namnet på automationsjobbschemat som ska länkas till den angivna runbooken.

  • Runbook-namn: Representerar namnet på Automation-runbooken som jobbschemat ska associeras med.

När filen har sparats kan du skapa runbook-jobbschemat med följande PowerShell-kommando. Kommandot använder parametern TemplateFile för att ange mallens sökväg och filnamn.

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

En runbook kan länkas till flera scheman och ett schema kan ha flera runbooks länkade till den. Om en runbook har parametrar kan du ange värden för dem. Du måste ange värden för obligatoriska parametrar och du kan även ange värden för valfria parametrar. Dessa värden används varje gång runbooken startas enligt det här schemat. Du kan koppla samma runbook till ett annat schema och ange olika parametervärden.

  1. I Azure-portalen går du till ditt automationskonto och väljer Runbooks under Process Automation.
  2. Välj namnet på den runbook som ska schemaläggas.
  3. Om runbooken för närvarande inte är länkad till ett schema erbjuds du möjlighet att skapa ett nytt schema eller en länk till ett befintligt schema.
  4. Om runbooken har parametrar kan du välja alternativet Ändra körningsinställningar (Standard:Azure) och fönstret Parametrar visas. Du kan ange parameterinformation här.

Använd cmdleten Register-AzAutomationScheduledRunbook för att länka ett schema. Du kan ange värden för runbookens parametrar med parametern Parametrar. Mer information om hur du anger parametervärden finns i Starta en Runbook i Azure Automation. I följande exempel visas hur du länkar ett schema till en runbook med hjälp av en Azure Resource Manager-cmdlet med parametrar.

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

Schemalägga runbooks för att köras oftare

Det vanligaste intervallet för vilket ett schema i Azure Automation kan konfigureras är en timme. Om du behöver scheman för att köras oftare än så finns det två alternativ:

  • Skapa en webhook för runbooken och använd Azure Logic Apps för att anropa webhooken. Azure Logic Apps ger mer detaljerad kornighet för att definiera ett schema.

  • Skapa fyra scheman som alla börjar inom 15 minuter från varandra och körs en gång i timmen. Med det här scenariot kan runbooken köras var 15:e minut med olika scheman.

Inaktivera ett schema

När du inaktiverar ett schema körs inte längre en runbook som är länkad till den enligt det schemat. Du kan inaktivera ett schema manuellt eller ange en förfallotid för scheman med en frekvens när du skapar dem. När förfallotiden har nåtts inaktiveras schemat.

Inaktivera ett schema från Azure-portalen

  1. Välj Scheman under Delade resurser i det vänstra fönstret i automationskontot.
  2. Välj namnet på ett schema för att öppna informationsfönstret.
  3. Ändra Aktiverad till Nej.

Kommentar

Om du vill inaktivera ett schema som tidigare har en starttid måste du ändra startdatumet till en tid i framtiden innan du sparar det.

Inaktivera ett schema med PowerShell

Använd cmdleten Set-AzAutomationSchedule för att ändra egenskaperna för ett befintligt schema. Om du vill inaktivera schemat anger du False för parametern IsEnabled .

I följande exempel visas hur du inaktiverar ett schema för en runbook med hjälp av en Azure Resource Manager-cmdlet.

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

Ta bort ett schema

När du är redo att ta bort dina scheman kan du antingen använda Azure-portalen eller PowerShell. Kom ihåg att du bara kan ta bort ett schema som har inaktiverats enligt beskrivningen i föregående avsnitt.

Ta bort ett schema med hjälp av Azure-portalen

  1. Välj Scheman under Delade resurser i det vänstra fönstret i automationskontot.
  2. Välj namnet på ett schema för att öppna informationsfönstret.
  3. Klicka på Ta bort.

Ta bort ett schema med PowerShell

Du kan använda cmdleten Remove-AzAutomationSchedule enligt nedan för att ta bort ett befintligt schema.

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

Nästa steg