Distribuire le macchine virtuali di avvio/arresto v2 in una sottoscrizione di Azure

Eseguire la procedura descritta in questo articolo in sequenza per installare la funzionalità Avvio/Arresto di macchine virtuali v2. Dopo aver completato il processo di configurazione, configurare le pianificazioni per personalizzarla in base alle esigenze.

Considerazioni sulle autorizzazioni

Tenere presenti le considerazioni seguenti prima e durante la distribuzione:

  • La soluzione consente agli utenti con autorizzazioni di controllo degli accessi in base al ruolo appropriate per la distribuzione Avvio/Arresto v2 di aggiungere, rimuovere e gestire pianificazioni per le macchine virtuali nell'ambito dell'istanza di Avvio/Arresto di macchine virtuali v2. Questo comportamento dipende dalla progettazione. In pratica, ciò significa che un utente che non dispone di autorizzazioni esplicite per una macchina virtuale potrebbe comunque creare operazioni di avvio, arresto e arresto automatico su tale macchina virtuale quando dispone dell'autorizzazione per modificare la soluzione Start/Stop v2 che gestisce la macchina virtuale.

  • Tutti gli utenti con accesso alla soluzione Start/Stop v2 possono individuare costi, risparmi, cronologia delle operazioni e altri dati archiviati nell'istanza di Application Insights usata dall'applicazione Start/Stop v2.

  • Quando si gestisce una soluzione Start/Stop v2, è consigliabile prendere in considerazione le autorizzazioni degli utenti per la soluzione Avvio/Arresto v2, in particolare quando il modello non dispone dell'autorizzazione per modificare direttamente le macchine virtuali di destinazione.

Funzionalità di distribuzione

La distribuzione viene avviata dall'organizzazione GitHub Avvio/Arresto di macchine virtuali v2. Sebbene questa funzionalità sia progettata per gestire tutte le macchine virtuali nella sottoscrizione in tutti i gruppi di risorse da una singola distribuzione all'interno della sottoscrizione, è possibile installarla in base al modello operativo o ai requisiti dell'organizzazione. Può anche essere configurato per gestire centralmente le macchine virtuali tra più sottoscrizioni.

Per semplificare la gestione e la rimozione, è consigliabile distribuire le macchine virtuali start/stop v2 in un gruppo di risorse dedicato.

Nota

Attualmente questa soluzione non supporta la specifica di un account di archiviazione esistente o di una risorsa di Application Insights.

Nota

Il formato di denominazione per l'app per le funzioni e l'account di archiviazione è stato modificato. Per garantire l'univocità globale, viene ora aggiunta una stringa casuale e univoca ai nomi di queste risorse.

  1. Aprire il browser e passare all'organizzazione GitHub Avvio/Arresto di macchine virtuali v2.

  2. Selezionare l'opzione di distribuzione in base all'ambiente cloud di Azure in cui vengono create le macchine virtuali di Azure.

  3. Se richiesto, accedere al portale di Azure.

  4. Scegliere il piano appropriato nella casella a discesa. Quando si sceglie un piano con ridondanza della zona (Start/StopV2-AZ), è necessario creare la distribuzione in una delle aree seguenti:

    • Australia orientale
    • Brasile meridionale
    • Canada centrale
    • Stati Uniti centrali
    • Stati Uniti orientali
    • Stati Uniti orientali 2
    • Francia centrale
    • Germania centro-occidentale
    • Giappone orientale
    • Europa settentrionale
    • Asia sud-orientale
    • Regno Unito meridionale
    • Europa occidentale
    • Stati Uniti occidentali 2
    • Stati Uniti occidentali 3
  5. Selezionare Crea, che apre la pagina di distribuzione personalizzata di Azure Resource Manager nel portale di Azure.

  6. Immettere i valori seguenti:

    Nome Valore
    Region Selezionare un'area nelle vicinanze per le nuove risorse.
    Nome gruppo di risorse Specificare il nome del gruppo di risorse che conterrà le singole risorse per le macchine virtuali di avvio/arresto.
    Area del gruppo di risorse Specificare l'area per il gruppo di risorse. Ad esempio Stati Uniti centrali.
    Nome app per le funzioni di Azure digitare un nome valido in un percorso URL. Il nome digitato viene convalidato per assicurarsi che sia univoco in Funzioni di Azure.
    Nome di Application Insights Specificare il nome dell'istanza di Application Insights che conterrà l'analisi per le macchine virtuali di avvio/arresto.
    Area di Application Insights Specificare l'area per l'istanza di Application Insights.
    Nome account di archiviazione Specificare il nome dell'account di archiviazione di Azure per archiviare i dati di telemetria di avvio/arresto dell'esecuzione delle macchine virtuali.
    Indirizzo di posta elettronica Specificare uno o più indirizzi di posta elettronica per ricevere notifiche di stato, separate da una virgola (,).

    Avviare/arrestare la configurazione della distribuzione del modello di macchine virtuali

  7. Selezionare Rivedi e crea nella parte inferiore della pagina.

  8. Selezionare Crea per avviare la distribuzione.

  9. Selezionare l'icona a forma di campana delle notifiche nella parte superiore della schermata per visualizzare lo stato della distribuzione. Verrà visualizzato lo stato Distribuzione in corso. Attendere il completamento della distribuzione.

  10. Selezionare Vai al gruppo di risorse nel riquadro di notifica. Verrà visualizzata una schermata simile alla seguente:

    Avvio/Arresto dell'elenco delle risorse di distribuzione dei modelli di macchine virtuali

Nota

La raccolta dei dati di telemetria dell'heartbeat e dell'operazione è in corso per facilitare la risoluzione dei problemi se si raggiunge il team di supporto. Viene inoltre raccolta la cronologia degli eventi delle macchine virtuali per verificare quando il servizio ha agito su una macchina virtuale e per quanto tempo è stata snoozed una macchina virtuale per determinare l'efficacia del servizio.

Abilitare più sottoscrizioni

Al termine della distribuzione di avvio/arresto, seguire questa procedura per abilitare l'avvio/arresto di macchine virtuali v2 per intervenire su più sottoscrizioni.

  1. Copiare il valore per il nome dell'app per le funzioni di Azure specificato durante la distribuzione.

  2. Nella portale di Azure passare alla sottoscrizione secondaria.

  3. Selezionare Controllo di accesso (IAM) .

  4. Selezionare Aggiungi aggiungi>assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo .

  5. Assegnare il ruolo seguente. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.

    Impostazione valore
    Ruolo Autore di contributi
    Assegna accesso a Utente, gruppo o entità servizio
    Membri <Nome dell'app per le funzioni di Azure>

    Screenshot che mostra la pagina Aggiungi assegnazione di ruolo in portale di Azure.

Panoramica della configurazione delle pianificazioni

Per gestire il metodo di automazione per controllare l'avvio e l'arresto delle macchine virtuali, configurare una o più delle app per la logica incluse in base alle esigenze.

  • Pianificato: le azioni di avvio e arresto si basano su una pianificazione specificata in base alle macchine virtuali di Azure Resource Manager e classiche. ststv2_vms_Scheduled_start e ststv2_vms_Scheduled_stop configurare l'avvio e l'arresto pianificati.

  • Sequenziata: le azioni di avvio e arresto si basano su una pianificazione destinata alle macchine virtuali con tag di sequenziazione predefiniti. Sono supportati solo due tag denominati: sequencestart e sequencestop. ststv2_vms_Sequenced_start e ststv2_vms_Sequenced_stop configurare l'avvio e l'arresto sequenziati.

    Nota

    Questo scenario supporta solo macchine virtuali di Azure Resource Manager.

  • AutoStop: questa funzionalità viene usata solo per eseguire un'azione di arresto su macchine virtuali di Azure Resource Manager e classiche in base all'utilizzo della CPU. Può anche essere un'azione basata su pianificazione, che crea avvisi sulle macchine virtuali e in base alla condizione, l'avviso viene attivato per eseguire l'azione di arresto.ststv2_vms_AutoStop configura la funzionalità di arresto automatico.

Se sono necessarie pianificazioni aggiuntive, è possibile duplicare una delle app per la logica fornite usando l'opzione Clone nella portale di Azure.

Selezionare l'opzione Clona per duplicare un'app per la logica

Scenario di avvio e arresto pianificato

Seguire questa procedura per configurare l'azione di avvio e arresto pianificata per le macchine virtuali di Azure Resource Manager e classiche. Ad esempio, è possibile configurare la pianificazione ststv2_vms_Scheduled_start per avviarle al mattino quando si è in ufficio e arrestare tutte le macchine virtuali in una sottoscrizione quando si lascia il lavoro alla sera in base alla pianificazione ststv2_vms_Scheduled_stop.

La configurazione dell'app per la logica per avviare solo le macchine virtuali è supportata.

Per ogni scenario, è possibile indirizzare l'azione su una o più sottoscrizioni, un singolo o più gruppi di risorse e specificare una o più macchine virtuali in un elenco di inclusione o esclusione. Non è possibile specificarli insieme nella stessa app per la logica.

  1. Accedere alla portale di Azure e quindi passare ad App per la logica.

  2. Nell'elenco delle app per la logica, per configurare l'avvio pianificato, selezionare ststv2_vms_Scheduled_start. Per configurare l'arresto pianificato, selezionare ststv2_vms_Scheduled_stop.

  3. Selezionare Progettazione app per la logica nel riquadro a sinistra.

  4. Dopo aver visualizzato Designer app per la logica, nel riquadro di progettazione selezionare Ricorrenza per configurare la pianificazione dell'app per la logica. Per informazioni sulle opzioni di ricorrenza specifiche, vedere Pianificare l'attività ricorrente.

    Configurare la frequenza di ricorrenza per l'app per la logica

  5. Nel riquadro di progettazione selezionare Function-Try per configurare le impostazioni di destinazione. Nel corpo della richiesta, se si desidera gestire macchine virtuali in tutti i gruppi di risorse nella sottoscrizione, modificare il corpo della richiesta, come illustrato nell'esempio seguente.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/"
        ]
     }
    }
    

    Specificare più sottoscrizioni nella subscriptions matrice con ogni valore separato da una virgola come nell'esempio seguente.

    "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
        ]
    

    Nel corpo della richiesta, se si desidera gestire macchine virtuali per gruppi di risorse specifici, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. È possibile specificare un gruppo di risorse o più se necessario.

    Questo esempio illustra anche l'esclusione di una macchina virtuale. È possibile escludere la macchina virtuale specificando il percorso delle risorse delle macchine virtuali o con caratteri jolly.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
         ],
        "ResourceGroups": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/"
        ],
        "ExcludedVMLists": [
         "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      }
    }
    

    In questo caso l'azione verrà eseguita in tutte le macchine virtuali, ad eccezione del nome della macchina virtuale, inizia con Az e Bz in entrambe le sottoscrizioni.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [“Az*”,“Bz*”],
       "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
    
        ]
      }
    }
    

    Nel corpo della richiesta, se si vuole gestire un set specifico di macchine virtuali all'interno della sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. È possibile specificare una macchina virtuale se necessario.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg3/providers/Microsoft.Compute/virtualMachines/vm2",
          "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30"
    
        ]
      }
    }
    
  6. Nel riquadro di panoramica per l'app per la logica selezionare Abilita.

Scenario di avvio e arresto sequenziato

In un ambiente che include due o più componenti in più macchine virtuali di Azure Resource Manager in un'architettura dell'applicazione distribuita, supportando la sequenza in cui vengono avviati i componenti e arrestati in ordine è importante. Assicurarsi di aver applicato i tag sequencestart e sequencestop alle macchine virtuali di destinazione, come descritto nella pagina Panoramica prima di configurare questo scenario.

  1. Nell'elenco delle app per la logica per configurare l'avvio sequenziato selezionare ststv2_vms_Sequenced_start. Per configurare l'arresto sequenziato, selezionare ststv2_vms_Sequenced_stop.

  2. Selezionare Progettazione app per la logica nel riquadro a sinistra.

  3. Dopo aver visualizzato Designer app per la logica, nel riquadro di progettazione selezionare Ricorrenza per configurare la pianificazione dell'app per la logica. Per informazioni sulle opzioni di ricorrenza specifiche, vedere Pianificare l'attività ricorrente.

    Configurare la frequenza di ricorrenza per l'app per la logica

  4. Nel riquadro della finestra di progettazione selezionare Function-Try per configurare le impostazioni di destinazione e quindi selezionare il <pulsante /> Visualizzazione codice nel menu in alto per modificare il codice per l'elemento Function-Try . Nel corpo della richiesta, se si desidera gestire macchine virtuali in tutti i gruppi di risorse nella sottoscrizione, modificare il corpo della richiesta, come illustrato nell'esempio seguente.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/"
        ]
     },
       "Sequenced": true
    }
    

    Specificare più sottoscrizioni nella subscriptions matrice con ogni valore separato da una virgola come nell'esempio seguente.

    "Subscriptions": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
        ]
    

    Nel corpo della richiesta, se si desidera gestire macchine virtuali per gruppi di risorse specifici, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. Se necessario, è possibile specificare un gruppo di risorse.

    In questo esempio viene anche illustrato l'esclusione di una macchina virtuale dal percorso della risorsa rispetto all'esempio per l'avvio/arresto pianificato, che ha usato caratteri jolly.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "Subscriptions":[
          "/subscriptions/12345678-1234-5678-1234-123456781234/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/"
        ],
        "ResourceGroups": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/",
          "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/"
        ],
        "ExcludedVMLists": [
         "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      },
       "Sequenced": true
    }
    

    Nel corpo della richiesta, se si vuole gestire un set specifico di macchine virtuali all'interno di una sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. È possibile specificare una macchina virtuale se necessario.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
          "/subscriptions/12345678-1234-5678-1234-123456781234/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm2",
          "/subscriptions/11111111-0000-1111-2222-444444444444/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30"
        ]
      },
       "Sequenced": true
    }
    

Scenario di arresto automatico

L'avvio/arresto delle macchine virtuali v2 consente di gestire il costo dell'esecuzione di macchine virtuali di Azure Resource Manager e classiche nella sottoscrizione valutando i computer che non vengono usati durante periodi non di picco, ad esempio dopo l'orario e arrestarli automaticamente se l'utilizzo del processore è minore di una percentuale specificata.

Le proprietà di avviso delle metriche seguenti nel corpo della richiesta supportano la personalizzazione:

  • AutoStop_MetricName
  • AutoStop_Condition
  • AutoStop_Threshold
  • AutoStop_Description
  • AutoStop_Frequency
  • AutoStop_Severity
  • AutoStop_Threshold
  • AutoStop_TimeAggregationOperator
  • AutoStop_TimeWindow

Per altre informazioni sul funzionamento degli avvisi delle metriche di Monitoraggio di Azure e su come configurarli, vedere Avvisi delle metriche in Monitoraggio di Azure.

  1. Nell'elenco delle app per la logica selezionare ststv2_vms_AutoStop per configurare l'arresto automatico.

  2. Selezionare Progettazione app per la logica nel riquadro a sinistra.

  3. Dopo aver visualizzato Designer app per la logica, nel riquadro di progettazione selezionare Ricorrenza per configurare la pianificazione dell'app per la logica. Per informazioni sulle opzioni di ricorrenza specifiche, vedere Pianificare l'attività ricorrente.

    Configurare la frequenza di ricorrenza per l'app per la logica

  4. Nel riquadro di progettazione selezionare Function-Try per configurare le impostazioni di destinazione. Nel corpo della richiesta, se si desidera gestire macchine virtuali in tutti i gruppi di risorse nella sottoscrizione, modificare il corpo della richiesta, come illustrato nell'esempio seguente.

    {
      "Action": "stop",
      "EnableClassic": false,    
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "RequestScopes":{        
        "Subscriptions":[
            "/subscriptions/12345678-1111-2222-3333-1234567891234/",
            "/subscriptions/12345678-2222-4444-5555-1234567891234/"
        ],
        "ExcludedVMLists":[]
      }        
    }
    

    Nel corpo della richiesta, se si desidera gestire macchine virtuali per gruppi di risorse specifici, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. Se necessario, è possibile specificare un gruppo di risorse.

    {
      "Action": "stop",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "ResourceGroups": [
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/",
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroupsvmrg2/",
          "/subscriptions/12345678-2222-4444-5555-1234567891234/resourceGroups/VMHostingRG/"
          ]
      }
    }
    

    Nel corpo della richiesta, se si vuole gestire un set specifico di macchine virtuali all'interno della sottoscrizione, modificare il corpo della richiesta come illustrato nell'esempio seguente. Ogni percorso di risorsa specificato deve essere separato da una virgola. È possibile specificare una macchina virtuale se necessario.

    {
      "Action": "stop",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/rg3/providers/Microsoft.ClassicCompute/virtualMachines/Clasyvm11",
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      }
    }
    

Tag della macchina virtuale

È anche possibile includere o escludere macchine virtuali specifiche dall'avvio e arrestare le azioni in base ai tag delle impostazioni nelle macchine virtuali stesse. Per aggiungere un tag, passare alla macchina virtuale specifica, selezionare Tag dal menu a sinistra e aggiungere un tag denominato ssv2excludevm. Per escludere questa macchina virtuale dall'azione di avvio o arresto, impostare il valore di questo nuovo tag su true. Per includere la macchina virtuale nell'azione, impostare il valore su false. In questo modo è possibile escludere macchine virtuali specifiche senza dover aggiornare ExcludedVMLists nella configurazione del payload.

Passaggi successivi

Per informazioni su come monitorare lo stato delle macchine virtuali di Azure gestite dalla funzionalità Start/Arresta macchine virtuali v2 ed eseguire altre attività di gestione, vedere l'articolo Gestire macchine virtuali Start/Stop .