1. Introduzione
Ultimo aggiornamento: 21 giugno 2023
Avvisi sui controlli di uptime per disponibilità
Gli avvisi sui controlli di uptime ti consentono di identificare e risolvere rapidamente i problemi che potrebbero influire sui tuoi servizi. Grazie agli avvisi di interruzione, puoi adottare misure per ridurre al minimo l'impatto su utenti e clienti.
I controlli di uptime avvengono a intervalli, il più breve dei quali è di 60 secondi. Può essere utile anche monitorare i codici di errore sotto forma di eventi dinamici tramite avvisi basati su log come ulteriore indicatore dell'indisponibilità se è necessaria una granularità oltre i 60 secondi. Se un intervallo di almeno 60 secondi è accettabile, i controlli di uptime rappresentano un modo semplice per misurare il servizio con una configurazione aggiuntiva minima.
Se un servizio non è disponibile, un controllo di uptime rileverà il problema anche in assenza di traffico. Il traffico, invece, può essere influenzato da fattori quali manutenzione, upgrade e persino fattori esterni al sistema, come condizioni meteorologiche avverse o eventi sportivi che possono distrarre l'utilizzo.
Per saperne di più su quando utilizzare i controlli di uptime, consulta Garantire l'uptime delle tue risorse Google Cloud.
Argomenti Pub/Sub come canale di notifica di avviso
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 i servizi di notifica di terze parti.
Per utilizzare un argomento Pub/Sub come canale di notifica, devi prima creare un argomento e una sottoscrizione Pub/Sub. Quindi, devi creare un canale di notifica di 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 le azioni appropriate.
Cosa creerai
In questo codelab, eseguirai il deployment di un'app, creerai un argomento Pub/Sub e creerai un avviso del controllo di uptime per l'app che utilizza l'argomento Pub/Sub come canale di notifica.
Cosa imparerai a fare
- 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. I concetti e il 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.
- 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 verrà visualizzata la dashboard del progetto. Da qui puoi iniziare a utilizzare i servizi Google Cloud.
Di seguito sono riportati alcuni dettagli aggiuntivi su ogni passaggio:
- Nome: il nome del progetto deve essere univoco all'interno della tua 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
Qual è l'argomento dell'applicazione o dell'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 un conteggio specifico dell'inventario degli articoli.
Dopo aver eseguito il deployment dell'API e supponendo che sia ospitata su https://<somehost>, possiamo accedere agli endpoint API come segue:
https://<somehost>/inventory
Verranno elencati tutti gli articoli di prodotto con i livelli di inventario disponibili.
https://<somehost>/inventory/{productid}
In questo modo otterrai un unico record con ID prodotto e livello di inventario disponibile per quel prodotto.
I dati di risposta restituiti sono in formato JSON.
Nota: questa applicazione API è solo a scopo dimostrativo e non rappresenta un'implementazione dell'API sicura e affidabile. Lo scopo è quello di mettere a nostra disposizione un'applicazione rapida per esplorare lo scopo chiave del lab, ovvero la Suite operativa di Google Cloud.
Dati di esempio e richiesta/risposta dell'API
Per semplificare le cose, l'applicazione non è basata su un database nel backend. Contiene 3 ID prodotto di esempio e i relativi livelli di inventario disponibili.
ID prodotto | Livello dell'inventario disponibile |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Di seguito sono riportati alcuni esempi di Richiesta e risposta dell'API:
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
Anche se Google Cloud può essere utilizzato da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.
Dalla console di Google Cloud, fai clic sull'icona di Cloud Shell nella barra degli strumenti in alto a destra:
Dovrebbe richiedere solo qualche istante per eseguire il provisioning e connettersi all'ambiente. Al termine, dovresti vedere una schermata simile al seguente:
Questa macchina virtuale viene caricata con tutti gli strumenti di sviluppo di cui hai bisogno. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud, migliorando notevolmente le prestazioni di rete e l'autenticazione. 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
Verrà creata una cartella denominata cloud-code-sample-repository in questa cartella.
(Facoltativo) Esegui l'applicazione su Cloud Shell
Puoi eseguire l'applicazione in locale seguendo questa procedura:
- Dal terminale, passa alla versione Python dell'API tramite questo comando:
$
cd
cloud-code-sample-repository
$
cd
python-flask-api
- Nel terminale, fornisci il comando seguente (al momento della scrittura, 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 questo comando per avviare il server Python localmente.
Fai clic su Anteprima sulla porta 8080. 5. Si aprirà una finestra del browser. Verrà visualizzato un errore 404 e va bene. Modifica l'URL e sostituiscilo con /inventory dopo il nome host.
Ad es. sul mio computer, avrà il seguente aspetto:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Verrà visualizzato l'elenco degli elementi dell'inventario, come spiegato in precedenza:
- Puoi arrestare subito il server andando al Terminale e premendo Ctrl-C
Esegui il deployment dell'applicazione
Ora eseguiremo il deployment di questa applicazione API in Cloud Run. Il processo prevede l'utilizzo del client a riga di comando gcloud per eseguire il comando ed eseguire il deployment del codice in Cloud Run.
Dal terminale, fornisci il seguente comando gcloud:
$ gcloud run deploy --source .
Ti verranno poste più domande e alcuni dei punti sono menzionati di seguito:
- Nome servizio (python-flask-api): scegli questo valore predefinito o ad esempio my-inventory-api
- API [run.googleapis.com] non abilitata sul progetto [613162942481]. Vuoi attivare e riprovare (l'operazione richiederà alcuni minuti)? (y/N)? Y
- Specifica una regione: scegli 31 (us-west-1)
- API [artifactregistry.googleapis.com] non abilitata nel progetto [613162942481]. Vuoi attivare 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
- Consentire chiamate non autenticate a [my-inventory-api] (y/N)? Y
Alla fine, questo avvierà il processo per prendere il codice sorgente, containerizzarlo, eseguirne il push su Artifact Registry e quindi eseguire il deployment del servizio e della revisione Cloud Run. Dovresti essere paziente durante questa procedura (che può richiedere 3-4 minuti) e dovresti vedere il completamento del processo con l'URL del servizio che ti viene mostrato.
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 in questo modo:
- Prendi nota dell'URL del servizio nel passaggio precedente. Ad esempio, nella mia configurazione, è indicato come
https://my-inventory-api-bt2r5243dq-uw.a.run.app
. Chiamiamo questo<SERVICE_URL>
. - Apri un browser e accedi ai tre URL seguenti per gli endpoint API:
<SERVICE_URL>/inventory
<SERVICE_URL>/inventory/I-1
<SERVICE_URL>/inventory/I-100
Dovrebbe rispettare le specifiche che abbiamo fornito in una sezione precedente con esempi di richiesta e risposta dell'API.
Recupera i dettagli del servizio da Cloud Run
Abbiamo eseguito il deployment del nostro servizio API in 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 vedere il servizio di cui hai appena eseguito il deployment. A seconda del nome selezionato, il risultato dovrebbe essere simile al seguente:
Fai clic sul nome del servizio per visualizzare i dettagli. Di seguito sono riportati i dettagli di esempio:
Osserva l'URL, che non è altro che l'URL del servizio che puoi forare nel browser e che puoi accedere all'API Inventory di cui abbiamo appena eseguito il deployment. Dai un'occhiata alle metriche e ad altri dettagli.
Cominciamo 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.
- Fai clic sulla scheda Argomenti se non è quella su cui ti trovi già.
- Fai clic sul pulsante Crea argomento.
- Inserisci un nome per l'argomento.
- Fai clic sul pulsante Crea.
- Copia il Nome argomento utilizzando il pulsante icona di copia. Ti servirà per la prossima sezione.
5. Creare un controllo di uptime
Per creare un controllo di uptime per un'applicazione Google Cloud Run:
- Vai alla console di Google Cloud.
- Fai clic sulla scheda Monitoring.
- 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. Nella schermata seguente è disponibile un esempio. Se non sai con certezza quale sia l'URL del servizio, vai a Cloud Run dalla console Google Cloud principale e vai ai dettagli del servizio Cloud Run come spiegato prima per ottenere l'URL del servizio.
- Percorso : integro
- Frequenza di controllo: 1 minuto
- Fai clic su Continua.
- Attiva l'opzione La corrispondenza dei contenuti è attiva.
- Inserisci "Tutti i pozzi" nella sezione Contenuti della risposta; questa stringa è già presente nell'applicazione quando invia risposte complete.
- Keep
- Mantieni l'opzione Codice di risposta HTTP accettabile impostata su Classi di codice di risposta e 2xx come unica classe del codice di risposta. In questo modo, per la stringa verranno valutati solo i codici di risposta con 2xx e qualsiasi altro elemento verrà conteggiato come un 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.
- Aggiungi 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 comincerà 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.