Starta/stoppa virtuella datorer när de inte används översikt

Funktionen Starta/stoppa virtuella datorer när de inte används starta eller stoppa aktiverade virtuella Azure-datorer. Den startar eller stoppar datorer enligt användardefinierade scheman, ger insikter via Azure Monitor loggar och skickar valfria e-postmeddelanden med hjälp av åtgärdsgrupper. Funktionen kan aktiveras på både virtuella Azure Resource Manager och klassiska för de flesta scenarier.

Anteckning

Innan du installerar den här versionen (v1) vill vi att du känner till nästa version, som är i förhandsversion just nu. Den här nya versionen (v2) har samma funktioner som den här, men är utformad för att dra nytta av nyare teknik i Azure. Den lägger till några av de vanliga efterfrågade funktionerna från kunder, till exempel stöd för flera prenumerationer från en enda Start/Stop-instans.

Starta/stoppa virtuella datorer när de inte används (v1) blir inaktuell 2022-05-21.

Den här funktionen använder cmdleten Start-AzVm för att starta virtuella datorer. Den använder Stop-AzVM för att stoppa virtuella datorer.

Anteckning

Starta/stoppa virtuella datorer när de inte används har uppdaterats för att stödja de senaste versionerna av De Azure-moduler som är tillgängliga. Den uppdaterade versionen av den här funktionen, som finns på Marketplace, stöder inte AzureRM-moduler eftersom vi har migrerat från AzureRM till Az-moduler. Runbooks har uppdaterats för att använda de nya Cmdletarna för Azure Az-modulen, men de använder prefixalias för AzureRM.

Funktionen ger ett decentraliserat automatiseringsalternativ till låg kostnad för användare som vill optimera sina kostnader för virtuella datorer. Du kan använda funktionen för att:

Följande begränsningar gäller för den aktuella funktionen:

  • Den hanterar virtuella datorer i valfri region, men kan bara användas i samma prenumeration som ditt Azure Automation konto.
  • Den är tillgänglig i Azure Azure Government för alla regioner som stöder en Log Analytics-arbetsyta, ett Azure Automation-konto och aviseringar. Azure Government har för närvarande inte stöd för e-postfunktioner.

Förutsättningar

  • Runbooks för funktionen Starta/stoppa virtuella datorer utanför arbetstid fungerar med ett Kör som-konto i Azure. Kör som-kontot är den föredragna autentiseringsmetoden eftersom det använder certifikatautentisering i stället för ett lösenord som kan upphöra att gälla eller ändras ofta.

  • En Azure Monitor Log Analytics-arbetsyta som lagrar runbook-jobbloggarna och jobbströmmen resulterar i en arbetsyta för att fråga och analysera. Automation-kontot och Log Analytics-arbetsytan måste finnas i samma prenumeration och region som stöds. Arbetsytan måste redan finnas. Du kan inte skapa en ny arbetsyta under distributionen av den här funktionen.

Vi rekommenderar att du använder ett separat Automation-konto för att arbeta med virtuella datorer som är aktiverade Starta/stoppa virtuella datorer när de inte används funktionen. Azure-modulversioner uppgraderas ofta och deras parametrar kan ändras. Funktionen uppgraderas inte i samma takt och kanske inte med nyare versioner av cmdletarna som den använder. Innan du importerar de uppdaterade modulerna till dina Automation-produktionskonto rekommenderar vi att du importerar dem till ett Automation-testkonto för att kontrollera att det inte finns några kompatibilitetsproblem.

Behörigheter

Du måste ha vissa behörigheter för att aktivera virtuella datorer för Starta/stoppa virtuella datorer när de inte används-funktionen. Behörigheterna är olika beroende på om funktionen använder ett i förväg skapat Automation-konto och en Log Analytics-arbetsyta eller skapar ett nytt konto och en arbetsyta.

Du behöver inte konfigurera behörigheter om du är deltagare i prenumerationen och global administratör i din ad Azure Active Directory klientorganisation. Om du inte har dessa rättigheter eller behöver konfigurera en anpassad roll kontrollerar du att du har de behörigheter som beskrivs nedan.

Behörigheter för befintligt Automation-konto och Log Analytics-arbetsyta

Om du vill aktivera virtuella datorer för Starta/stoppa virtuella datorer när de inte används-funktionen med ett befintligt Automation-konto och en Log Analytics-arbetsyta behöver du följande behörigheter för resursgruppsomfånget. Mer information om roller finns i Anpassade Roller i Azure.

Behörighet Omfång
Microsoft.Automation/automationAccounts/read Resursgrupp
Microsoft.Automation/automationAccounts/variables/write Resursgrupp
Microsoft.Automation/automationAccounts/schedules/write Resursgrupp
Microsoft.Automation/automationAccounts/runbooks/write Resursgrupp
Microsoft.Automation/automationAccounts/connections/write Resursgrupp
Microsoft.Automation/automationAccounts/certificates/write Resursgrupp
Microsoft.Automation/automationAccounts/modules/write Resursgrupp
Microsoft.Automation/automationAccounts/modules/read Resursgrupp
Microsoft.automation/automationAccounts/jobSchedules/write Resursgrupp
Microsoft.Automation/automationAccounts/jobs/write Resursgrupp
Microsoft.Automation/automationAccounts/jobs/read Resursgrupp
Microsoft.OperationsManagement/solutions/write Resursgrupp
Microsoft.OperationalInsights/workspaces/* Resursgrupp
Microsoft. Insights/diagnosticSettings/write Resursgrupp
Microsoft. Insights/ActionGroups/Write Resursgrupp
Microsoft. Insights/ActionGroups/read Resursgrupp
Microsoft.Resources/subscriptions/resourceGroups/read Resursgrupp
Microsoft.Resources/deployments/* Resursgrupp

Behörigheter för nytt Automation-konto och ny Log Analytics-arbetsyta

Du kan aktivera virtuella datorer för funktionen Starta/stoppa virtuella datorer när de inte används med ett nytt Automation-konto och en Log Analytics-arbetsyta. I det här fallet behöver du de behörigheter som definierades i föregående avsnitt och de behörigheter som definierats i det här avsnittet. Du behöver även följande roller:

Behörighet Omfång
Microsoft.Authorization/Operations/read Prenumeration
Microsoft.Authorization/permissions/read Prenumeration
Microsoft.Authorization/roleAssignments/read Prenumeration
Microsoft.Authorization/roleAssignments/write Prenumeration
Microsoft.Authorization/roleAssignments/delete Prenumeration
Microsoft.Automation/automationAccounts/connections/read Resursgrupp
Microsoft.Automation/automationAccounts/certificates/read Resursgrupp
Microsoft.Automation/automationAccounts/write Resursgrupp
Microsoft.OperationalInsights/workspaces/write Resursgrupp

Komponenter

Funktionen Starta/stoppa virtuella datorer när de inte används omfattar förkonfigurerade runbooks, scheman och integrering med Azure Monitor loggar. Du kan använda de här elementen för att skräddarsy start och avstängning av dina virtuella datorer så att de passar dina affärsbehov.

Runbooks

I följande tabell visas de runbooks som funktionen distribuerar till ditt Automation-konto. Gör INTE ändringar i runbook-koden. Skriv i stället en egen runbook för nya funktioner.

Viktigt

Kör inte någon runbook direkt med underordnad tillagd i namnet.

Alla överordnade runbooks innehåller WhatIf parametern . När det är inställt på True (Sant) stöder parametern information om det exakta beteende som runbooken tar vid körning utan parametern och verifierar att rätt virtuella datorer är mål. En runbook utför bara sina definierade åtgärder när WhatIf parametern är inställd på False.

Runbook Parametrar Beskrivning
AutoStop_CreateAlert_Child VMObject
AlertAction
WebHookURI
Anropas från den överordnade runbooken. Den här runbooken skapar aviseringar per resurs för scenariot Auto-Stop.
AutoStop_CreateAlert_Parent VMList
WhatIf: True eller False
Skapar eller uppdaterar Azure-aviseringsregler på virtuella datorer i målprenumerationen eller resursgrupperna.
VMList är en kommaavgränsad lista över virtuella datorer (utan blanksteg), till exempel vm1,vm2,vm3 .
WhatIf aktiverar validering av runbook-logik utan att köra.
AutoStop_Disable Ingen Inaktiverar aviseringar för automatiskt stopp och standardschema.
AutoStop_VM_Child WebHookData Anropas från den överordnade runbooken. Aviseringsregler anropar denna runbook för att stoppa en klassisk virtuell dator.
AutoStop_VM_Child_ARM WebHookData Anropas från den överordnade runbooken. Aviseringsregler anropar denna runbook för att stoppa en virtuell dator.
ScheduledStartStop_Base_Classic CloudServiceName
Åtgärd: Starta eller stoppa
VMList
Utför åtgärden starta eller stoppa i den klassiska VM-gruppen genom att Cloud Services.
ScheduledStartStop_Child VMName
Åtgärd: Starta eller stoppa
ResourceGroupName
Anropas från den överordnade runbooken. Kör en start- eller stoppåtgärd för det schemalagda stoppet.
ScheduledStartStop_Child_Classic VMName
Åtgärd: Starta eller stoppa
ResourceGroupName
Anropas från den överordnade runbooken. Kör en start- eller stoppåtgärd för det schemalagda stoppet för klassiska virtuella datorer.
ScheduledStartStop_Parent Åtgärd: Starta eller stoppa
VMList
WhatIf: True eller False
Startar eller stoppar alla virtuella datorer i prenumerationen. Redigera variablerna External_Start_ResourceGroupNames och så att de endast körs på dessa External_Stop_ResourceGroupNames målresursgrupper. Du kan också undanta specifika virtuella datorer genom att uppdatera External_ExcludeVMNames variabeln .
SequencedStartStop_Parent Åtgärd: Starta eller stoppa
WhatIf: True eller False
VMList
Skapar taggar med namnet sequencestart och sequencestop på varje virtuell dator som du vill sekvensa start-/stoppaktivitet för. Dessa taggnamn är fallkänsliga. Värdet för taggen ska vara en lista över positiva heltal, till exempel , som motsvarar den ordning som 1,2,3 du vill starta eller stoppa.
Obs! Virtuella datorer måste finnas i resursgrupper som External_Start_ResourceGroupNames definierats i External_Stop_ResourceGroupNames variablerna , External_ExcludeVMNames och . De måste ha lämpliga taggar för att åtgärder ska gälla.

Variabler

I följande tabell visas de variabler som skapats i ditt Automation-konto. Ändra endast variabler med prefixet External . Att ändra variabler med prefixet Internal orsakar oönskade effekter.

Anteckning

Begränsningar för VM-namn och resursgrupp beror till stor del på variabelstorleken. Se Variabeltillgångar i Azure Automation.

Variabel Beskrivning
External_AutoStop_Condition Villkorsoperatorn som krävs för att konfigurera villkoret innan en avisering utlöses. Godkända värden är GreaterThan , GreaterThanOrEqual , och LessThan LessThanOrEqual .
External_AutoStop_Description Aviseringen om att stoppa den virtuella datorn om CPU-procenten överskrider tröskelvärdet.
External_AutoStop_Frequency Utvärderingsfrekvensen för regeln. Den här parametern accepterar indata i tidsspannformat. Möjliga värden är från 5 minuter till 6 timmar.
External_AutoStop_MetricName Namnet på prestandamåttet som Azure-aviseringsregeln ska konfigureras för.
External_AutoStop_Severity Allvarlighetsgraden för måttaviseringen, som kan vara mellan 0 och 4.
External_AutoStop_Threshold Tröskelvärdet för Azure-aviseringsregeln som anges i variabeln External_AutoStop_MetricName . Procentvärdena sträcker sig från 1 till 100.
External_AutoStop_TimeAggregationOperator Tidsaggregeringsoperatorn som tillämpas på den valda fönsterstorleken för att utvärdera villkoret. Godkända värden är Average , , , och Minimum Maximum Total Last .
External_AutoStop_TimeWindow Storleken på fönstret där Azure analyserar valda mått för att utlösa en avisering. Den här parametern accepterar indata i tidsspannformat. Möjliga värden är från 5 minuter till 6 timmar.
External_EnableClassicVMs Värde som anger om klassiska virtuella datorer är mål för funktionen. Standardvärdet är True. Ange den här variabeln till False för Azure Molnlösningsleverantör-prenumerationer (CSP).
External_ExcludeVMNames Kommaavgränsad lista över VM-namn som ska undantas, begränsat till 140 virtuella datorer. Om du lägger till fler än 140 virtuella datorer i listan kan virtuella datorer som angetts för exkludering startas eller stoppas oavsiktligt.
External_Start_ResourceGroupNames Kommaavgränsad lista över en eller flera resursgrupper som är mål för startåtgärder.
External_Stop_ResourceGroupNames Kommaavgränsad lista över en eller flera resursgrupper som är mål för stoppåtgärder.
External_WaitTimeForVMRetrySeconds Väntetiden i sekunder för de åtgärder som ska utföras på de virtuella datorerna för SequencedStartStop_Parent runbook. Den här variabeln gör att runbooken kan vänta på underordnade åtgärder i ett angivet antal sekunder innan nästa åtgärd fortsätter. Den maximala väntetiden är 1 0800 eller tre timmar. Standardvärdet är 2 100 sekunder.
Internal_AutomationAccountName Anger namnet på Automation-kontot.
Internal_AutoSnooze_ARM_WebhookURI Webhook-URI:en som anropas för AutoStop-scenariot för virtuella datorer.
Internal_AutoSnooze_WebhookUri Webhook-URI:en som anropas för AutoStop-scenariot för klassiska virtuella datorer.
Internal_AzureSubscriptionId Id:t för Azure-prenumerationen.
Internal_ResourceGroupName Resursgruppsnamnet för Automation-kontot.

Anteckning

För variabeln External_WaitTimeForVMRetryInSeconds har standardvärdet uppdaterats från 600 till 2100.

I alla scenarier är variablerna , och nödvändiga för att rikta in sig på virtuella datorer, förutom de kommaavgränsade VM-listorna för External_Start_ResourceGroupNames External_Stop_ResourceGroupNames External_ExcludeVMNames AutoStop_CreateAlert_Parent, SequencedStartStop_Parent och ScheduledStartStop_Parent runbooks. Det innebär att dina virtuella datorer måste tillhöra målresursgrupper för att start- och stoppåtgärder ska kunna ske. Logiken fungerar ungefär som Azure Policy eftersom du kan rikta in dig på prenumerationen eller resursgruppen och ha åtgärder som ärvs av nyligen skapade virtuella datorer. Den här metoden undviker att behöva ha ett separat schema för varje virtuell dator och hantera startar och stoppar i skala.

Scheman

I följande tabell visas alla standardscheman som skapats i ditt Automation-konto. Du kan ändra dem eller skapa egna anpassade scheman. Som standard är alla scheman inaktiverade förutom de Scheduled_StartVM och Scheduled_StopVM scheman.

Aktivera inte alla scheman eftersom det kan skapa överlappande schemaåtgärder. Det är bäst att bestämma vilka optimeringar du vill göra och ändra dem därefter. Se exempelscenarierna i översiktsavsnittet för ytterligare förklaring.

Schemanamn Frekvens Beskrivning
Schedule_AutoStop_CreateAlert_Parent Var 8:e timme Kör AutoStop_CreateAlert_Parent runbook var 8:e timme, vilket i sin tur stoppar de VM-baserade värdena External_Start_ResourceGroupNames i External_Stop_ResourceGroupNames variablerna , External_ExcludeVMNames och . Du kan också ange en kommaavgränsad lista över virtuella datorer med hjälp av VMList parametern .
Scheduled_StopVM Användardefinierad, daglig Kör ScheduledStopStart_Parent runbook med en parameter Stop för varje dag vid den angivna tidpunkten. Stoppar automatiskt alla virtuella datorer som uppfyller de regler som definieras av variabeltillgångar. Aktivera det relaterade schemat Scheduled-StartVM.
Scheduled_StartVM Användardefinierad, daglig Kör ScheduledStopStart_Parent runbook med parametervärdet Start varje dag vid den angivna tidpunkten. Startar automatiskt alla virtuella datorer som uppfyller reglerna som definierats av variabeltillgångar. Aktivera det relaterade schemat Scheduled-StopVM.
Sequenced-StopVM 01:00 (UTC) varje fredag Kör Sequenced_StopStop_Parent runbook med parametervärdet Stop varje fredag vid den angivna tidpunkten. Sekventiellt (stigande) stoppar alla virtuella datorer med taggen SequenceStop som definieras av lämpliga variabler. Mer information om taggvärden och tillgångsvariabler finns i Runbooks. Aktivera det relaterade schemat Sequenced-StartVM.
Sequenced-StartVM 13:00 (UTC) varje måndag Kör SequencedStopStart_Parent runbook med parametervärdet Start varje måndag vid den angivna tidpunkten. Sekventiellt (fallande) startar alla virtuella datorer med taggen SequenceStart som definieras av lämpliga variabler. Mer information om taggvärden och variabeltillgångar finns i Runbooks. Aktivera det relaterade schemat Sequenced-StopVM.

Använda funktionen med klassiska virtuella datorer

Om du använder funktionen Starta/stoppa virtuella datorer när de inte används klassiska virtuella datorer bearbetar Automation alla dina virtuella datorer sekventiellt per molntjänst. Virtuella datorer bearbetas fortfarande parallellt mellan olika molntjänster.

Här är några rekommendationer om du har fler än 20 virtuella datorer per molntjänst:

  • Skapa flera scheman med den överordnade runbook-ScheduledStartStop_Parent och ange 20 virtuella datorer per schema.
  • I schemaegenskaperna använder du VMList parametern för att ange NAMN på virtuella datorer som en kommaavgränsad lista (inga blanksteg).

Om Automation-jobbet för den här funktionen körs mer än tre timmar tas det annars tillfälligt bort eller stoppas enligt gränsen för tidsbegränsade delningar.

Azure CSP prenumerationer stöder endast den Azure Resource Manager modellen. Icke-Azure Resource Manager tjänster är inte tillgängliga i programmet. När Starta/stoppa virtuella datorer när de inte används körs kan du få fel eftersom den har cmdlets för att hantera klassiska resurser. Mer information om CSP finns i Tillgängliga tjänster i CSP-prenumerationer. Om du använder en CSP-prenumeration bör du ange variabeln External_EnableClassicVMs till Falskt efter distributionen.

Anteckning

Den här artikeln har nyligen uppdaterats för användning av term Azure Monitors loggar i stället för Log Analytics. Loggdata lagras fortfarande i en Log Analytics arbets yta och samlas in och analyseras fortfarande av samma Log Analytics-tjänst. Vi uppdaterar terminologin för att bättre avspegla rollen för loggar i Azure Monitor. Se Azure Monitor terminologis ändringar för mer information.

Visa funktionen

Använd någon av följande metoder för att få åtkomst till den aktiverade funktionen:

  • Från ditt Automation-konto väljer du Starta/stoppa virtuell dator under Relaterade resurser. På sidan Starta/stoppa virtuell dator väljer du Hantera lösningen under Hantera start/stopp av VM-lösningar.

  • Gå till Log Analytics-arbetsytan som är länkad till ditt Automation-konto. När du har valt arbetsytan väljer du Lösningar i det vänstra fönstret. På sidan Lösningar väljer du Start-Stop-VM[workspace] i listan.

Om du väljer funktionen visas sidan Start-Stop-VM[workspace]. Här kan du granska viktig information, till exempel informationen i panelen StartStopVM. Precis som på Log Analytics-arbetsytan visar den här panelen antal och en grafisk representation av runbook-jobben för funktionen som har startats och har slutförts.

Sidan automations-Uppdateringshantering

Du kan utföra ytterligare analys av jobbposterna genom att klicka på ringdiagramspanelen. Instrumentpanelen visar jobbhistorik och fördefinierade loggsökningsfrågor. Växla till den avancerade portalen för Log Analytics för att söka baserat på dina sökfrågor.

Uppdatera funktionen

Om du har distribuerat en tidigare version av Starta/stoppa virtuella datorer när de inte används ta bort den från ditt konto innan du distribuerar en uppdaterad version. Följ stegen för att ta bort funktionen och följ sedan stegen för att aktivera den.

Nästa steg

Information om hur du aktiverar funktionen på virtuella datorer i din miljö finns i Aktivera Starta/stoppa virtuella datorer när de inte används.