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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Avviare Cloud Shell

  1. Nella console Google Cloud, assicurati di trovarti nel progetto in cui da utilizzare per l'API di esempio.

  2. Apri Cloud Shell.

    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.

    Sessione di Cloud Shell

  3. Se utilizzi un progetto esistente, assicurati di avere la versione più recente di tutti i componenti gcloud installati:

    gcloud components update
    
di Gemini Advanced.

recupera il codice di esempio

  1. In Cloud Shell, inserisci questo comando per ottenere l'API di esempio e script:

    git clone https://github.com/GoogleCloudPlatform/endpoints-quickstart
    
  2. 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:

  1. In Cloud Shell, nella directory endpoints-quickstart, inserisci seguenti:

    cd scripts
    
  2. 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.com
gcloud 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.

  1. In Cloud Shell, esegui lo script di generazione del traffico per compilare grafici e log:

    ./generate_traffic.sh
    
  2. 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.

  3. 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.

  4. Apri Cloud Shell.

    Apri Cloud Shell

  5. 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.

  1. 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.

  2. Nella console Google Cloud, vai alla pagina Credenziali.

    Vai alla pagina Credenziali

  3. Fai clic su Crea credenziali, quindi su Chiave API. Sullo schermo viene visualizzata una nuova chiave API.

  4. Fai clic su Copia .

  5. In Cloud Shell, digita quanto segue. Sostituisci YOUR_API_KEY con la chiave API che hai appena creato.

    export API_KEY=YOUR_API_KEY
    
  6. 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
    
  7. 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
    
  8. Dopo aver eseguito lo script per 5-10 secondi, inserisci Control+C per interromperlo.

  9. 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.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Passaggi successivi