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: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT:
Cannot convert to service config. http: undefined field <unknown>
on message <RequestType>
Dans votre fichier .proto
, identifiez les champs non concordants entre les messages de tampon de protocole et les mappages de transcodage.
Dans un fichier .proto
, l'exemple ci-dessous risque de produire cette erreur. L'option de mappage sur Unary
spécifie un champ nommé undefined
qui ne figure pas dans la définition du message Request
.
rpc Unary(Request) Response { option (google.api.http) { get : "/{undefined}" }; } message Request { string defined = 1; }
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
- Authentifiez-vous à nouveau avec gcloud CLI 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.
- 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
- Confirmez que l'ID du projet au niveau de la gcloud CLI 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 champname
de votre fichierapi_config.yaml
, vous devez valider le nom du domaine avant de pouvoir déployer la configuration de service. - Si vous utilisez le domaine
cloud.goog
, confirmez que la valeur du champname
est au format suivant et que l'ID de projet est correct :API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
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 api_descriptor.pb api_config.yaml api_config_http.yaml