HTTP/2 (Dienste) verwenden

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Für Cloud Run-Dienste führt Cloud Run standardmäßig ein Downgrade von HTTP/2-Anfragen auf HTTP/1 aus, wenn diese Anfragen an den Container gesendet werden. Wenn Sie Ihren Dienst explizit so einrichten möchten, dass er HTTP/2 von Anfang bis Ende (End-to-End) verwendet, können Sie ihn für HTTP/2 konfigurieren. Auf dieser Seite wird die Konfiguration beschrieben.

Weitere Informationen zum Aufrufen von Diensten mit HTTP finden Sie unter Mit einer HTTPS-Anfrage aufrufen.

Vor der Konfiguration

Ihr Cloud Run-Dienst muss Anfragen im HTTP/2-Klartext-Format (h2c) verarbeiten, da TLS weiterhin automatisch von Cloud Run beendet wird.

Testen Sie, ob Ihr Dienst h2c-Anfragen unterstützt. Testen Sie dazu den Dienst lokal mit diesem cURL-Befehl:

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

HTTP/2-End-to-End einrichten und aktualisieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Sie können die Nutzung von HTTP/2-End-to-End mit der Google Cloud Console, der gcloud-Befehlszeile oder einer YAML-Datei festlegen, wenn Sie einen neuen Dienst erstellen oder eine neue Überarbeitung bereitstellen:

Console

  1. Öffnen Sie Cloud Run.

  2. Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen wie gewünscht aus und klicken Sie dann auf Container, Verbindungen, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.

  4. Klicken Sie auf den Tab Verbindungen.

    Bild

  5. Aktivieren Sie das Kästchen HTTP/2-Verbindungen aktivieren.

  6. Klicken Sie auf Erstellen oder Bereitstellen.

Befehlszeile

Mit dem folgenden Befehl können Sie einen bestimmten Dienst aktualisieren, um HTTP/2 zu verwenden:

gcloud run services update SERVICE --use-http2

Ersetzen Sie SERVICE durch den Namen Ihres Dienstes.

Sie können Ihren Dienst mit dem folgenden Befehl auch so einrichten, dass bei der Bereitstellung HTTP/2 verwendet wird:

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

Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.

YAML

Sie können die vorhandene Dienstkonfiguration mit dem Befehl gcloud run services describe --format export herunterladen und aufrufen, was bereinigte Ergebnisse im YAML-Format liefert. Anschließend können Sie die unten beschriebenen Felder ändern und die geänderte YAML-Datei mit dem Befehl gcloud run services replace hochladen. Achten Sie darauf, dass Sie die Felder nur wie dokumentiert ändern.

  1. So rufen Sie die Konfiguration auf und laden sie herunter:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aktualisieren Sie ports mit dem Namen h2c und containerPort mit dem Port Ihrer Wahl, wie unten gezeigt:

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

    Ersetzen

    • SERVICE durch den Namen Ihres Cloud Run-Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.
    • REVISION durch einen neuen Überarbeitungsnamen oder löschen (falls vorhanden). Wenn Sie einen neuen Überarbeitungsnamen angeben, muss er die folgenden Kriterien erfüllen:
      • Beginnt mit SERVICE-
      • Enthält nur Kleinbuchstaben, Ziffern und -
      • Endet nicht mit -
      • Darf nicht mehr als 63 Zeichen enthalten
  3. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml

Terraform

Fügen Sie einer google_cloud_run_service-Ressource in Ihrer Terraform-Konfiguration unter template.spec.containers Folgendes hinzu: Wenn Ihr Container HTTP-Anfragen an einem anderen Port als 8080 überwacht, ersetzen Sie 8080 durch diese Portnummer.

# Enable HTTP/2
# https://cloud.google.com/run/docs/configuring/http2
ports {
  name           = "h2c"
  container_port = 8080
}

Führen Sie die folgenden Schritte aus, um Ihre Terraform-Konfiguration in einem Google Cloud-Projekt anzuwenden:

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Google Cloud-Projekt fest, auf das Sie die Terraform-Konfiguration anwenden möchten:
    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. Erstellen Sie ein Verzeichnis und öffnen Sie eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf:
    mkdir DIRECTORY && cd DIRECTORY && nano main.tf
    
  4. Kopieren Sie das Beispiel in main.tf.
  5. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  6. Speichern Sie die Änderungen, indem Sie Ctrl-x und dann y drücken.
  7. Initialisieren Sie Terraform:
    terraform init
  8. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  9. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  10. Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

HTTP/2-Einstellungen aufrufen

So rufen Sie die aktuellen HTTP/2-Einstellungen für Ihren Cloud Run-Dienst auf:

Console

  1. Öffnen Sie Cloud Run.

  2. Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.

  3. Klicken Sie auf den Tab Überarbeitungen.

  4. Im Detailbereich auf der rechten Seite ist die http/2-Einstellung auf dem Tab Container aufgelistet.

Befehlszeile

  1. Verwenden Sie den folgenden Befehl:

    gcloud run services describe SERVICE
  2. Suchen Sie in der zurückgegebenen Konfiguration nach der http/2-Einstellung.