Impostazione di un avviso di tempo di attività

Questo tutorial mostra come configurare un avviso di uptime per l'app Python Hello World in esecuzione nell'ambiente flessibile di App Engine utilizzando Cloud Monitoring. Gli avvisi di uptime ti informano quando la tua app non gestisce il traffico. Puoi anche impostare avvisi di uptime per le app in esecuzione su Compute Engine o Google Kubernetes Engine (GKE).

Obiettivi

  • Esegui un'app Hello World di base.
  • Crea un controllo di uptime che monitori se l'app restituisce un codice di stato HTTP "200".
  • Crea un avviso che ti invii un messaggio email quando il controllo di uptime non viene superato.
  • Riavvia l'app per attivare l'avviso.

Costi

Al momento, il monitoraggio viene offerto agli utenti beta senza costi.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

Clonazione dell'app di esempio

L'app di esempio è disponibile su GitHub all'indirizzo GoogleCloudPlatform/getting-started-python.

  1. Clona il repository.

    git clone https://github.com/GoogleCloudPlatform/getting-started-python.git
    
  2. Vai alla directory di esempio.

    cd getting-started-python/gce
    
  3. Poiché l'app restituisce solo "Hello World!", non richiede alcuna configurazione e puoi eseguirla immediatamente.

    gcloud app deploy
    
  4. Per visualizzare il messaggio restituito, inserisci il seguente URL nel browser:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Sostituisci quanto segue:

Creazione di un controllo di uptime

Dopo aver eseguito il deployment dell'app, puoi utilizzare Monitoring per creare un controllo di uptime. Il controllo pinga continuamente l'app di cui è stato eseguito il deployment per assicurarsi che restituisca una risposta integra.

  1. Nella console Google Cloud , vai alla pagina  Controlli di uptime:

    Vai a Controlli di uptime

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Fai clic su Crea controllo di uptime.
  3. Assegna un titolo al tuo controllo, ad esempio Check Hello World, quindi fai clic su Avanti.

  4. Nella sezione Target, specifica cosa deve monitorare il controllo di uptime:

    1. Poiché hai eseguito il deployment in App Engine, modifica Tipo di risorsa in App Engine anziché URL. (L'URL serve per generare un URL personalizzato su un'istanza Compute Engine.)
    2. Seleziona il servizio da monitorare con il controllo di uptime.
    3. Lascia vuoto il campo Percorso per impostare come predefinita la pagina di indice principale.
    4. Lascia Frequenza di controllo sul valore predefinito di 1 minuto.
    5. Fai clic su Avanti.
  5. Lascia invariati i valori predefiniti dei campi Convalida della risposta e fai clic su Avanti.

  6. Nella sezione Avviso e notifica, specifica come ricevere le notifiche in caso di avviso:

    • Assicurati che l'etichetta del pulsante di attivazione/disattivazione sia La generazione degli avvisi è abilitata.
    • Lascia invariati i valori predefiniti dei campi Nome e Durata.
    • Per aggiungere un canale di notifica al criterio di avviso, nella casella di testo etichettata Canali di notifica, fai clic su Menu. Seleziona i canali da aggiungere e fai clic su Ok. Le notifiche sono raggruppate in ordine alfabetico per ogni tipo di canale.

      Per aggiungere una voce all'elenco delle caselle di controllo, fai clic su Gestisci canali di notifica e segui le istruzioni. Quando torni a questa finestra di dialogo, fai clic su Aggiorna .

  7. Fai clic su Crea. Quando l'azione di creazione va a buon fine, viene visualizzato il messaggio Controllo e avviso creati e poi viene visualizzata la pagina della dashboard Controlli di uptime.

    Il nuovo controllo di uptime viene visualizzato nella dashboard dei controlli di uptime. Se fai clic sul nome del controllo, si apre la visualizzazione dettagliata del controllo di uptime. Questa visualizzazione mostra diversi grafici, la percentuale di uptime e le informazioni di configurazione ed elenca i criteri di avviso configurati. Per visualizzare una policy, fai clic sul relativo nome.

    Puoi anche visualizzare il criterio di avviso a partire dalla pagina Avvisi. Nella pagina Avvisi, il riquadro Policy elenca un sottoinsieme di policy. Per visualizzare un elenco di tutte le norme, fai clic su Visualizza tutte le norme.

Simulazione di un'interruzione del servizio

Ora che il controllo di uptime è stato creato, puoi simulare un'interruzione modificando la tua app in modo che risponda con un errore HTTP 404 Sorry, we can't find that page anziché con una risposta HTTP 200 OK.

  1. Il seguente codice mostra dove l'app Hello World restituisce solo un messaggio "Hello World!" e che il codice di stato della risposta è impostato per impostazione predefinita su 200 OK. Per visualizzare questo codice nell'app Hello World, utilizza la funzione di visualizzazione.

    # Copyright 2019 Google LLC All Rights Reserved.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    from flask import Flask
    app = Flask(__name__)
    
    
    @app.route('/', methods=['GET'])
    def say_hello():
        return "Hello, world!"
    
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1', port=8080, debug=True)
    
  2. Per fare in modo che l'app Hello World restituisca un codice di errore HTTP 404, modifica la riga di ritorno aggiungendo un valore 404 alla seconda parte del valore restituito.

    return 'Hello World', 404
  3. Esegui il deployment della nuova app intenzionalmente danneggiata.

    gcloud app deploy

    Entro mezz'ora riceverai un messaggio email che ti informa che il controllo dell'uptime non è riuscito.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Il modo più semplice per eliminare la fatturazione è eliminare il progetto creato per il tutorial.

Per eliminare il progetto:

  1. Nella console Google Cloud , vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.