Une fois que vous avez configuré le fichier .proto
et le fichier de configuration de l'API gRPC, déployez-les de sorte que Cloud Endpoints dispose des informations nécessaires pour gérer l'API. Pour déployer la configuration Endpoints, exécutez la commande gcloud
endpoints services deploy
. Cette commande utilise Service Infrastructure, la plate-forme de services de base de Google, utilisée par Endpoints et d'autres services pour créer et gérer des API et des services. Cette page explique comment déployer vos fichiers de configuration sur Endpoints.
Prérequis
Pour commencer, cette page suppose que vous avez :
Créé un projet Google Cloud dans lequel vous avez le rôle d'Éditeur ou de Propriétaire. Après le déploiement initial, vous pouvez attribuer le rôle plus restrictif Éditeur pour la configuration de service. Pour en savoir plus, consultez la page Accorder et révoquer l'accès à l'API ;
configuré Endpoints, ce qui inclut :
Si vous utilisez un nom de domaine personnalisé (par exemple,
example.com
), vous devez valider le nom de domaine avant de pouvoir déployer les fichiers de configuration gRPC.
Préparer Google Cloud CLI pour le déploiement
Utilisez l'outil de ligne de commande gcloud
pour déployer la configuration. Pour en savoir plus sur les commandes, consultez la documentation de référence sur gcloud.
Pour préparer le déploiement, procédez comme suit :
- Installez et initialisez gcloud CLI.
- Mettez à jour gcloud CLI :
gcloud components update
- Assurez-vous que gcloud CLI est autorisé à accéder à vos données et services :
gcloud auth login
Un nouvel onglet de navigateur vous invite à choisir un compte.
- Définissez le projet par défaut. Remplacez
[YOUR-PROJECT-ID]
par l'ID de votre projet GCP :gcloud config set project [YOUR-PROJECT-ID]
- Si vous déployez le backend de l'API sur Kubernetes ou Kubernetes Engine, exécutez la commande suivante pour obtenir de nouveaux identifiants utilisateur qui serviront d'identifiants par défaut de l'application. Ces identifiants utilisateur sont nécessaires pour autoriser
kubectl
. Un nouvel onglet de navigateur s'ouvre et vous êtes invité à choisir un compte.gcloud auth application-default login
Déployer les fichiers de configuration
- Vérifiez que vous êtes bien dans le répertoire contenant les fichiers
api_descriptor.pb
etapi_config.yaml
. - Vérifiez que le projet par défaut actuellement utilisé par l'outil de ligne de commande
gcloud
est bien le projet Google Cloud vers lequel vous souhaitez déployer la configuration Endpoints. Validez l'ID de projet renvoyé par la commande suivante, afin de vous assurer que le service est créé dans le bon projet.gcloud config list project
Si vous devez modifier le projet par défaut, exécutez la commande suivante :
gcloud config set project YOUR_PROJECT_ID
- Déployez le fichier
proto descriptor
et le fichier de configuration à l'aide de Google Cloud CLI:gcloud endpoints services deploy api_descriptor.pb api_config.yaml
Lors de la création et de la configuration du service, Service Management envoie des informations au terminal. Une fois le déploiement terminé, un message semblable au suivant s'affiche :
Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
CONFIG_ID correspond à l'ID unique de configuration du service Endpoints créé par le déploiement. Exemple :
Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
Dans l'exemple précédent,
2017-02-13r0
correspond à l'ID de configuration du service etbookstore.endpoints.example-project.cloud.goog
au nom du service. L'ID de configuration du service se compose d'un horodatage suivi d'un numéro de révision. Si vous déployez à nouveau la configuration Endpoints le même jour, le numéro de révision est incrémenté dans l'ID de configuration du service.
Si la configuration du service se trouve dans plusieurs fichiers YAML, vous pouvez tous les transmettre à la commande deploy
. Par exemple, la configuration de base de l'exemple Bookstore figure dans api_config.yaml
. Toutefois, vous pouvez activer le transcodage HTTP pour le service en déployant également api_config_http.yaml
, qui offre une configuration supplémentaire pour cette fonctionnalité :
gcloud endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml
Notez que s'il existe des valeurs en conflit dans les fichiers YAML, les valeurs du dernier fichier spécifié remplacent les autres. Pour en savoir plus sur la manière dont Endpoints gère la fusion de plusieurs fichiers YAML, consultez la page Configurer un service gRPC.
Si vous recevez un message d'erreur, consultez la page Résoudre des problèmes de déploiement de la configuration Endpoints pour obtenir plus d'informations sur la résolution de l'erreur.
Redéployer
Lorsque vous apportez des modifications dans le fichier YAML .proto
ou de configuration de service, les fichiers doivent être déployés à nouveau pour que Extensible Service Proxy (ESP) dispose de la version la plus récente de la configuration de service de l'API. Si vous avez déjà déployé ESP avec l'option rollout
définie sur managed
, vous n'avez pas besoin de redémarrer ou de redéployer ESP. L'option rollout=managed
configure ESP pour qu'il utilise la dernière configuration de service déployée. Si cette option est spécifiée, jusqu'à 5 minutes après le déploiement d'une nouvelle configuration de service, ESP détecte la modification et commence à l'utiliser automatiquement. Nous vous recommandons de spécifier cette option plutôt qu'un ID de configuration spécifique à utiliser par ESP.
Une fois le déploiement initial réalisé, vous pouvez attribuer à un utilisateur, un groupe ou un compte de service un rôle qui leur permet de redéployer la configuration Endpoints. Pour en savoir plus, consultez la page Accorder et révoquer les accès à des ressources.
Étapes suivantes
- Premiers pas avec le portail Cloud Endpoints
- Déployer le backend de l'API
- Exécutez ESP en local ou sur une autre plate-forme
- Obtenir le nom du service et l'ID de configuration