Risoluzione dei problemi di deployment della configurazione di Cloud Endpoints

In questa pagina viene descritto come risolvere gli errori che potresti riscontrare quando esegui il deployment della configurazione di Cloud Endpoints. I messaggi di errore visualizzati contengono informazioni specifiche per il tuo progetto. Ad esempio, potresti visualizzare un messaggio di errore contenente il tuo ID progetto. In questa pagina vedrai i valori segnaposto come YOUR_PROJECT_ID.

Dopo ogni passaggio, esegui di nuovo il comando gcloud endpoints services deploy per vedere se l'errore è stato risolto.

Impossibile convertire in configurazione del servizio

ERROR: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT:
Cannot convert to service config. http: undefined field <unknown> on message <RequestType>

Controlla che nel file .proto non vi siano campi non corrispondenti tra i messaggi del buffer di protocollo e le mappature di transcodifica.

Ad esempio, quanto segue in un file .proto genera questo errore. L'opzione di mappatura su Unary specifica un campo denominato undefined che non è incluso nella definizione del messaggio Request.

rpc Unary(Request) Response {
  option (google.api.http) { get : "/{undefined}" };
}

message Request {
  string defined = 1;
}

Non possono recuperare le impostazioni di progetto

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID

  1. Esegui di nuovo l'autenticazione con gcloud CLI per confermare di aver eseguito l'autenticazione con un account che dispone dell'autorizzazione per accedere al progetto visualizzato nel messaggio di errore:
    gcloud auth login
    

    Si apre una nuova scheda del browser e ti viene chiesto di scegliere un account.

  2. Verifica che l'ID progetto visualizzato nel messaggio di errore corrisponda al progetto Google Cloud in cui intendi eseguire il deployment della configurazione degli endpoint:
    gcloud projects list
    
  3. Verifica che per gcloud CLI sia impostato l'ID progetto corretto come progetto attuale:
    gcloud config set project YOUR_PROJECT_ID
    

Il chiamante non dispone dell'autorizzazione

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Caller does not have permission 'servicemanagement.services.create' on project YOUR_PROJECT_ID

Quando esegui il deployment della configurazione di Endpoints per la prima volta, Service Management crea un servizio gestito per l'API. Per creare un servizio gestito, devi disporre almeno del ruolo Editor a livello di progetto. Dopo che Service Management ha creato il servizio gestito, le autorizzazioni minime richieste per rieseguire il deployment di una configurazione di Endpoints sono il ruolo Editor configurazione servizio (roles/servicemanagement.configEditor) sul servizio. Per ulteriori informazioni, consulta la pagina relativa alla concessione dell'accesso all'API.

Impossibile verificare la proprietà del nome di dominio

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Ownership for domain name YOUR_DOMAIN_NAME on project YOUR_PROJECT_ID cannot be verified

  • Se hai un dominio personalizzato (ad esempio example.com) configurato nel campo name del file api_config.yaml, devi verificare il nome di dominio prima di poter eseguire il deployment della configurazione del servizio.
  • Se utilizzi il dominio cloud.goog, verifica che il valore del campo name sia nel seguente formato e che l'ID progetto sia corretto:
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
    

Risoluzione di altri errori

Se hai ricevuto un errore non elencato qui o se le informazioni non hanno risolto il problema, esegui di nuovo il comando gcloud con il flag per visualizzare le informazioni di debug:

gcloud --verbosity=debug endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml

Passaggi successivi