Solucionar problemas de despliegue de la configuración de Cloud Endpoints

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: unknown location: http: In path template '[PATH]': unexpected end of input '/'.'

Este error se muestra cuando una o varias rutas de tu documento de OpenAPI incluyen un carácter de barra diagonal (/) al final. Para solucionar este problema, quite la barra inclinada final de todas las rutas. Por ejemplo, el siguiente fragmento de un documento de OpenAPI genera este error:

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

Para solucionar este problema, quite la barra inclinada final de /echo/:

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

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

  1. 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.

  2. 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
  3. 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 (como example.com) configurado en el campo host de tu documento de OpenAPI, debes verificar el nombre de dominio antes de poder implementar tu documento de OpenAPI.
  • Si usas el dominio cloud.goog, confirma que el valor del campo host tiene el siguiente formato y que el ID del proyecto es correcto:
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
  • Si usas el dominio appspot.com (solo compatible con App Engine), confirma que el campo host tiene el siguiente formato y que el ID de proyecto es correcto:
    YOUR_PROJECT_ID.appspot.com

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

Siguientes pasos