Esegui il deployment di un'API gestita da Cloud Endpoints
Questa guida rapida illustra la procedura di deployment di un'API di esempio, gestita da Endpoints. Il codice campione include:
- Un'API REST su cui puoi eseguire una query per trovare il nome di un aeroporto utilizzando il suo codice IATA di tre lettere.
- Uno script che carica la configurazione dell'API in Endpoints.
- Uno script che esegue il deployment di un backend dell'ambiente flessibile di App Engine per ospitare l'API di esempio.
Dopo aver inviato richieste all'API di esempio, puoi visualizzare i grafici delle attività di Endpoints e i log di Google Cloud Observability nella console Google Cloud. Questi strumenti ti consentono di monitorare le API e di ottenere informazioni sul loro utilizzo.
Questa guida rapida utilizza script per semplificare i passaggi di configurazione in modo da visualizzare rapidamente i grafici e i log delle attività in azione. Per scoprire come configurare ed eseguire il deployment di un'API di esempio, scegli un tutorial per uno dei framework API:
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Avviare Cloud Shell
Nella console Google Cloud, assicurati di trovarti nel progetto che vuoi utilizzare per l'API di esempio.
Apri Cloud Shell.
All'interno di un nuovo frame nella parte inferiore della console Google Cloud si apre una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.
Se utilizzi un progetto esistente, assicurati di avere la versione più recente di tutti i componenti
gcloud
installati:gcloud components update
recupera il codice di esempio
In Cloud Shell, inserisci il seguente comando per recuperare l'API e gli script di esempio:
git clone https://github.com/GoogleCloudPlatform/endpoints-quickstart
Passa alla directory che contiene il codice di esempio:
cd endpoints-quickstart
esegui il deployment della configurazione di Endpoints
Per pubblicare un'API REST in Endpoints, è necessario un file di configurazione OpenAPI
che descriva l'API. L'API di esempio è dotata di un file OpenAPI preconfigurato denominato openapi.yaml
.
Endpoints utilizza Service Management, un servizio di infrastruttura di Google Cloud, per creare e gestire API e servizi. Per utilizzare Endpoints per la gestione di un'API, devi eseguire il deployment del file di configurazione OpenAPI dell'API in Service Management.
Per eseguire il deployment della configurazione di Endpoints:
In Cloud Shell, nella directory
endpoints-quickstart
, inserisci quanto segue:cd scripts
Esegui lo script seguente, che è incluso nell'esempio:
./deploy_api.sh
Endpoints utilizza il campo host
nel file di configurazione OpenAPI per identificare il servizio. Lo script deploy_api.sh
imposta l'ID del progetto Google Cloud come parte del nome configurato nel campo host
.
Quando prepari un file di configurazione OpenAPI per il tuo servizio, devi eseguire questa operazione manualmente.
Lo script quindi esegue il deployment della configurazione OpenAPI in Service Management utilizzando il comando: gcloud endpoints services deploy openapi.yaml
Durante la creazione e la configurazione del servizio, Service Management visualizza informazioni nella console Google Cloud. Puoi ignorare tranquillamente gli avvisi
sui percorsi presenti in openapi.yaml
che non richiedono una chiave API. Al termine, viene visualizzata una riga simile alla seguente, in cui sono visualizzati l'ID configurazione del servizio e il nome del servizio:
Service Configuration [2017-02-13-r2] uploaded for service [airports-api.endpoints.example-project.cloud.goog]
Attivazione dei servizi richiesti
Endpoints richiede almeno l'abilitazione dei seguenti servizi Google:
Nome | Titolo |
---|---|
servicecontrol.googleapis.com |
API Service Control |
servicemanagement.googleapis.com |
API Service Management |
Nella maggior parte dei casi, il deployment della configurazione di Endpoints abilita questi servizi obbligatori.
Utilizza il seguente comando per verificare che i servizi richiesti siano abilitati:
gcloud services list
Se non vedi i servizi richiesti nell'elenco, attivali:
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
Abilita anche il servizio Endpoints:
gcloud services enable YOUR-PROJECT-ID.appspot.com
Per ulteriori informazioni sui comandi gcloud
, consulta
Servizi gcloud
.
esegui il deployment del backend dell'API
Fino a questo punto, hai eseguito il deployment della configurazione OpenAPI in Service Management, ma non hai ancora eseguito il deployment del codice per il backend dell'API. Lo script deploy_app.sh
incluso nell'esempio crea un ambiente App Engine flessibile per ospitare il backend dell'API, quindi esegue il deployment dell'API in App Engine.
Per eseguire il deployment del backend dell'API:
In Cloud Shell, nella directory
endpoints-quickstart/scripts
, esegui il seguente script:./deploy_app.sh
Lo script esegue il comando seguente per creare un ambiente App Engine flessibile nella regione us-central
:
gcloud app create --region="$REGION"
La creazione del backend per l'ambiente flessibile di App Engine richiede alcuni minuti. Dopo aver creato l'applicazione, l'output è:
Success! The app is now created.
Successivamente, lo script esegue il comando gcloud app deploy
per eseguire il deployment dell'API di esempio in App Engine.
L'output è:
Deploying ../app/app_template.yaml...You are about to deploy the following services:
Il deployment dell'API in App Engine richiede alcuni minuti. Quando l'API viene eseguita correttamente in App Engine, l'output è:
Deployed service [default] to [https://example-project.appspot.com]
invia richieste all'API
In Cloud Shell, dopo aver eseguito il deployment dell'API di esempio, puoi inviare richieste eseguendo lo script seguente:
./query_api.sh
Lo script visualizza sullo schermo l'output del comando curl
che utilizza per inviare una richiesta all'API,
quindi mostra il risultato. L'output è:
curl "https://example-project.appspot.com/airportName?iataCode=SFO" San Francisco International Airport
L'API prevede un parametro di query, iataCode
, impostato su un codice aeroporto IATA valido, ad esempio SEA
o JFK
. Ad esempio:
./query_api.sh JFK
Nota: App Engine potrebbe impiegare alcuni minuti per rispondere correttamente alle richieste. Se invii una richiesta e ricevi un messaggio HTTP 502, 503 o un altro errore del server, attendi un minuto e riprova a inviare la richiesta.
Hai eseguito il deployment e il test di un'API in Endpoints.
monitora l'attività dell'API
Per le API di cui esegui il deployment con Endpoints, puoi monitorare le metriche delle operazioni critiche nella console Google Cloud e raccogliere informazioni dettagliate sugli utenti e sull'utilizzo con Cloud Logging.
In Cloud Shell, esegui lo script per la generazione di traffico per completare i grafici e i log:
./generate_traffic.sh
Nella console Google Cloud, esamina i grafici delle attività associate alla tua API.
Vai alla pagina Servizi endpoint
La visualizzazione dei dati relativi alle richieste nei grafici può richiedere alcuni minuti. Mentre attendi che i dati vengano visualizzati:
Se il riquadro laterale Autorizzazioni non è aperto, fai clic su +Autorizzazioni. Il riquadro Autorizzazioni consente di controllare chi ha accesso alla tua API e il livello di accesso.
Fai clic su Cronologia deployment. La scheda visualizza una cronologia dei deployment dell'API e include dati come l'ora del deployment e chi ha eseguito il deployment della modifica.
Fai clic su Panoramica. Vedrai il traffico in entrata. Dopo un minuto dall'inizio dell'esecuzione dello script di generazione del traffico, vedrai tre linee sul grafico della latenza totale (50°, 95° e 98° percentile). Questi dati forniscono una stima dei tempi di risposta.
Scorri verso il basso fino alla tabella sotto i grafici e in Collegamenti, fai clic su Visualizza log per GET/airportName. Nella pagina Esplora log sono visualizzati i log delle richieste per l'API.
Apri Cloud Shell.
Per interrompere lo script, inserisci
Control+C
.
Aggiunta di una quota all'API
Endpoints ti consente di impostare quote che ti consentono di controllare la frequenza con cui le applicazioni possono chiamare la tua API. Puoi utilizzare le quote per proteggere la tua API dall'utilizzo eccessivo da parte di un singolo client.
In Cloud Shell, esegui il deployment della configurazione di Endpoints che prevede una quota.
./deploy_api.sh ../openapi_with_ratelimit.yaml
Dopo aver eseguito il deployment di una configurazione di Endpoints aggiornata, questa diventa attiva entro un minuto.
Nella console Google Cloud, vai alla pagina Credenziali.
Fai clic su Crea credenziali e poi su Chiave API. Sullo schermo viene visualizzata una nuova chiave API.
Fai clic su Copia file_copy.
In Cloud Shell, digita quanto segue. Sostituisci
YOUR_API_KEY
con la chiave API che hai appena creato.export API_KEY=YOUR_API_KEY
Invia una richiesta all'API utilizzando la chiave API che hai appena generato.
./query_api_with_key.sh $API_KEY
L'output è simile al seguente:
curl -H 'x-api-key: AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB' "https://example-project.appspot.com/airportName?iataCode=SFO" San Francisco International Airport
L'API ora ha un limite di 5 richieste al minuto. Esegui il comando seguente per inviare il traffico all'API e attivare il limite stabilito dalla quota.
./generate_traffic_with_key.sh $API_KEY
Dopo aver eseguito lo script per 5-10 secondi, premi
Control+C
per interromperlo.Invia un'altra richiesta autenticata all'API.
./query_api_with_key.sh $API_KEY
L'output è simile al seguente:
{ "code": 8, "message": "Insufficient tokens for quota 'airport_requests' and limit 'limit-on-airport-requests' of service 'example-project.appspot.com' for consumer 'api_key:AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB'.", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "stackEntries": [], "detail": "internal" } ] }
Se viene visualizzata una risposta diversa, prova a eseguire di nuovo lo script generate_traffic_with_key.sh
e riprova.
Complimenti! Hai impostato correttamente la limitazione di frequenza dell'API. Puoi anche impostare limiti variabili su metodi diversi dell'API, creare più tipi di quote e tenere traccia di quali consumer utilizzano quali API.
Per ulteriori informazioni, consulta Informazioni sulle quote.
Creazione di un portale per gli sviluppatori per l'API
Puoi utilizzare il portale Cloud Endpoints per creare un portale per gli sviluppatori, un sito web che puoi utilizzare per interagire con l'API di esempio. Per saperne di più, consulta la panoramica del portale Cloud Endpoints.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.
Per evitare addebiti, puoi eliminare il tuo progetto Google Cloud per interrompere la fatturazione per tutte le risorse utilizzate al suo interno.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Passaggi successivi
Per una panoramica di Endpoints:
Per scoprire i diversi framework API supportati da Endpoints:
Per scoprire come configurare ed eseguire il deployment di un'API di esempio, scegli un tutorial per uno dei framework API: