Effectuer un appel avec une requête HTTPS

Vous pouvez envoyer des requêtes HTTPS depuis n'importe quel système capable de le faire afin de déclencher un service hébergé sur Cloud Run. Notez que tous les services Cloud Run disposent d'une URL HTTPS stable.

Voici quelques cas d'utilisation :

  • API Web RESTful personnalisée
  • Microservice privé
  • Middleware HTTP ou proxy inverse pour vos applications Web
  • Application Web pré-empaquetée

Créer des services publics

La création d'un service public sur Cloud Run nécessite :

  • l'accès au service depuis l'Internet public ;
  • une URL destinée à un usage public.

Pour rendre un service public, configurez-le de manière à autoriser l'accès non authentifié (public) lors du déploiement ou à tout moment après le déploiement.

Vous pouvez utiliser l'URL stable et attribuée automatiquement lors du premier déploiement de votre service comme URL publique sur Cloud Run. Pour déterminer l'URL d'un service déployé, exécutez la commande suivante :

gcloud run services describe SERVICE --format 'value(status.url)'

L'URL d'un service Cloud Run est au format https://[TAG---]SERVICE_IDENTIFIER.run.app, où TAG fait référence au tag de trafic pour la révision que vous demandez, et SERVICE_IDENTIFIER est un identifiant unique et stable pour un service Cloud Run. N'analysez pas la valeur de SERVICE_IDENTIFIER, car elle n'a pas de format fixe, et la logique de génération de SERVICE_IDENTIFIER est susceptible d'être modifiée.

Vous pouvez également utiliser votre propre domaine personnalisé mappé au service. Les certificats SSL gérés sont alors fournis automatiquement.

Cloud Run redirige toutes les requêtes HTTP vers HTTPS, mais interrompt le protocole TLS avant que les requêtes n'atteignent votre service Web. Si votre service génère des ressources Web qui font référence à d'autres ressources Web avec des URL non sécurisées (http://), votre page peut faire l'objet d'avertissements ou d'erreurs de contenu mixte. Utilisez le protocole https pour tous les URI Web de référence ou tenez compte des instructions de proxy dans la requête HTTP, telles que l'en-tête HTTP X-Forwarded-Proto.

HTTP et HTTP/2

Par défaut, Cloud Run rétrograde les requêtes HTTP/2 à HTTP/1 lorsque ces requêtes sont envoyées au conteneur. Si vous souhaitez configurer explicitement votre service pour utiliser HTTP/2 de bout en bout, consultez la page Utiliser HTTP/2.

Créer des services privés

Pour créer un service privé sur Cloud Run, vous devez limiter l'accès au service en faisant appel à l'autorisation de demandeur IAM.

Vous pouvez également limiter l'accès à un service à l'aide d'un mécanisme d'autorisation et d'authentification au niveau de l'application, par exemple avec Identity Platform.

Tester des services privés

Le moyen le plus simple de tester vos services privés consiste à utiliser le proxy Cloud Run dans Google Cloud CLI. Le service privé est relayé par proxy à http://localhost:8080 (ou au port spécifié avec --port), en fournissant le jeton du compte actif ou un autre jeton que vous spécifiez. Cela vous permet d'utiliser un navigateur Web ou un outil tel que curl. Il s'agit de la méthode recommandée pour tester en privé un site Web ou une API dans votre navigateur.

Vous pouvez relayer un service en local à l'aide de la commande suivante :

gcloud run services proxy SERVICE --project PROJECT-ID

Vous pouvez également tester des services privés sans le proxy à l'aide d'un outil tel que curl, en transmettant un jeton d'authentification dans l'en-tête Authorization :

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

Service privé à service

Un service Cloud Run peut appeler un autre service Cloud Run avec l'authentification de service à service.

Exemple de code qui appelle un service privé

Pour obtenir des exemples de code montrant comment obtenir un jeton d'ID et envoyer une requête HTTP à un service privé, consultez la page Authentifier les communications de service.

Utiliser un middleware pour améliorer votre service

Les proxys HTTPS peuvent décharger les fonctionnalités courantes d'un service HTTP, telles que la mise en cache, la validation des requêtes ou l'autorisation. Pour les microservices, de nombreux proxys HTTP font partie d'une solution de passerelle d'API ou d'un maillage de services tel que Istio.

Les produits Google Cloud que vous pouvez utiliser pour améliorer votre service Cloud Run incluent :