Comparer Extensible Service Proxy et Cloud Endpoints Frameworks

Cette page explique les différences entre les frameworks Endpoints pour l'environnement standard App Engine et l'Extensible Service Proxy (ESP), qui est utilisé dans Cloud Endpoints pour les API utilisant OpenAPI ou gRPC. Pour en savoir plus sur les options Endpoints, consultez la section Choisir une option Endpoints.

Aperçu

Cloud Endpoints est un système de gestion d'API qui vous aide à sécuriser, surveiller, analyser et définir des quotas sur les API en utilisant la même infrastructure que celle utilisée par Google pour ses propres API. Les fonctions de gestion d'API incluent l'authentification, les clés API, la surveillance, la journalisation et le traçage, indépendamment de la technologie utilisée pour mettre en œuvre l'API. La fonctionnalité de gestion d'API est fournie par ESP (Extensible Service Proxy) ou par Endpoints Frameworks.

Extensible Service Proxy

Dans Endpoints pour OpenAPI et gRPC, les requêtes API sont relayées via Extensible Service Proxy, qui valide les clés et les jetons d'authentification, et envoie des signaux (métriques et journaux) à l'aide de l'API Service Control. La séparation fournie par ESP signifie que vous pouvez écrire le code backend REST ou gRPC dans n'importe quel langage, et que vous pouvez utiliser gRPC ou tout framework compatible avec la description d'API à l'aide d'OpenAPI.

  • API utilisant OpenAPI : le backend de l'API peut s'exécuter dans l'environnement flexible App Engine, Google Kubernetes Engine (GKE), Compute Engine, Kubernetes ou des déploiements sur site

  • API utilisant gRPC : le backend de l'API peut s'exécuter sur GKE, Compute Engine, Kubernetes ou des déploiements sur site.

Architecture ESP

Une requête est envoyée sur le chemin d'accès suivant :

  1. Une requête à votre code est reçue et est envoyée à ESP.
  2. ESP envoie une requête de vérification à Service Control.
  3. Si vous avez configuré votre API pour exiger une clé API ou une authentification, Service Control vérifie si la requête est autorisée et envoie une réponse à ESP.
  4. Si la requête n'est pas autorisée, ESP la rejette. Si la requête est autorisée, elle est transmise à votre code backend. Dans les deux cas, ESP consigne des informations au sujet de la requête.

La tarification de la gestion des API par Endpoints dépend du nombre d'appels par mois.

Endpoints Frameworks

Pour les backends d'API exécutés dans l'environnement standard App Engine, Endpoints Frameworks est disponible pour aider les développeurs à commencer rapidement à diffuser une API. Endpoints Frameworks est un framework Web qui remplace Python Flask ou Java Jersey. Endpoints Frameworks s'intègre à l'API Service Control, ce qui signifie qu'un backend qui utilise Endpoints Frameworks n'a pas besoin de s'exécuter derrière Extensible Service Proxy.

Endpoints Frameworks

Si vous avez activé la gestion d'API, une requête parcourt le chemin suivant :

  1. Une requête à votre code est reçue et est envoyée au module Endpoints Management au sein d'Endpoints Framework.
  2. Le module Endpoints Management envoie une requête de vérification à Service Control.
  3. Si vous avez configuré votre API de sorte qu'elle exige une clé API ou une authentification, Service Control vérifie si la requête est autorisée et envoie une réponse au module Endpoints Management.
  4. Si la requête n'est pas autorisée, le module Endpoints Management la rejette. Si la requête est autorisée, elle est transmise à Endpoints Frameworks. Dans les deux cas, le module Endpoints Management consigne des informations au sujet de la requête.
  5. Endpoints Frameworks achemine la requête vers votre code backend.

Vous pouvez utiliser Endpoints Frameworks avec ou sans fonctionnalité de gestion des API. L'utilisation d'Endpoints Frameworks sans fonctionnalité de gestion d'API est offerte gratuitement. La fonctionnalité de gestion des API est facturée conformément à la page de tarification Endpoints.

Endpoints Frameworks n'est compatible qu'avec les services exécutés dans l'environnement standard App Engine. Sur Compute Engine, sur GKE, dans l'environnement flexible App Engine ou dans d'autres environnements, vos services doivent s'exécuter derrière Extensible Service Proxy.

Si le service s'exécute derrière ESP, le code backend peut être écrit dans n'importe quel langage et framework, tels que Python Flask, Java Jersey et Node.js Express. Dans ces environnements, il n'est pas nécessaire d'utiliser Endpoints Frameworks pour la gestion d'API.

Étapes suivantes