Dopo aver configurato il file .proto e il file di configurazione dell'API gRPC, esegui il loro deployment in modo che Cloud Endpoints disponga delle informazioni necessarie per gestire l'API. Per eseguire il deployment della configurazione di Endpoints, utilizza il comando gcloud
endpoints services deploy. Questo comando utilizza Service Infrastructure, la piattaforma di servizi di base di Google, utilizzata da Endpoints e altri servizi per creare e gestire API e servizi. Questa pagina descrive come eseguire il deployment dei file di configurazione in Endpoints.
Prerequisiti
Per iniziare, questa pagina presuppone che tu abbia:
Hai creato un Google Cloud project in cui disponi del ruolo Editor o Proprietario. Dopo il deployment iniziale, puoi concedere il ruolo più restrittivo Editor di configurazione del servizio. Per ulteriori informazioni, consulta la sezione Concedere e revocare l'accesso all'API.
Endpoint configurati, che include:
Se utilizzi un nome di dominio personalizzato (ad esempio
example.com), devi verificare il nome di dominio prima di poter eseguire il deployment dei file di configurazione gRPC.
Preparazione di Google Cloud CLI per il deployment
Utilizza lo strumento a riga di comando gcloud per eseguire il deployment della configurazione. Per ulteriori informazioni sui comandi, consulta la
documentazione di riferimento di gcloud.
Per prepararti al deployment:
- Installa e inizializza la gcloud CLI.
- Aggiorna la gcloud CLI:
gcloud components update
- Assicurati che gcloud CLI sia autorizzata ad accedere ai tuoi dati e ai tuoi servizi:
gcloud auth login
Si apre una nuova scheda del browser e ti viene chiesto di scegliere un account.
- Imposta il progetto predefinito. Sostituisci
[YOUR-PROJECT-ID]con l'ID del tuo progetto Google Cloudgcloud config set project [YOUR-PROJECT-ID]
- Se esegui il deployment del backend dell'API su Kubernetes o Kubernetes Engine, esegui il seguente comando per acquisire nuove credenziali utente da utilizzare per le Credenziali predefinite dell'applicazione. Le credenziali utente sono necessarie per autorizzare
kubectl. Si apre una nuova scheda del browser e ti viene chiesto di scegliere un account.gcloud auth application-default login
Eseguire il deployment dei file di configurazione
- Make sure you are in the directory where the
api_descriptor.pbandapi_config.yamlfiles are located. - Confirm that the default project that the
gcloudcommand-line tool is currently using is the Google Cloud project that you want to deploy the Endpoints configuration to. Validate the project ID returned from the following command to make sure that the service doesn't get created in the wrong project.gcloud config list project
If you need to change the default project, run the following command:
gcloud config set project YOUR_PROJECT_ID
- Deploy the
proto descriptorfile and the configuration file by using the Google Cloud CLI:gcloud endpoints services deploy api_descriptor.pb api_config.yaml
As it is creating and configuring the service, Service Management outputs information to the terminal. When the deployment completes, a message similar to the following is displayed:
Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
CONFIG_ID is the unique Endpoints service configuration ID created by the deployment. For example:
Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
In the previous example,
2017-02-13r0is the service configuration ID andbookstore.endpoints.example-project.cloud.googis the service name. The service configuration ID consists of a date stamp followed by a revision number. If you deploy the Endpoints configuration again on the same day, the revision number is incremented in the service configuration ID.
Se la configurazione del servizio si trova in più file YAML, puoi passarli tutti al comando deploy. Ad esempio, la libreria ha la sua configurazione di base
in api_config.yaml, ma puoi attivare la transcodifica HTTP per il servizio anche tramite
il deployment di api_config_http.yaml, che ha una configurazione aggiuntiva per
questa funzionalità:
gcloud endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml
Tieni presente che se i file YAML contengono valori in conflitto, i valori nell'ultimo file specificato sostituiscono gli altri. Puoi scoprire di più su come Endpoints gestisce l'unione di più file YAML in Configurazione di un servizio gRPC.
Se viene visualizzato un messaggio di errore, consulta Risoluzione dei problemi di deployment della configurazione degli endpoint per informazioni sulla risoluzione dell'errore.
Nuovo deployment
Ogni volta che modifichi qualcosa nel file YAML .proto o di configurazione del servizio, esegui nuovamente il deployment dei file in modo che il Extensible Service Proxy (ESP) abbia la versione più recente della configurazione del servizio dell'API. Se in precedenza hai eseguito il deployment dell'ESP con l'opzione rollout impostata su managed, non è necessario riavviare o eseguire nuovamente il deployment dell'ESP. L'opzione rollout=managed
configura ESP in modo da utilizzare la configurazione del servizio di cui è stato eseguito il deployment più di recente. Quando
specifichi questa opzione, fino a 5 minuti dopo aver eseguito il deployment di una nuova configurazione
del servizio, ESP rileva la modifica e inizia a utilizzarla automaticamente. Ti consigliamo di specificare questa opzione anziché un ID configurazione specifico da utilizzare per ESP.
Dopo il primo dispiegamento della configurazione di Endpoints, puoi assegnare a un utente, a un account di servizio o a un gruppo un ruolo che consenta di eseguire nuovamente il dispiegamento della configurazione di Endpoints. Per ulteriori informazioni, consulta la sezione Concedere e revocare l'accesso all'API.
Passaggi successivi
- Esegui il deployment del backend dell'API
- Eseguire ESP in locale o su un'altra piattaforma
- Ottenere il nome del servizio e l'ID di configurazione