Esegui il deployment di un'API gestita da Cloud Endpoints
Questa Guida rapida illustra come eseguire il deployment di un'API di esempio, Gestisce gli endpoint. Il codice campione include:
- Un'API REST su cui puoi eseguire una query per trovare il nome di un aeroporto dal suo codice IATA di tre lettere.
- Uno script che carica la configurazione API in Endpoints.
- Uno script che esegue il deployment del backend di un ambiente flessibile di App Engine per ospitare un'API di esempio.
Dopo aver inviato le richieste all'API di esempio, puoi visualizzare Grafici delle attività di Endpoints e log di Google Cloud Observability in nella console Google Cloud. Questi strumenti consentono di monitorare le API e ottenere informazioni il loro utilizzo.
Questa Guida rapida utilizza gli script per semplificare i passaggi di configurazione rapidamente i grafici e i log delle attività in azione. Per scoprire come configurare ed eseguire il deployment di un'API di esempio, scegliere un tutorial per una delle API i modelli:
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 in cui da utilizzare per l'API di esempio.
Apri Cloud Shell.
Una sessione di Cloud Shell si apre all'interno di un nuovo frame nella parte inferiore nella console Google Cloud e mostra un prompt della riga di comando. L'operazione può richiedere secondi per l'inizializzazione della sessione.
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 questo comando per ottenere l'API di esempio e script:
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 descrive l'API. L'API di esempio include un set di dati
File OpenAPI denominato openapi.yaml
.
Endpoints utilizza Service Management, un servizio di infrastruttura Google Cloud per creare e gestire API e servizi. Per utilizzare Endpoint per gestire un'API, devi eseguire il deployment dell'API OpenAPI di configurazione in Service Management.
Per eseguire il deployment della configurazione di Endpoints:
In Cloud Shell, nella directory
endpoints-quickstart
, inserisci seguenti:cd scripts
Esegui lo script seguente, che è incluso nell'esempio:
./deploy_api.sh
Endpoints utilizza il campo host
del file di configurazione OpenAPI
per identificare il servizio. Lo script deploy_api.sh
imposta l'ID del tuo
Progetto Google Cloud come parte del nome configurato nel campo host
.
Quando prepari un file di configurazione OpenAPI per un tuo servizio, devi
manualmente.
Lo script esegue quindi 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 genera
le informazioni alla console Google Cloud. Puoi ignorare tranquillamente gli avvisi
sui percorsi in openapi.yaml
che non richiedono una chiave API. A operazione riuscita
viene visualizzata una riga simile alla seguente che mostra il servizio
e il nome del servizio:
Service Configuration [2017-02-13-r2] uploaded for service [airports-api.endpoints.example-project.cloud.goog]
Abilitazione dei servizi richiesti
Endpoint richiede almeno l'abilitazione dei seguenti servizi Google:
Nome | Titolo |
---|---|
servicemanagement.googleapis.com |
API Service Management |
servicecontrol.googleapis.com |
API Service Control |
endpoints.googleapis.com |
Google Cloud Endpoints |
Nella maggior parte dei casi, il deployment della configurazione di Endpoints consente servizi richiesti.
Utilizza il comando seguente per confermare che i servizi richiesti siano abilitati:
gcloud services list
Se non vedi elencati i servizi richiesti, abilitali:
gcloud services enable servicemanagement.googleapis.comgcloud services enable servicecontrol.googleapis.com
gcloud services enable endpoints.googleapis.com
Abilita anche il servizio Endpoints:
gcloud services enable YOUR-PROJECT-ID.appspot.com
Per ulteriori informazioni sui comandi gcloud
, consulta
gcloud
servizi.
esegui il deployment del backend dell'API
Finora hai eseguito il deployment della configurazione OpenAPI in Service Management,
ma non hai ancora eseguito il deployment del codice
per gestire il backend dell'API. La
Lo script deploy_app.sh
incluso nell'esempio crea un App Engine
per ospitare il backend dell'API, quindi lo script esegue il deployment
da App Engine ad 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'istanza
nella regione us-central
:
gcloud app create --region="$REGION"
La creazione dell'ambiente flessibile di App Engine richiede diversi minuti di un backend cloud. Dopo la creazione dell'applicazione, l'output è:
Success! The app is now created.
Quindi, lo script esegue il comando gcloud app deploy
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 il deployment in App Engine è stato eseguito correttamente, 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 eco al comando curl
che utilizza per inviare una richiesta all'API,
e poi 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 IATA valido
codice aeroporto come SEA
o JFK
. Ad esempio:
./query_api.sh JFK
Nota: App Engine potrebbe richiedere alcuni minuti rispondere correttamente alle richieste. Se invii una richiesta e ricevi HTTP 502, 503 o un altro errore del server, attendi un minuto e riprova a effettuare la richiesta.
Hai eseguito il deployment e il test di un'API in Endpoints.
monitora l'attività dell'API
Con il deployment delle API eseguito con Endpoints, puoi monitorare le metriche operative nella console Google Cloud e ottenere informazioni utenti e l'utilizzo con Cloud Logging.
In Cloud Shell, esegui lo script di generazione del traffico per compilare grafici e log:
./generate_traffic.sh
Nella console Google Cloud, osserva i grafici di attività dell'API.
Vai alla pagina dei servizi Endpoints
Potrebbero essere necessari alcuni minuti prima che le richieste vengano riportate nei grafici. 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 all'API e al livello di accesso.
Fai clic su Cronologia deployment. In questa scheda viene visualizzata una cronologia dei tuoi deployment dell'API, inclusi i tempi di deployment e chi ha eseguito il deployment modifica.
Fai clic su Panoramica. Vedi il traffico in entrata. Dopo il traffico è in esecuzione da un minuto, vengono visualizzate tre righe sul grafico Latenza totale (50°, 95° e 98° percentile). Questo i dati forniscono una stima dei tempi di risposta.
Scorri verso il basso fino alla tabella sotto i grafici e in Link, Fai clic su Visualizza log per GET/airportName. Pagina Esplora log visualizza i log delle richieste per l'API.
Apri Cloud Shell.
Per interrompere lo script, inserisci
Control+C
.
Aggiunta di una quota all'API
Endpoints permette di impostare quote che permettono di controllare la frequenza quali applicazioni possono chiamare l'API. Puoi usare le quote per proteggere la tua API dall'uso eccessivo da parte di un solo client.
In Cloud Shell, esegui il deployment della configurazione di Endpoints con una quota.
./deploy_api.sh ../openapi_with_ratelimit.yaml
Dopo aver eseguito il deployment di una configurazione aggiornata di Endpoints, diventa attiva entro un minuto.
Nella console Google Cloud, vai alla pagina Credenziali.
Fai clic su Crea credenziali, quindi 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 questo comando per inviare il traffico all'API e attivare il limite di quota.
./generate_traffic_with_key.sh $API_KEY
Dopo aver eseguito lo script per 5-10 secondi, inserisci
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 ricevi una risposta diversa, prova a eseguire l'generate_traffic_with_key.sh
di nuovo e riprova.
Complimenti! Hai impostato correttamente la limitazione di frequenza dell'API. Puoi anche impostare diversi limiti su diversi metodi dell'API, creano più tipi di quote e e tenere traccia di quali consumatori usano quali API.
Per ulteriori informazioni, vedi Informazioni sulle quote.
Creazione di un portale per gli sviluppatori per l'API
Puoi usare il portale Cloud Endpoints per creare un portale per sviluppatori, un sito web che puoi utilizzare per interagire con l'API di esempio. Per saperne di più, vedi Panoramica del portale Cloud Endpoints.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi per le risorse utilizzate in questa pagina, segui questi passaggi.
Per evitare addebiti, puoi eliminare il tuo progetto Google Cloud per arrestare e la fatturazione per tutte le risorse utilizzate all'interno del progetto.
- 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:
Scopri di più sui diversi framework API utilizzati da Endpoints supporta:
Per scoprire come configurare ed eseguire il deployment di un'API di esempio, scegli un tutorial per un'API dei framework API: