Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come creare un'API personalizzata per i probe di integrità HTTP usando Python, FLASK e psutil. I controlli di integrità vengono eseguiti nelle istanze back-end usando HTTP GET e contrassegnati come integri o non integri in base alla risposta. Il probe personalizzato in questo articolo contrassegna le istanze come non integre se l'utilizzo della CPU supera il 75%. I probe di integrità HTTP possono essere usati per molti scopi, non solo per l'utilizzo della CPU, quando si combinano con la logica e i controlli di integrità personalizzati.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente e accedere al portale di Azure.
- Un SKU standard esistente di Azure Load Balancer. Per altre informazioni sulla creazione di un bilanciamento del carico, vedere Creare un bilanciamento del carico pubblico usando il portale di Azure.
- Una macchina virtuale di Azure che esegue Linux nel pool back-end di Azure Load Balancer, vedere Creare una macchina virtuale usando il portale di Azure.
- La macchina virtuale Linux include python3, pip e i pacchetti seguenti installati:
- flask
- flask_restful
- psutil
- Accesso remoto alla macchina virtuale tramite SSH o Azure Bastion.
Importante
La tariffa oraria inizia dal momento in cui viene distribuito Bastion, a prescindere dall'utilizzo dei dati in uscita. Per altre informazioni, vedere Prezzi e SKU. Se si distribuisce Bastion come parte di un'esercitazione o un test, è consigliabile eliminare questa risorsa dopo averla usata.
Configurare API nella macchina virtuale
In questa sezione viene configurata la macchina virtuale per eseguire l'API personalizzata per il probe di integrità HTTP.
Connettersi alla macchina virtuale usando SSH o Azure Bastion. Questo articolo usa SSH per connettersi alla macchina virtuale.
Creare una nuova cartella per archiviare il codice per l'API di integrità e immettere la nuova cartella:
mkdir health_API && cd health_APICreare un nuovo file Python e incollare il codice seguente nel file:
touch health.py && vim health.py# Import libraries from flask import Flask from flask_restful import Resource, Api import psutil # Define app and API app = Flask(__name__) api = Api(app) # Define API GET method class check_CPU_VM(Resource): def get(self): # If VM CPU utilization is over 75%, throw an error if psutil.cpu_percent() >= 75.0: return '',408 # Else keep the VM as healthy else: return '',200 # Add the GET method to the API at the path 'health_check' api.add_resource(check_CPU_VM, '/health_check/') # Expose the API on all available IP address on the VM if __name__ == "__main__": app.run(debug=True, host ="0.0.0.0")Dopo aver copiato il codice nel file, installare python3 e i pacchetti necessari (flask, flask_restful, psutil). I comandi seguenti installano python3 e i pacchetti necessari in Ubuntu:
#Install Python sudo apt-get update sudo apt-get install python3 sudo apt-get install python3-pip pip3 install flask flask_restful psutilEseguire l'API usando il comando seguente:
python3 health.pyDopo l'avvio dell'esecuzione dell'API, vengono visualizzati due indirizzi IP esposti all'API sulla porta 5000.
- Il primo indirizzo IP è l'indirizzo IP locale disponibile solo per la macchina virtuale.
- Il secondo indirizzo IP è l'indirizzo IP privato della macchina virtuale, il probe di integrità del bilanciamento del carico verifica questo indirizzo IP.
Nota
L'API dovrà essere in esecuzione nella macchina virtuale per il funzionamento del probe di integrità. Quando si chiude la sessione SSH, l'API smetterà di funzionare. Mantenere aperta la finestra durante la creazione del probe di integrità o eseguire l'API in background.
Creare un probe integrità
In questa sezione viene creato il probe di integrità usato per controllare l'integrità delle istanze back-end che eseguono l'API personalizzata.
Passare al portale di Azure e selezionare il bilanciamento del carico a cui si vuole aggiungere il probe di integrità.
Selezionare Probe di integrità in Impostazioni.
Seleziona + Aggiungi.
Nella pagina Aggiungi probe integrità immettere o selezionare le informazioni seguenti:
Impostazione valore Nome Immettere HTTP_Health Protocollo Selezionare HTTP Porta Immettere 5000 Percorso Immettere /health_check/ Intervallo (secondi) Immettere 5 Scegliere OK per creare il probe di integrità.
Creare la regola di bilanciamento del carico
In questa sezione viene creata la regola di bilanciamento del carico che usa il probe di integrità HTTP.
Nella pagina di panoramica del bilanciamento del carico selezionare Regole di bilanciamento del carico in Impostazioni.
Seleziona + Aggiungi.
Nella pagina Aggiungi regola di bilanciamento del carico immettere le informazioni seguenti:
Impostazione valore Nome Immettere custom_HTTP_rule Indirizzo IP front-end IP Selezionare l'indirizzo IP front-end del bilanciamento del carico. Pool back-end Selezionare il pool back-end che si vuole usare. Protocollo Selezionare TCP Porta Immettere 5000 Porta back-end Immettere 5000 Probe di integrità Selezionare HTTP_Health (HTTP:5000/health_check/) Persistenza della sessione Selezionare Nessuno Timeout di inattività (minuti) Immettere 5
Selezionare Salva per creare la regola di bilanciamento del carico.
Verificare un probe di integrità
In questa sezione si verifica che il probe di integrità funzioni come previsto controllando l'API in esecuzione e le metriche del bilanciamento del carico.
Tornare alla sessione SSH alla macchina virtuale che esegue l'API.
Nella finestra della console che esegue l'API dovrebbe essere visualizzata una richiesta GET ogni 5 secondi per controllare l'integrità della macchina virtuale, con una risposta con un codice di stato 200 se la macchina virtuale è integra.
Immettere CTRL+C per arrestare l'API.
Chiudere la sessione SSH alla macchina virtuale.
Tornare alla pagina di panoramica del bilanciamento del carico.
Selezionare Metriche in Monitoraggio.
Selezionare + Aggiungi metrica e immettere/selezionare le informazioni seguenti:
Impostazione valore Scope Selezionare il bilanciamento del carico da monitorare. Spazio dei nomi delle metriche Selezionare Bilanciamento del carico Standard Metrica Selezionare Stato del probe di integrità Aggregazione Selezionare Max Selezionare il segno di spunta per aggiungere la metrica.
Pulire le risorse
Quando non sono più necessari, eliminare il gruppo di risorse, il servizio di bilanciamento del carico e tutte le risorse correlate.