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:
- Schemalägg virtuella datorer att starta och stoppa.
- Schemalägg virtuella datorer att starta och stoppa i stigande ordning med hjälp av Azure-taggar. Den här aktiviteten stöds inte för klassiska virtuella datorer.
- Automatisk allokering av virtuella datorer baserat på låg CPU-användning.
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:
- Medlemskap i rollen Azure AD-programutvecklare. Mer information om hur du konfigurerar Kör som-konton finns i Behörigheter för att konfigurera Kör som-konton.
- Deltagare i prenumerationen eller följande behörigheter.
| 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
VMListparametern 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.

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.