1. Introduzione
Ultimo aggiornamento: 21 giugno 2023
Avvisi sui controlli di uptime per la disponibilità
Gli avvisi sui controlli di uptime ti consentono di identificare e risolvere rapidamente i problemi che potrebbero influire sui tuoi servizi. Se ricevi avvisi relativi alle interruzioni, puoi adottare misure per ridurre al minimo l'impatto sui tuoi utenti e clienti.
I controlli dell'uptime vengono eseguiti a intervalli, il più breve dei quali è di 60 secondi. Potrebbe essere utile monitorare anche i codici di errore come eventi dinamici tramite avvisi basati sui log come indicatore aggiuntivo di mancata disponibilità se hai bisogno di una granularità superiore a 60 secondi. Se un intervallo di 60 secondi o più è accettabile, i controlli di uptime sono un modo semplice per misurare il servizio con poca configurazione aggiuntiva.
Se un servizio non è disponibile, un controllo dell'uptime rileverà il problema anche se non c'è traffico. Il traffico, invece, può essere influenzato da fattori quali manutenzione, aggiornamenti e persino fattori esterni al sistema, come maltempo o eventi sportivi che distraggono l'utilizzo.
Per ulteriori informazioni su quando utilizzare i controlli di uptime, consulta Garantire l'uptime delle risorse Google Cloud.
Argomenti Pub/Sub come canale di notifica degli avvisi
Un argomento Pub/Sub può essere utilizzato come canale di notifica di Google Cloud Monitoring per inviare avvisi a una sottoscrizione Pub/Sub. In questo modo puoi integrare gli avvisi di Cloud Monitoring con altri sistemi, inclusi servizi di notifica di terze parti.
Per utilizzare un argomento Pub/Sub come canale di notifica, devi prima creare un argomento Pub/Sub e una sottoscrizione Pub/Sub. Poi, devi creare un canale di notifica Cloud Monitoring che utilizzi l'argomento Pub/Sub come destinazione.
Quando viene attivato un avviso, Cloud Monitoring invia un messaggio all'argomento Pub/Sub. Il sottoscrittore della sottoscrizione Pub/Sub può quindi elaborare il messaggio e intraprendere l'azione appropriata.
Cosa creerai
In questo codelab, eseguirai il deployment di un'app, creerai un argomento Pub/Sub e un avviso di controllo di uptime per l'app che utilizza l'argomento Pub/Sub come canale di notifica.
Cosa imparerai a fare
- Come creare un argomento Pub/Sub
- Come creare un controllo di uptime e un avviso
Questo codelab è incentrato sulla creazione di un avviso per un controllo di uptime. Concetti e codice dell'applicazione non pertinenti sono trattati solo superficialmente e sono forniti solo per operazioni di copia e incolla.
Che cosa ti serve
- Un account Google Cloud con autorizzazioni per:
- Esegui il deployment delle applicazioni Cloud Run
- Crea argomenti Pub/Sub
- Crea controlli di uptime
- crea avvisi
2. Preparazione
Seleziona o crea un progetto Google Cloud
Per selezionare un progetto esistente, utilizza il menu a discesa:

Per creare un nuovo progetto in Google Cloud, puoi seguire questi passaggi:
- Vai alla console di Google Cloud Platform.
- Fai clic sul pulsante Crea progetto.
- Inserisci un nome per il progetto.
- Seleziona un account di fatturazione per il tuo progetto.
- Fai clic su pulsante Crea.
Il progetto verrà creato e visualizzerai la dashboard del progetto. Da qui, puoi iniziare a utilizzare i servizi Google Cloud.
Ecco alcuni dettagli aggiuntivi su ogni passaggio:
- Nome:il nome del progetto deve essere univoco all'interno dell'organizzazione.
- Account di fatturazione:puoi utilizzare un account di fatturazione esistente o crearne uno nuovo.
- Crea:dopo aver inserito tutte le informazioni richieste, fai clic sul pulsante Crea per creare il progetto.
Per saperne di più, consulta la documentazione di Google Cloud sulla creazione di progetti.
3. Esegui il deployment dell'applicazione API
Di cosa tratta l'applicazione o l'API di esempio?
La nostra applicazione è una semplice applicazione API Inventory che espone un endpoint API REST con un paio di operazioni per elencare gli articoli dell'inventario e ottenere il conteggio dell'inventario di articoli specifici.
Una volta eseguito il deployment dell'API e supponendo che sia ospitata all'indirizzo https://<somehost>, possiamo accedere agli endpoint API nel seguente modo:
https://<somehost>/inventory
Verranno elencati tutti gli articoli di prodotto con i livelli di inventario disponibili.
https://<somehost>/inventory/{productid}
In questo modo verrà fornito un singolo record con l'ID prodotto e il livello di inventario disponibile per quel prodotto.
I dati della risposta restituita sono in formato JSON.
Nota: questa applicazione API è solo a scopo dimostrativo e non rappresenta un'implementazione API sicura e solida. Lo scopo è quello di avere a disposizione un'applicazione rapida per esplorare lo scopo principale del lab, ovvero Google Cloud Operations.
Dati di esempio e richiesta/risposta API
Per semplificare le cose, l'applicazione non è basata su un database nel backend. Contiene tre ID prodotto di esempio e i relativi livelli di inventario disponibile.
ID prodotto | Livello di inventario disponibile |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Di seguito sono riportati la richiesta e la risposta dell'API di esempio:
Richiesta API | Risposta dell'API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Clona il repository
Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.
Nella console GCP, fai clic sull'icona di Cloud Shell nella barra degli strumenti in alto a destra:

Bastano pochi istanti per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere un risultato simile a questo:

Questa macchina virtuale è caricata con tutti gli strumenti per sviluppatori di cui hai bisogno. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Tutto il lavoro in questo lab può essere svolto semplicemente con un browser.
Configura gcloud
In Cloud Shell, imposta l'ID progetto e salvalo come variabile PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
Ora esegui questo comando:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
In questa cartella verrà creata una cartella denominata cloud-code-sample-repository.
(Facoltativo) Esegui l'applicazione su Cloud Shell
Per eseguire l'applicazione localmente:
- Dal terminale, vai alla versione Python dell'API tramite il seguente comando:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- Nel terminale, fornisci il comando seguente (al momento della stesura, Cloud Shell viene fornito con Python 3.9.x installato e utilizzeremo la versione predefinita. Se prevedi di eseguirlo localmente sul tuo laptop, puoi utilizzare Python 3.8+) :
$ python app.py
- Puoi eseguire il seguente comando per avviare il server Python in locale.

Fai clic su Anteprima sulla porta 8080. 5. Si aprirà una finestra del browser. Visualizzerai un errore 404, il che va bene. Modifica l'URL e cambia la parte dopo il nome host in /inventory.
Ad esempio, sul mio computer ha questo aspetto:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Verrà visualizzato l'elenco degli articoli di inventario come spiegato in precedenza:

- Ora puoi arrestare il server andando al terminale e premendo Ctrl+C.
Esegui il deployment dell'applicazione
Ora eseguiremo il deployment di questa applicazione API su Cloud Run. La procedura prevedeva l'utilizzo del client a riga di comando gcloud per eseguire il comando di deployment del codice in Cloud Run.
Dal terminale, esegui il seguente comando gcloud:
$ gcloud run deploy --source .
Ti verranno poste diverse domande e alcuni punti sono menzionati di seguito:
- Nome del servizio (python-flask-api): scegli questo valore predefinito o un nome come my-inventory-api
- API [run.googleapis.com] not enabled on project [613162942481]. Vuoi abilitare e riprovare (l'operazione richiederà alcuni minuti)? (y/N)? Y
- Specifica una regione: scegli 31 (us-west-1)
- API [artifactregistry.googleapis.com] not enabled on project [613162942481]. Vuoi abilitare e riprovare (l'operazione richiederà alcuni minuti)? (y/N)? Y
- Il deployment dall'origine richiede un repository Docker Artifact Registry per archiviare i container creati. Verrà creato un repository denominato [cloud-run-source-deploy] nella regione [us-west1].
- Do you want to continue (Y/n)? Y
- Consenti chiamate non autenticate a [my-inventory-api] (y/N)? Y
Alla fine, verrà avviato il processo per prendere il codice sorgente, containerizzarlo, eseguirne il push su Artifact Registry e poi eseguire il deployment del servizio e della revisione Cloud Run. Devi avere pazienza durante questa procedura (può richiedere 3-4 minuti) e dovresti vedere che la procedura viene completata con l'URL del servizio visualizzato.
Di seguito è riportato un esempio di esecuzione:

testa l'applicazione
Ora che abbiamo eseguito il deployment dell'applicazione in Cloud Run, puoi accedere all'applicazione API nel seguente modo:
- Prendi nota dell'URL del servizio del passaggio precedente. Ad esempio, nella mia configurazione viene visualizzato come
https://my-inventory-api-bt2r5243dq-uw.a.run.app. Chiamiamolo<SERVICE_URL>. - Apri un browser e accedi ai seguenti tre URL per gli endpoint API:
<SERVICE_URL>/inventory<SERVICE_URL>/inventory/I-1<SERVICE_URL>/inventory/I-100
Deve essere conforme alle specifiche che abbiamo fornito in una sezione precedente con richiesta e risposta API di esempio.
Recupera i dettagli del servizio da Cloud Run
Abbiamo eseguito il deployment del nostro servizio API su Cloud Run, un ambiente di serverless computing. Possiamo visitare il servizio Cloud Run tramite la console Google Cloud in qualsiasi momento.
Nel menu principale, vai a Cloud Run. Verrà visualizzato l'elenco dei servizi in esecuzione in Cloud Run. Dovresti visualizzare il servizio di cui hai appena eseguito il deployment. A seconda del nome selezionato, dovresti vedere qualcosa di simile a questo:

Fai clic sul nome del servizio per visualizzarne i dettagli. Di seguito sono riportati i dettagli del campione:

Nota l'URL, che non è altro che l'URL del servizio che puoi inserire nel browser e accedere all'API Inventory che abbiamo appena implementato. Consulta le metriche e altri dettagli.
Iniziamo subito con la suite operativa di Google Cloud.
4. Crea un argomento Pub/Sub per ricevere la notifica di avviso
Per creare un argomento Pub/Sub, puoi seguire questi passaggi nella console Google Cloud:
- Cerca Pub/Sub nella casella di ricerca e vai a Pub/Sub.

- Se non l'hai già fatto, fai clic sulla scheda Argomenti.

- Fai clic sul pulsante Crea argomento.

- Inserisci un nome per l'argomento.

- Fai clic sul pulsante Crea.

- Copia il nome dell'argomento utilizzando il pulsante dell'icona di copia. Ti servirà per la sezione successiva.

5. Crea un controllo di uptime
Per creare un controllo di uptime per un'applicazione Google Cloud Run:
- Vai alla console di Google Cloud Platform.
- Fai clic sulla scheda Monitoraggio.
- Fai clic sulla scheda Controlli di uptime.
- Nella parte superiore della pagina, fai clic sul pulsante Crea controllo di uptime.

- Utilizza i seguenti valori:
- Protocollo : HTTPS
- Tipo di risorsa : URL
- Nome host : inserisci la parte dell'URL del servizio Cloud Run senza https. Un esempio è riportato nella schermata seguente. Se non conosci l'URL del servizio, vai a Cloud Run dalla console Google Cloud principale e vai ai dettagli del servizio Cloud Run come spiegato in precedenza per ottenere l'URL del servizio.
- Percorso : healthy
- Frequenza di controllo: 1 minuto

- Fai clic su Continua.
- Attiva l'opzione La corrispondenza dei contenuti è abilitata.
- Inserisci "All Izz Well" in Contenuto della risposta. Questa stringa è già presente nell'applicazione quando invia risposte complete.
- Keep

- Mantieni Codice di risposta HTTP accettabile impostato su Classi di codici di risposta e 2xx come unica classe di codici di risposta. In questo modo, solo i codici di risposta con 2xx verranno valutati per la stringa e qualsiasi altro codice verrà automaticamente conteggiato come controllo non riuscito.

- Fai clic su Continua.
- Seleziona l'argomento Cloud Pub/Sub come canale di notifica e fai clic su Ok.

- Fai clic su Continua.
- Aggiungere un titolo riconoscibile

- Fai clic sul pulsante Test.

- Rivedi e fai clic sul pulsante Crea quando è tutto pronto

Il controllo di uptime verrà creato e inizierà a monitorare l'applicazione Cloud Run. Puoi visualizzare lo stato del controllo di uptime nella scheda Controlli di uptime.

6. Complimenti
Congratulazioni, hai configurato correttamente il controllo di uptime per inviare avvisi a Pub/Sub.