Cómo solucionar problemas en la implementación de la configuración de Cloud Endpoints

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 en la configuración del servicio

ERROR: unknown location: http: In path template '[PATH]': unexpected end of input '/'.'

Este error se muestra cuando una o más rutas en tu documento de OpenAPI contienen un carácter de barra final (/). Para solucionar este problema, quita la barra final de todas las rutas. Por ejemplo, el fragmento siguiente de un documento de OpenAPI genera este error:

paths:
  "/echo/":
    post:
      description: "Echo back a given message."

Para solucionarlo, debes quitar la barra final de /echo/:

paths:
  "/echo":
    post:
      description: "Echo back a given message."

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

  1. Vuelve a autenticarte con gcloud CLI a fin de confirmar que te hayas autenticado con una cuenta que tenga permiso para acceder al proyecto que se muestra en el mensaje de error:
    gcloud auth login
    

    Se abrirá una pestaña nueva del navegador y se te solicitará que elijas una cuenta.

  2. Confirma que el ID del proyecto que se muestra en el mensaje de error corresponde al proyecto de Google Cloud en el que intentas implementar la configuración de Endpoints:
    gcloud projects list
    
  3. Confirma que gcloud CLI tenga el ID del proyecto correcto configurado 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 (como example.com) configurado en el campo host de tu documento de OpenAPI, deberás verificar el nombre de dominio antes de poder implementar tu documento de OpenAPI.
  • Si usas el dominio cloud.goog, verifica que el valor del campo host tenga el formato siguiente y que el ID del proyecto sea correcto:
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
    
  • Si usas el dominio appspot.com (compatible solo con App Engine), confirma que el campo host tenga el siguiente formato y que el ID del proyecto sea correcto:
    YOUR_PROJECT_ID.appspot.com
    

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 openapi.yaml

¿Qué sigue?