Dépannage du déploiement de la configuration Cloud Endpoints

Cette page explique comment résoudre les erreurs que vous pouvez rencontrer lors du déploiement de la configuration Cloud Endpoints. Les messages d'erreur que vous voyez contiennent des informations spécifiques à votre projet. Par exemple, il est possible que vous obteniez un message d'erreur contenant l'ID de votre projet. Sur cette page, vous verrez des valeurs d'espace réservé telles que YOUR_PROJECT_ID (ID de votre projet).

Après chaque étape, exécutez à nouveau la commande gcloud endpoints services deploy pour voir si l'erreur est résolue.

Impossible de convertir en configuration de service

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

Cette erreur s'affiche lorsqu'un ou plusieurs chemins d'accès dans le document OpenAPI incluent une barre oblique finale (/). Pour résoudre ce problème, supprimez les barres obliques finales de tous les chemins d'accès. Par exemple, l'extrait suivant d'un document OpenAPI renvoie cette erreur :

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

Pour résoudre ce problème, supprimez la barre oblique finale de /echo/ :

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

Non autorisé à obtenir les paramètres du projet

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID

  1. Authentifiez-vous à nouveau avec le SDK Cloud pour confirmer que vous utilisez un compte avec l'autorisation d'accéder au projet affiché dans le message d'erreur :
    gcloud auth login
    

    Un nouvel onglet de navigateur vous invite à choisir un compte.

  2. Confirmez que l'ID de projet affiché dans le message d'erreur correspond au projet Google Cloud dans lequel vous souhaitez déployer la configuration Endpoints :
    gcloud projects list
    
  3. Confirmez que l'ID du projet au niveau du SDK Cloud correspond au projet actuel :
    gcloud config set project YOUR_PROJECT_ID
    

L'appelant ne dispose pas de l'autorisation requise

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Caller does not have permission 'servicemanagement.services.create' on project YOUR_PROJECT_ID

Lorsque vous déployez la configuration Endpoints pour la première fois, Service Management crée un service géré pour votre API. Pour créer un service géré, vous devez disposer au minimum du rôle Éditeur au niveau du projet. Une fois que Service Management a créé le service géré, l'autorisation minimale requise pour redéployer une configuration Endpoints est le rôle Éditeur pour la configuration de service (roles/servicemanagement.configEditor) sur le service. Pour plus d'informations, consultez la page Accorder l'accès à l'API.

La propriété du nom de domaine ne peut pas être validée

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Ownership for domain name YOUR_DOMAIN_NAME on project YOUR_PROJECT_ID cannot be verified

  • Si vous avez un domaine personnalisé (par exemple, example.com) configuré dans le champ host du document OpenAPI, vous devez valider le nom du domaine pour pouvoir déployer le document OpenAPI.
  • Si vous utilisez le domaine cloud.goog, confirmez que la valeur du champ host est au format suivant et que l'ID de projet est correct :
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
    
  • Si vous utilisez le domaine appspot.com (compatible uniquement avec App Engine), confirmez que le champ host est au format suivant et que l'ID de projet est correct :
    YOUR_PROJECT_ID.appspot.com
    

Résoudre d'autres erreurs

Si vous avez reçu une erreur non répertoriée ici ou si ces informations n'ont pas résolu votre problème, exécutez à nouveau la commande gcloud avec l'option permettant d'afficher les informations de débogage :

gcloud --verbosity=debug endpoints services deploy openapi.yaml

Étapes suivantes