Questa pagina descrive come risolvere gli errori che potresti riscontrare durante il deployment della configurazione di Cloud Endpoints. I messaggi di errore visualizzati contengono informazioni specifiche del progetto. Ad esempio, potresti visualizzare un messaggio di errore contenente l'ID del 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 verificare se l'errore è stato risolto.
Impossibile convertire in una configurazione del servizio
ERROR: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT:
Cannot convert to service config. http: undefined field <unknown>
on message <RequestType>
Verifica la presenza di campi non corrispondenti tra i messaggi nel buffer di protocollo e le mappature di transcodifica del file .proto
.
Ad esempio, quanto segue in un file .proto
genera questo errore. L'opzione di mappatura su Unary
specifica un campo denominato
undefined
che non può essere utilizzato nella definizione del
messaggio Request
.
rpc Unary(Request) Response { option (google.api.http) { get : "/{undefined}" }; } message Request { string defined = 1; }
Non autorizzati a recuperare le impostazioni del progetto
ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID
- Esegui nuovamente l'autenticazione con l'interfaccia a riga di comando gcloud per confermare che hai eseguito l'autenticazione con un account autorizzato ad accedere al progetto visualizzato nel messaggio di errore:
gcloud auth login
Viene visualizzata una nuova scheda del browser in cui ti viene chiesto di scegliere un account.
- Verifica che l'ID progetto visualizzato nel messaggio di errore corrisponda al progetto Google Cloud su cui intendi eseguire il deployment della configurazione degli endpoint:
gcloud projects list
- Verifica che l'interfaccia a riga di comando gcloud abbia l'ID progetto corretto impostato 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 degli endpoint per la prima volta, Gestione servizi crea un servizio gestito per la tua 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 eseguire nuovamente il deployment di una configurazione endpoint sono il ruolo Service Config Editor (roles/servicemanagement.configEditor) sul servizio. Per ulteriori informazioni, consulta la pagina Concedere l'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 configurato un dominio personalizzato (ad esempio
example.com
) nel camponame
del fileapi_config.yaml
, devi verificare il nome di dominio per poter eseguire il deployment della configurazione del servizio. - Se utilizzi il dominio
cloud.goog
, verifica che il valore del camponame
sia nel seguente formato e che l'ID progetto sia corretto:API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
Risolvere 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