Premiers pas avec API Gateway et App Engine

Cette page vous explique comment configurer API Gateway pour gérer et sécuriser un service de backend App Engine.

Liste de tâches

Tout au long du tutoriel, reportez-vous à la liste de tâches présentée ci-dessous. Toutes les tâches sont requises pour déployer une passerelle API pour votre service de backend App Engine.

  1. Créez ou sélectionnez un projet Google Cloud .
  2. Si vous n'avez pas déployé votre propre instance App Engine, déployez un exemple d'application. Consultez la section Avant de commencer.
  3. Activez les services API Gateway requis.
  4. Configurez IAP pour sécuriser votre application. Consultez la section Configurer IAP.
  5. Créez une description OpenAPI décrivant votre API et configurez les routes vers votre instance App Engine. Consultez Créer une configuration d'API.
  6. Déployez une passerelle d'API à l'aide de votre configuration d'API. Consultez Déployer une passerelle API.
  7. Suivez l'activité de vos applications. Consultez la section Suivre l'activité de l'API.
  8. Pour éviter que des frais ne soient facturés sur votre compte Google Cloud , Consultez la section Effectuer un nettoyage.

Avant de commencer

  1. Dans la console Google Cloud , accédez à la page Tableau de bord, puis sélectionnez ou créez un projet Google Cloud .

    Accéder à la page "Tableau de bord"

  2. Assurez-vous que la facturation est activée pour votre projet.

    Activer la facturation

  3. Notez l'ID du projet que vous souhaitez utiliser pour ce tutoriel. Sur le reste de cette page, cet ID est appelé PROJECT_ID.

  4. Téléchargez et installez la Google Cloud CLI.

    Télécharger gcloud CLI

  5. Mettez à jour les composants gcloud :

    gcloud components update
  6. Définissez le projet par défaut. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud  :

    gcloud config set project PROJECT_ID

  7. Si vous n'avez pas déployé votre propre application App Engine, suivez les étapes décrites dans le Guide de démarrage rapide d'App Engine correspondant à votre langage pour sélectionner ou créer un projet Google Cloud et déployer un exemple d'application avec la Google Cloud CLI. Notez l'URL de l'application, ainsi que la région et l'ID de projet correspondant à l'emplacement de déploiement de votre application.

Activer les services requis

API Gateway nécessite l'activation des services Google Cloud suivants :

Nom Nom du service
API de la passerelle API apigateway.googleapis.com
API Service Management servicemanagement.googleapis.com
API Service Control servicecontrol.googleapis.com

Pour activer les services requis :

Console Google Cloud

  1. Dans la console Google Cloud , accédez à la page API et services > Bibliothèque d'API.

    Accéder à la bibliothèque d'API

  2. Sur la page Bibliothèque d'API, saisissez le nom de l'API requise dans la barre de recherche.
  3. Dans les résultats de recherche, sélectionnez la page de l'API.
  4. Sur la page de l'API, cliquez sur Activer.
  5. Répétez ces étapes pour chacun des services listés dans le tableau précédent.

Google Cloud CLI

Utilisez les commandes suivantes pour activer les services :

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

Pour en savoir plus sur les services gcloud, consultez la section Services gcloud.

Configurer IAP pour sécuriser votre application

Pour sécuriser votre application App Engine, vous devez utiliser le proxy Identity-Aware Proxy (IAP) afin de vérifier que les requêtes sont authentifiées. Ce processus inclut la spécification des membres auxquels le rôle IAP-secured Web App User requis pour le projet doit être attribué.

Suivez les étapes de la section Activer IAP et vérifiez que vous pouvez vous connecter à votre application.

Créer une configuration d'API

Pour que API Gateway puisse être utilisé afin de gérer le trafic vers votre backend App Engine déployé, il a besoin d'une configuration d'API.

Vous pouvez créer une configuration d'API à l'aide d'une description OpenAPI contenant des annotations spécialisées pour définir le comportement choisi d'API Gateway. Vous devrez ajouter un champ spécifique à Google contenant l'URL de chaque application App Engine afin qu'API Gateway dispose des informations nécessaires pour appeler une application.

Pour en savoir plus sur les extensions OpenAPI compatibles, consultez les pages suivantes :

Pour créer votre configuration d'API :

  1. Créez un fichier texte intitulé openapi-appengine.yaml. Pour des raisons de commodité, cette page utilise ce nom de fichier pour désigner la description OpenAPI, mais vous pouvez le nommer autrement si vous préférez.
  2. Copiez le contenu du fichier suivant dans votre fichier openapi-run.yaml :

    OpenAPI 2.0

    # openapi-appengine.yaml
    swagger: '2.0'
    info:
      title: API_ID optional-string
      description: Sample API on API Gateway with an App Engine backend
      version: 1.0.0
    schemes:
      - https
    produces:
      - application/json
    paths:
      /hello:
        get:
          summary: Greet a user
          operationId: hello
          x-google-backend:
            address: APP_URL
            jwt_audience: IAP_CLIENT_ID
          responses:
            '200':
              description: A successful response
              schema:
                type: string
    • Dans le champ title, remplacez API_ID par le nom de votre API et optional-string par une brève description de votre choix. Si votre API n'existe pas encore, la commande permettant de créer la configuration d'API créera également l'API avec le nom que vous spécifiez. La valeur du champ title est utilisée lors de la création de clés API qui accordent l'accès à cette API. Consultez les exigences concernant les ID d'API pour connaître les consignes de dénomination des API.
    • Dans le champ address de la section x-google-backend, remplacez APP_URL par l'URL réelle de votre service App Engine (chemin d'accès complet de l'API appelée). Par exemple, https://myapp.an.r.appspot.com/hello.

      Remplacez IAP_CLIENT_ID par l'ID client OAuth que vous avez créé lors de la configuration d'IAP.

    OpenAPI 3.x

    # openapi-appengine.yaml
    openapi: 3.0.4
    info:
      title: API_ID optional-string
      description: Sample API on API Gateway with an App Engine backend
      version: 1.0.0
    # Define reusable components in x-google-api-management
    x-google-api-management:
      backends:
        appengine_backend:
          address: APP_URL
          jwtAudience: IAP_CLIENT_ID
          deadline: 30.0
          pathTranslation: APPEND_PATH_TO_ADDRESS
          protocol: "http/1.1"
    # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden.
    x-google-backend: appengine_backend
    paths:
      /hello:
        get:
          summary: Greet a user
          operationId: hello
          responses:
            '200':
              description: A successful response
              schema