En esta página se describe cómo solucionar los errores que pueden surgir al desplegar la configuración de Cloud Endpoints. Los mensajes de error que ves contienen información específica de tu proyecto. Por ejemplo, puede que veas un mensaje de error que incluya el ID de tu proyecto. En esta página verás valores de marcador de posición, como YOUR_PROJECT_ID.
Después de cada paso, vuelve a ejecutar el comando gcloud endpoints services deploy
para comprobar si se ha resuelto el error.
No se puede convertir en configuración de servicio
ERROR: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT:
Cannot convert to service config. http: undefined field <unknown>
on message <RequestType>
Comprueba el archivo .proto
para ver si hay campos que no coinciden entre tus mensajes del búfer de protocolo y las
asignaciones de transcodificación.
Por ejemplo, si se incluye lo siguiente en un archivo .proto
, se produce este error. La opción de asignación de Unary
especifica un campo llamado
undefined
que no está en la definición del mensaje Request
.
rpc Unary(Request) Response { option (google.api.http) { get : "/{undefined}" }; } message Request { string defined = 1; }
No se permite obtener la configuración del proyecto
ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID
- Vuelve a autenticarte con la CLI de gcloud para confirmar que te has autenticado con una cuenta que tiene permiso para acceder al proyecto que se muestra en el mensaje de error:
gcloud auth login
Se abre una nueva pestaña del navegador y se te pide que elijas una cuenta.
- Confirma que el ID de proyecto que se muestra en el mensaje de error corresponde al Google Cloud proyecto en el que quieres implementar la configuración de Endpoints:
gcloud projects list
- Confirma que la CLI de gcloud tiene el ID de proyecto correcto establecido como proyecto actual:
gcloud config set project YOUR_PROJECT_ID
El método llamador no tiene permiso
ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Caller does not have permission 'servicemanagement.services.create' on
project YOUR_PROJECT_ID
La primera vez que implementas la configuración de Endpoints, Service Management crea un servicio gestionado para tu API. Para crear un servicio gestionado, debes tener al menos el rol Editor a nivel de proyecto. Una vez que Service Management crea el servicio gestionado, los permisos mínimos necesarios para volver a implementar una configuración de Endpoints son los del rol Editor de configuración de servicios (roles/servicemanagement.configEditor) en el servicio. Para obtener más información, consulta Conceder acceso a la API.
No se puede verificar la propiedad del nombre de dominio
ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Ownership for domain name YOUR_DOMAIN_NAME on project
YOUR_PROJECT_ID cannot be verified
- Si tienes un dominio personalizado (por ejemplo,
example.com
) configurado en el camponame
de tu archivoapi_config.yaml
, debes verificar el nombre de dominio para poder implementar la configuración del servicio. - Si usas el dominio
cloud.goog
, confirma que el valor del camponame
tiene el siguiente formato y que el ID del proyecto es correcto:API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
Solucionar otros errores
Si has recibido un error que no aparece en esta lista o si la información no ha resuelto tu problema, vuelve a ejecutar el comando gcloud
con la marca para mostrar información de depuración:
gcloud --verbosity=debug endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml