Utiliser 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 définir explicitement votre service pour qu'il utilise le protocole HTTP/2 de bout en bout sans ce type de rétrogradation, vous pouvez le configurer pour HTTP/2. Cette page vous explique comment procéder.

Pour plus d'informations sur l'appel de services via HTTP, reportez-vous à la section Appeler avec une requête HTTPS.

Avant de configurer

Votre service Cloud Run doit gérer les requêtes au format HTTP/2 texte clair (h2c), car TLS est toujours arrêté automatiquement par Cloud Run.

Pour vérifier que votre service accepte les requêtes h2c, testez-le localement à l'aide de la commande cURL :

curl -i --http2-prior-knowledge http://localhost:PORT

Définir et mettre à jour HTTP/2 de bout en bout

Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

Vous pouvez spécifier l'utilisation de HTTP/2 de bout en bout à l'aide de Cloud Console, de la ligne de commande gcloud ou d'un fichier YAML lorsque vous créez un service ou déployez une nouvelle révision :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau service, renseignez la page de paramètres initiale du service, puis cliquez sur Suivant > Paramètres avancés pour accéder à la page de configuration du service.

  4. Cliquez sur l'onglet Connexions.

    image

  5. Cochez la case Activer les connexions HTTP/2.

  6. Cliquez sur Créer ou Déployer.

Ligne de commande

Vous pouvez mettre à jour un service donné pour qu'il utilise HTTP/2 à l'aide de la commande suivante :

gcloud run services update SERVICE --use-http2

Remplacez SERVICE par le nom du service.

Vous pouvez également configurer votre service pour qu'il utilise HTTP/2 lors du déploiement à l'aide de la commande suivante :

gcloud run deploy --image IMAGE_URL --use-http2

Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest

YAML

Vous pouvez télécharger et afficher la configuration de service existante à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Mettez à jour ports avec le nom h2c et containerPort avec le port de votre choix, comme indiqué ci-dessous :

    apiVersion: serving.knative.dev/v1
    kind: Service
    [...]
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
            ports:
            - name: h2c
              containerPort: 8080

    Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest

  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml

Affichage des paramètres http/2

Pour afficher les paramètres http/2 actuels de votre service, procédez comme suit :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.

  3. Cliquez sur l'onglet Révisions.

  4. Dans le panneau de détails sur la droite, le paramètre http/2 est répertorié sous l'onglet Conteneur.

Ligne de commande

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. Recherchez le paramètre http/2 dans la configuration renvoyée.