En esta página, se describe cómo solucionar los problemas que pueden surgir durante la implementación de la configuración de Cloud Endpoints. Los mensajes de error que verás contienen información específica de tu proyecto. Por ejemplo, puedes ver un mensaje de error que contenga el ID de tu proyecto. En esta página, verás valores de marcadores de posición, como YOUR_PROJECT_ID.
Después de cada paso, vuelve a ejecutar el comando gcloud endpoints services deploy
para ver si se resolvió el error.
No se puede convertir a la configuración del servicio
ERROR: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT:
Cannot convert to service config. http: undefined field <unknown>
on message <RequestType>
Verifica tu archivo .proto
para detectar faltas de coincidencias en los campos entre los mensajes de búfer del protocolo y las asignaciones de transcodificación.
Por ejemplo, en un archivo .proto
, lo que sigue produce este error. La opción de asignación en 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 puede acceder a 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 autenticar con gcloud CLI para confirmar que realizaste la autenticación
con una cuenta que tenga permiso para acceder al proyecto que se muestra en el mensaje de error
mensaje:
gcloud auth login
Se abrirá una pestaña nueva del navegador y se te solicitará que elijas una cuenta.
- Confirma que el ID del proyecto que aparece en el mensaje de error corresponde al proyecto de Google Cloud en el que intentas implementar la configuración de Endpoints:
gcloud projects list
- Confirma que gcloud CLI tenga configurado el ID del proyecto correcto como el
proyecto actual:
gcloud config set project YOUR_PROJECT_ID
El emisor no tiene permisos
ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Caller does not have permission 'servicemanagement.services.create' on
project YOUR_PROJECT_ID
Cuando implementas la configuración de Endpoints por primera vez, Service Management crea un servicio administrado para tu API. Como mínimo, debes tener la función de Editor en el nivel del proyecto a fin de crear un servicio administrado. Luego de que Service Management crea el servicio administrado, los permisos mínimos obligatorios para volver a implementar la configuración de Endpoints son los de la función de Editor de configuración de servicio (roles/servicemanagement.configEditor) en el servicio. Para obtener más información, consulta Cómo otorgar 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 antes de que puedas implementar la configuración del servicio. - Si usas el dominio
cloud.goog
, verifica que el valor del camponame
tenga el siguiente formato y que el ID del proyecto sea correcto:API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
Soluciona otros problemas
Si recibiste un error que no figura aquí o si la información no te sirvió para resolver tu problema, vuelve a ejecutar el comando gcloud
con la marca para mostrar la información de depuración:
gcloud --verbosity=debug endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml