Déployer la configuration Endpoints

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 :

Préparer le SDK Cloud 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 :

  1. Installez et initialisez le SDK Cloud.
  2. Mettez à jour le SDK Cloud :
    gcloud components update
    
  3. Assurez-vous que le SDK Cloud est autorisé à accéder à vos données et services :
    gcloud auth login
    

    Un nouvel onglet de navigateur s'ouvre et vous êtes invité à choisir un compte.

  4. 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]
    
  5. 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.
    gcloud auth application-default login
    Un nouvel onglet de navigateur vous invite à choisir un compte.

Déployer les fichiers de configuration

  1. Vérifiez que vous êtes bien dans le répertoire contenant les fichiers api_descriptor.pb et api_config.yaml.
  2. 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
    
  3. Déployez le fichier proto descriptor et le fichier de configuration à l'aide de l'outil de ligne de commande gcloud :
    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 et bookstore.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 de façon à utiliser 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