Premiers pas avec Cloud Endpoints pour les groupes d'instances gérés (MIG) avec ESPv2


Ce tutoriel vous explique comment configurer et déployer un exemple d'API et le proxy Extensible Service Proxy V2 (ESPv2) s'exécutant dans des conteneurs Docker prédéfinis sur des Groupe d'instances géré (MIG)

L'API REST de l'exemple de code est décrite à l'aide de la spécification OpenAPI. Le tutoriel vous montre également comment créer une clé API et l'utiliser dans les requêtes adressées à l'API.

Pour obtenir une présentation de Cloud Endpoints, consultez les pages À propos de Cloud Endpoints et Architecture Cloud Endpoints.

Objectifs

Tout au long du tutoriel, reportez-vous au récapitulatif des étapes présenté ci-dessous. Toutes les tâches sont nécessaires pour envoyer des requêtes à l'API.

  1. Configurez un projet Google Cloud. Consultez la section Avant de commencer.
  2. Téléchargez l'exemple de code. Consultez la section Obtenir l'exemple de code.
  3. Configurez le fichier openapi.yaml, utilisé pour configurer Endpoints. Consultez la section Configurer Endpoints.
  4. Déployez la configuration Endpoints pour créer un service Endpoints. Consultez la section Déployer la configuration Endpoints.
  5. Déployez l'API et ESPv2 sur le backend de groupes d'instances gérés (MIG, Managed Instance Group). Consultez la section Déployer le backend de l'API.
  6. Envoyez une requête à l'API via une adresse IP. Consultez la section Envoyer une requête à l'aide d'une adresse IP.
  7. Configurez un enregistrement DNS pour l'exemple d'API. Consultez la section Configurer le DNS pour Endpoints.
  8. Envoyez une requête à l'API via le nom de domaine complet. Consultez la section Envoyer une requête à l'aide du nom de domaine complet.
  9. Suivez l'activité de l'API. Consultez la section Suivre l'activité de l'API.
  10. Faites le nécessaire pour éviter que des frais ne soient facturés sur votre compte Google Cloud. Consultez la section Nettoyer.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Notez l'ID de projet, car il sera nécessaire ultérieurement.
  7. Vous aurez besoin d'une application pour envoyer des requêtes à l'exemple d'API.

    • Utilisateurs Linux et macOS : ce tutoriel fournit un exemple utilisant curl, qui est généralement préinstallé sur votre système d'exploitation. Si vous ne disposez pas de curl, vous pouvez le télécharger sur la page Releases and Downloads de curl.
    • Utilisateurs Windows : ce tutoriel fournit un exemple d'utilisation de Invoke-WebRequest, compatible avec PowerShell 3.0 et versions ultérieures.
  8. Téléchargez la Google Cloud CLI.
  9. Mettez à jour la gcloud CLI et installez les composants Endpoints.
    gcloud components update
  10. Assurez-vous que la Google Cloud CLI (gcloud) est autorisée à accéder à vos données et services sur Google Cloud :
    gcloud auth login
    Dans le nouvel onglet de navigateur qui s'ouvre, sélectionnez un compte.
  11. Définissez le projet par défaut sur votre ID de projet.
    gcloud config set project YOUR_PROJECT_ID

    Remplacez YOUR_PROJECT_ID par l'ID du projet. Si vous avez d'autres projets Google Cloud et que vous souhaitez les gérer à l'aide de gcloud, consultez la page Gérer les configurations de gcloud CLI.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Télécharger l'exemple de code

Téléchargez l'exemple de code sur l'ordinateur local.

Java

Pour cloner ou télécharger l'exemple d'API :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
    git clone https://github.com/GoogleCloudPlatform/java-docs-samples

    Vous pouvez également télécharger l'exemple sous forme de fichier zip et l'extraire.

  2. Accédez au répertoire qui contient l'exemple de code :
    cd java-docs-samples/endpoints/getting-started
Python

Pour cloner ou télécharger l'exemple d'API :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
    git clone https://github.com/GoogleCloudPlatform/python-docs-samples

    Vous pouvez également télécharger l'exemple sous forme de fichier zip et l'extraire.

  2. Accédez au répertoire qui contient l'exemple de code :
    cd python-docs-samples/endpoints/getting-started
Go

Pour cloner ou télécharger l'exemple d'API :

  1. Assurez-vous que la variable d'environnement GOPATH est définie.
  2. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
    go get -d github.com/GoogleCloudPlatform/golang-samples/endpoints/getting-started
  3. Accédez au répertoire qui contient l'exemple de code :
    cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/endpoints/getting-started
PHP

Pour cloner ou télécharger l'exemple d'API :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
    git clone https://github.com/GoogleCloudPlatform/php-docs-samples

    Vous pouvez également télécharger l'exemple sous forme de fichier zip et l'extraire.

  2. Accédez au répertoire qui contient l'exemple de code :
    cd php-docs-samples/endpoints/getting-started
Ruby

Pour cloner ou télécharger l'exemple d'API :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples

    Vous pouvez également télécharger l'exemple sous forme de fichier zip et l'extraire.

  2. Accédez au répertoire qui contient l'exemple de code :
    cd ruby-docs-samples/endpoints/getting-started
NodeJS

Pour cloner ou télécharger l'exemple d'API :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples

    Vous pouvez également télécharger l'exemple sous forme de fichier zip et l'extraire.

  2. Accédez au répertoire qui contient l'exemple de code :
    cd nodejs-docs-samples/endpoints/getting-started

Configurer Endpoints

L'exemple de code inclut le fichier de configuration OpenAPI openapi.yaml basé sur la spécification OpenAPI version 2.0. Configurez et déployez openapi.yaml sur votre machine locale. Pour configurer Endpoints :

  1. Dans le répertoire de l'exemple de code, ouvrez le fichier de configuration openapi.yaml.

    Java
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    Python
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    Go
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    PHP
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    Ruby
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
    NodeJS
    swagger: "2.0"
    info:
      description: "A simple Google Cloud Endpoints API example."
      title: "Endpoints Example"
      version: "1.0.0"
    host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"

    Veuillez noter les points suivants :

    • L'exemple de configuration affiche les lignes situées à proximité du champ host que vous devez modifier. Pour déployer le fichier openapi.yaml sur Endpoints, vous devez disposer du document OpenAPI complet.
    • L'exemple de fichier openapi.yaml contient une section sur la configuration de l'authentification qui n'est pas nécessaire pour ce tutoriel. Vous n'avez pas besoin de configurer les lignes avec YOUR-SERVICE-ACCOUNT-EMAIL et YOUR-CLIENT-ID.
    • OpenAPI est une spécification indépendante du langage. Pour plus de commodité, le même fichier openapi.yaml figure dans l'exemple getting-started sur le dépôt GitHub de chaque langage.
  2. Dans le champ host, remplacez le texte par le nom du service Endpoints, qui doit être au format suivant :
    host: "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog"

    Remplacez YOUR_PROJECT_ID par l'ID de votre projet Google Cloud. Exemple :

    host: "echo-api.endpoints.example-project-12345.cloud.goog"

echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog est le nom du service Endpoints. Ce n'est pas le nom de domaine complet (FQDN) que vous utilisez pour envoyer des requêtes à l'API.

Pour plus d'informations sur les champs du document OpenAPI requis par Endpoints, consultez la page Configurer Endpoints. Une fois que vous avez terminé toutes les étapes de configuration suivantes pour pouvoir envoyer des requêtes à l'exemple d'API à l'aide d'une adresse IP, consultez la section Configurer le DNS pour Endpoints afin d'obtenir des informations sur la configuration de echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog en tant que nom de domaine complet.

Déployer la configuration Endpoints

Pour déployer la configuration Endpoints, exécutez la commande gcloud endpoints services deploy. Celle-ci crée un service géré à l'aide de Service Management.

Pour déployer la configuration Endpoints :

  1. Assurez-vous que vous vous trouvez dans le répertoire endpoints/getting-started.
  2. Importez la configuration et créez un service géré :
    gcloud endpoints services deploy openapi.yaml
    

La commande gcloud appelle ensuite l'API Service Management pour créer un service géré avec le nom que vous avez spécifié dans le champ host du fichier openapi.yaml. Service Management configure le service en fonction des paramètres du fichier openapi.yaml. Lorsque vous apportez des modifications au fichier openapi.yaml, vous devez le redéployer pour mettre à jour le service Endpoints.

Lors de la création et de la configuration du service, Service Management envoie des informations au terminal. Vous pouvez ignorer en toute sécurité les avertissements concernant les chemins du fichier openapi.yaml qui ne nécessitent pas de clé d'API. Une fois la configuration du service terminée, Service Management affiche un message avec l'ID de configuration du service et le nom du service, comme illustré ci-dessous :

Service Configuration [2017-02-13r0] uploaded for service [echo-api.endpoints.example-project-12345.cloud.goog]

Dans l'exemple ci-dessus, 2017-02-13r0 correspond à l'ID de configuration du service et echo-api.endpoints.example-project-12345.cloud.goog au service Endpoints. L'ID de configuration du service se compose d'un horodatage, suivi d'un numéro de révision. Si vous déployez à nouveau le fichier openapi.yaml le même jour, le numéro de révision est incrémenté dans l'ID de configuration de service. Vous pouvez afficher la configuration du service Endpoints sur la page Endpoints > la page Services de la console Google Cloud.

Si vous recevez un message d'erreur, consultez la section Résoudre des problèmes de déploiement de la configuration Endpoints.

Vérifier les services requis

Endpoints et ESP requièrent au minimum l'activation des services Google suivants :
Nom Titre
servicemanagement.googleapis.com API Service Management
servicecontrol.googleapis.com API Service Control
endpoints.googleapis.com Google Cloud Endpoints

Dans la plupart des cas, la commande gcloud endpoints services deploy permet d'activer ces services requis. Toutefois, bien que la commande gcloud ait abouti, elle n'active pas les services requis dans les cas suivants :

  • Vous avez utilisé une application tierce telle que Terraform et vous n'incluez pas ces services.

  • Vous avez déployé la configuration Endpoints dans un projet Google Cloud existant dans lequel ces services étaient explicitement désactivés.

Utilisez la commande suivante pour vérifier que les services nécessaires sont activés :

gcloud services list

Si les services requis ne sont pas répertoriés, activez-les :

gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
gcloud services enable endpoints.googleapis.com

Activez également votre service Endpoints :

gcloud services enable ENDPOINTS_SERVICE_NAME

Pour déterminer la valeur de ENDPOINTS_SERVICE_NAME, vous pouvez effectuer l'une des opérations suivantes :

  • Après avoir déployé la configuration Endpoints, accédez à la page Points de terminaison de la console Cloud. La liste des valeurs ENDPOINTS_SERVICE_NAME possibles s'affiche dans la colonne Nom du service.

  • Pour OpenAPI, ENDPOINTS_SERVICE_NAME correspond à ce que vous avez spécifié dans le champ host de votre spécification OpenAPI. Pour gRPC, ENDPOINTS_SERVICE_NAME correspond à ce que vous avez spécifié dans le champ name de votre configuration Endpoints gRPC.

Pour en savoir plus sur les commandes gcloud, consultez la page Services gcloud.

Déployer le backend de l'API

Créer un modèle d'instance

Créez un modèle que vous utiliserez pour créer un groupe d'instances de VM. Chaque instance créée à partir du modèle lance ESPv2 et un serveur d'application backend.

  1. Dans Google Cloud Console, accédez à la page Modèles d'instances.

    Accéder à la page Modèles d'instances

  2. Cliquez sur Create instance template (Créer un modèle d'instance).

  3. Dans le champ Nom, saisissez load-balancing-espv2-template.

  4. Sous Configuration de la machine, définissez le type de machine sur e2-micro.

  5. Sous Disque de démarrage, définissez l'image sur Container Optimized OS stable version.

  6. Sous Pare-feu, sélectionnez Autoriser le trafic HTTP.

  7. Cliquez sur Gestion, sécurité, disques, réseau et location unique pour afficher les paramètres avancés.

  8. Cliquez sur l'onglet Gestion. Sous Automatisation, saisissez le script de démarrage ci-dessous. N'oubliez pas de mettre à jour ENDPOINTS_SERVICE_NAME.

    sudo docker network create --driver bridge esp_net
    sudo docker run \
      --detach \
      --name=echo \
      --net=esp_net \
      gcr.io/google-samples/echo-python:1.0
    sudo docker run \
      --detach \
      --name=esp \
      --publish=80:9000 \
      --net=esp_net \
      gcr.io/endpoints-release/endpoints-runtime:2 \
      --service=ENDPOINTS_SERVICE_NAME \
      --rollout_strategy=managed \
      --listener_port=9000 \
      --healthz=/healthz \
      --backend=echo:8080
    

    Le script récupère, installe et lance le serveur d'applications Echo et le serveur proxy ESPv2 au démarrage de l'instance.

  9. Cliquez sur Create (Créer).

Attendez que le modèle ait été créé avant de continuer.

Créer un groupe d'instances géré régional

Pour exécuter l'application, utilisez le modèle d'instance pour créer un groupe d'instances géré régional. Procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur Créer un groupe d'instances.

  3. Dans le champ Nom, saisissez load-balancing-espv2-group.

  4. Sous Emplacement, sélectionnez Plusieurs zones.

  5. Sous Région, sélectionnez us-central1.

  6. Cliquez sur le menu déroulant Configurer les zones pour afficher les zones. Sélectionnez les zones suivantes :

    • us-central1-b
    • us-central1-c
    • us-central1-f
  7. Pour le paramètre Modèle d'instance, sélectionnez load-balancing-espv2-template.

  8. Sous Mode autoscaling, sélectionnez Ne pas procéder à un autoscaling.

  9. Définissez Nombre d'instances sur 3.

  10. Sous Redistribution des instances, sélectionnez Activée.

  11. Sous Autoréparation et Vérification de l'état, sélectionnez Aucune vérification d'état.

  12. Cliquez sur Créer. Cela vous redirige vers la page Groupes d'instances.

Créer un équilibreur de charge

Cette section explique les étapes requises pour créer un équilibreur de charge global qui dirige le trafic HTTP vers votre groupe d'instances.

Cet équilibreur de charge utilise une interface pour recevoir le trafic entrant et un backend pour le distribuer aux instances opérationnelles. Étant donné que l'équilibreur de charge comporte plusieurs composants, cette tâche est divisée en plusieurs parties :

  • Configuration du backend
  • Configuration du frontend
  • Vérification et finalisation

Effectuez toutes les étapes pour créer l'équilibreur de charge.

  1. Dans la console Google Cloud, accédez à la page Créer un équilibreur de charge.

    Accéder à la page Créer un équilibreur de charge

  2. Dans la section Équilibreur de charge d'application (HTTP/S), cliquez sur Démarrer la configuration.

  3. Sous Web ou interne uniquement, sélectionnez D'Internet vers mes VM. Cliquez ensuite sur Continuer.

  4. Pour le nom de l'équilibreur de charge, saisissez espv2-load-balancer.

Configuration du backend

  1. Dans le panneau de gauche de la page Créer un équilibreur de charge d'application externe global, cliquez sur Configuration du backend.
  2. Cliquez sur Créer ou sélectionner des services de backend et des buckets backend pour ouvrir un menu déroulant. Cliquez sur Services de backend, puis sur Créer un service de backend.
  3. Dans la nouvelle fenêtre, pour le nom de l'application backend, saisissez espv2-backend.
  4. Définissez le paramètre Groupe d'instances sur load-balancing-espv2-group.
  5. Définissez le paramètre Numéros de ports sur 80. Cela autorise le trafic HTTP entre l'équilibreur de charge et le groupe d'instances.
  6. Sous Mode d'équilibrage, sélectionnez Utilisation.
  7. Cliquez sur Terminé pour créer le backend.
  8. Créez la vérification d'état pour le backend de l'équilibreur de charge.

    1. Sous Vérification de l'état, sélectionnez Créer une vérification d'état (ou Créer une autre vérification d'état) dans le menu déroulant. Une nouvelle fenêtre s'ouvre.
    2. Dans la nouvelle fenêtre, sous Nom, saisissez espv2-load-balancer-check.
    3. Définissez le protocole sur HTTP.
    4. Sous Port, saisissez 80.
    5. Pour ce tutoriel, définissez le chemin de requête sur /healthz, qui est le chemin de réponse configuré pour ESPv2.
    6. Définissez les critères de vérification suivants :

      1. Définissez Intervalle entre deux tests sur 3 secondes. Ce champ définit la durée entre le début d'un test et le début du suivant.
      2. Définissez Délai avant expiration sur 3 secondes. Ce champ définit la durée pendant laquelle Google Cloud attend une réponse à une vérification. Sa valeur doit être inférieure ou égale à l'intervalle entre deux tests.
      3. Définissez Seuil sanitaire sur 2 succès consécutifs. Ce champ définit le nombre de vérifications séquentielles qui doivent réussir pour que l'instance soit considérée comme opérationnelle.
      4. Définissez Seuil non sanitaire sur 2 échecs consécutifs. Ce champ définit le nombre de vérifications séquentielles qui doivent échouer pour que l'instance soit considérée comme non opérationnelle.
    7. Cliquez sur Enregistrer et continuer pour créer la vérification d'état.

  9. Cliquez sur Créer pour créer le service backend.

Configuration de l'interface

  1. Dans le panneau de gauche de la page Créer un équilibreur de charge d'application externe global, cliquez sur Configuration du frontend.
  2. Sur la page Configuration du frontend, sous Nom, saisissez espv2-ipv4-frontend.
  3. Définissez le paramètre Protocole sur HTTP.
  4. Définissez le paramètre Port sur 80.
  5. Cliquez sur Terminé pour créer l'interface.

Vérification et finalisation

  1. Vérifiez vos paramètres d'équilibrage de charge avant de créer l'équilibreur de charge. Procédez comme suit :

    1. Dans le panneau de gauche de la page Créer un équilibreur de charge d'application externe global, cliquez sur Vérification et finalisation.
    2. Sur la page Vérification et finalisation, vérifiez les paramètres de backend suivants :

      • Le service de backend est défini sur espv2-backend.
      • Le protocole du point de terminaison est défini sur HTTP.
      • La vérification d'état est définie sur espv2-load-balancer-check.
      • Le groupe d'instances est défini sur load-balancing-espv2-group.
    3. Sur la même page, vérifiez que l'interface utilise une adresse IP dont le protocole est défini sur HTTP.

  2. Dans le panneau de gauche de la page Créer un équilibreur de charge d'application externe global, cliquez sur Créer pour terminer la création de l'équilibreur de charge.

    Vous devrez peut-être attendre quelques minutes pour que la création de l'équilibreur de charge se termine.

  3. Une fois l'équilibreur de charge créé, recherchez l'adresse IP sur la page Équilibreur de charge.

    Accéder à la page "Équilibreur de charge"

Envoyer une requête à l'aide d'une adresse IP

Une fois que l'exemple d'API et ESPv2 sont en cours d'exécution sur le backend déployé, vous pouvez envoyer des requêtes à l'API à partir de votre machine locale.

Créer une clé API et définir une variable d'environnement

L'exemple de code nécessite une clé API. Pour simplifier la requête, définissez une variable d'environnement pour la clé API.

  1. Dans le projet Google Cloud utilisé pour l'API, créez une clé API depuis la page des identifiants de l'API. Si vous souhaitez créer une clé API dans un autre projet Google Cloud, consultez la page Activer une API dans votre projet Google Cloud.

    Accéder à la page Identifiants

  2. Cliquez sur Créer les identifiants, puis sélectionnez Clé API.
  3. Copiez la clé dans le presse-papier.
  4. Cliquez sur Fermer.
  5. Sur l'ordinateur local, collez la clé API pour l'attribuer à une variable d'environnement :
    • Sous Linux ou macOS : export ENDPOINTS_KEY=AIza...
    • Dans Windows PowerShell : $Env:ENDPOINTS_KEY="AIza..."

Envoyer la requête

Linux ou macOS

Utilisez curl pour envoyer une requête HTTP à l'aide de la variable d'environnement ENDPOINTS_KEY définie précédemment. Remplacez IP_ADDRESS par l'adresse IP externe de l'instance.

curl --request POST \
   --header "content-type:application/json" \
   --data '{"message":"hello world"}' \
   "http://IP_ADDRESS:80/echo?key=${ENDPOINTS_KEY}"

Dans la commande curl ci-dessus :

  • L'option --data indique les données à publier sur l'API.
  • L'option --header indique que les données sont au format JSON.

PowerShell

Utilisez Invoke-WebRequest pour envoyer une requête HTTP à l'aide de la variable d'environnement ENDPOINTS_KEY définie précédemment. Remplacez IP_ADDRESS par l'adresse IP externe de l'instance.

(Invoke-WebRequest -Method POST -Body '{"message": "hello world"}' `
    -Headers @{"content-type"="application/json"} `
    -URI "http://IP_ADDRESS:80/echo?key=$Env:ENDPOINTS_KEY").Content

Dans l'exemple ci-dessus, les deux premières lignes se terminent par un accent grave. Lorsque vous collez l'exemple dans PowerShell, assurez-vous qu'il n'y a pas d'espace après les accents graves. Pour plus d'informations sur les options utilisées dans l'exemple de requête, consultez la page Invoke-WebRequest dans la documentation Microsoft.

Application tierce

Vous pouvez utiliser une application tierce telle que l'extension Postman du navigateur Chrome pour envoyer la requête :

  • Sélectionnez POST comme verbe HTTP.
  • Pour l'en-tête, sélectionnez la clé content-type et la valeur application/json.
  • Pour le corps, saisissez ce qui suit :
    {"message":"hello world"}
  • Dans l'URL, utilisez la clé API réelle plutôt que la variable d'environnement. Par exemple :
    http://192.0.2.0:80/echo?key=AIza...

L'API renvoie le message que vous lui avez envoyé et répond avec les éléments suivants :

{
  "message": "hello world"
}

Si vous ne recevez pas de réponse positive, consultez la section Dépanner des erreurs de réponse.

Vous venez de déployer et de tester une API dans Endpoints.

Configurer le DNS pour Endpoints

Comme le nom du service Endpoints pour l'API se trouve dans le domaine .endpoints.YOUR_PROJECT_ID.cloud.goog, vous pouvez l'utiliser comme nom de domaine complet en modifiant légèrement la configuration de votre fichier openapi.yaml. De cette façon, vous pouvez envoyer des requêtes à l'exemple d'API à l'aide de echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog au lieu de l'adresse IP.

Pour configurer le DNS Endpoints :

  1. Ouvrez le fichier de configuration OpenAPI openapi.yaml, puis ajoutez la propriété x-google-endpoints au niveau supérieur du fichier (elle ne doit pas être en retrait ni imbriquée), comme indiqué dans l'extrait suivant :
    host: "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog"
    x-google-endpoints:
    - name: "echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog"
      target: "IP_ADDRESS"
  2. Dans la propriété name, remplacez YOUR_PROJECT_ID par l'ID de votre projet.
  3. Dans la propriété target, remplacez IP_ADDRESS par l'adresse IP que vous avez utilisée lorsque vous avez envoyé une requête à l'exemple d'API.
  4. Déployez le fichier de configuration OpenAPI mis à jour sur Service Management :
    gcloud endpoints services deploy openapi.yaml
    

Par exemple, supposons que le fichier openapi.yaml ait la configuration suivante :

host: "echo-api.endpoints.example-project-12345.cloud.goog"
x-google-endpoints:
- name: "echo-api.endpoints.example-project-12345.cloud.goog"
  target: "192.0.2.1"

Lorsque vous déployez le fichier openapi.yaml à l'aide de la commande gcloud ci-dessus, Service Management crée un enregistrement A DNS, echo-api.endpoints.my-project-id.cloud.goog, qui est associé à l'adresse IP cible 192.0.2.1. La propagation de la nouvelle configuration DNS peut prendre quelques minutes.

Configurer SSL

Pour plus d'informations sur la configuration du DNS et de SSL, consultez la page Activer SSL pour Endpoints.

Envoyer une requête à l'aide du nom de domaine complet

Une fois que vous avez configuré l'enregistrement DNS pour l'exemple d'API, envoyez une requête à l'aide du nom de domaine complet (remplacez YOUR_PROJECT_ID par l'ID de projet) et de la variable d'environnement ENDPOINTS_KEY définie précédemment :
  • Sous Linux ou Mac OS :
    curl --request POST \
        --header "content-type:application/json" \
        --data '{"message":"hello world"}' \
        "http://echo-api.endpoints.YOUR_PROJECT_ID.cloud.goog:80/echo?key=${ENDPOINTS_KEY}"
  • Dans Windows PowerShell :
    (Invoke-WebRequest -Method POST -Body '{"message": "hello world"}' -Headers @{"content-type"="application/json"} -URI "http://echo-api.endpoints.[YOUR_PROJECT_ID].cloud.goog:80/echo?key=$Env:ENDPOINTS_KEY").Content

Suivre l'activité de l'API

Pour suivre l'activité de l'API :

  1. Examinez les graphiques d'activité de l'API dans la page Endpoints > Services.

    Accédez à la page Services Endpoints


    Il peut s'écouler quelques instants avant que la requête ne soit reflétée dans les graphiques.
  2. Consultez les journaux de requêtes de votre API sur la page de l'explorateur de journaux.

    Accéder à la page "Explorateur de journaux"

Créer un portail développeur pour l'API

Vous pouvez utiliser le portail Cloud Endpoints pour créer un portail des développeurs, c'est-à-dire un site Web qui vous permet d'interagir avec l'exemple d'API. Pour en savoir plus, consultez la page Présentation du portail Cloud Endpoints.

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

  1. Assurez-vous que la gcloud CLI (gcloud) est autorisée à accéder à votre sur les données et services Google Cloud:

    gcloud auth login
    
  2. Saisissez la commande suivante pour afficher les ID de vos projets Google Cloud :

    gcloud projects list
    
  3. En utilisant l'ID de projet applicable récupéré à l'étape précédente, définissez le projet Google Cloud par défaut sur celui hébergeant votre application :

    gcloud config set project [YOUR_PROJECT_ID]
    
  4. Obtenez le nom de tous les services gérés du projet Google Cloud :

    gcloud endpoints services list
    
  5. Supprimez le service de Service Management. Remplacez SERVICE_NAME par le nom du service que vous souhaitez supprimer.

    gcloud endpoints services delete SERVICE_NAME
    

    L'exécution de gcloud endpoints services delete ne supprime pas immédiatement le service géré. Il est désactivé pendant 30 jours, ce qui vous laisse le temps de le restaurer au besoin. Passé ce délai, Service Management supprime définitivement le service.

  6. Accédez à la page Équilibreur de charge.

    Accéder à la page "Équilibreur de charge"

    Supprimez l'équilibreur de charge espv2-load-balancer avec le service de backend espv2-backend et la vérification d'état espv2-load-balancer-check.

  7. Accéder à la page Groupes d'instances

    Accéder à la page "Groupes d'instances"

    Supprimer load-balancing-espv2-group

  8. Accédez à la page Modèle d'instances.

    Accéder à la page Modèles d'instances

    Supprimer load-balancing-espv2-template

Étape suivante