Utilizzo di HTTP/2 (servizi)

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Per i servizi Cloud Run, Cloud Run per impostazione predefinita esegue il downgrade delle richieste HTTP/2 a HTTP/1 quando tali richieste vengono inviate al container. Se vuoi impostare esplicitamente il servizio per l'utilizzo di HTTP/2 end-to-end, senza eseguire tale downgrade, puoi configurarlo per HTTP/2. In questa pagina viene mostrato come eseguire la configurazione.

Per ulteriori informazioni sulla chiamata ai servizi tramite HTTP, consulta Richiamare con una richiesta HTTPS.

Prima di configurare

Il tuo servizio Cloud Run deve gestire le richieste in formato testo chiaro HTTP/2 (h2c), perché TLS viene ancora terminato automaticamente da Cloud Run.

Per verificare che il servizio supporti le richieste h2c, esegui il test locale del servizio utilizzando questo comando cURL:

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

Impostazione e aggiornamento di HTTP/2 end-to-end

Qualsiasi modifica della configurazione determina la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.

Puoi specificare l'utilizzo di HTTP/2 end-to-end utilizzando la console Google Cloud, la riga di comando gcloud o un file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione:

Console

  1. Vai a Cloud Run

  2. Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment di una nuova revisione.

  3. Se stai configurando un nuovo servizio, compila la pagina delle impostazioni del servizio iniziale come preferisci, quindi fai clic su Container, connessioni, sicurezza per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Connessioni.

    immagine

  5. Seleziona la casella di controllo Abilita connessioni http/2

  6. Fai clic su Crea o Esegui il deployment.

Riga di comando

Puoi aggiornare un determinato servizio per utilizzare HTTP/2 utilizzando il comando seguente:

gcloud run services update SERVICE --use-http2

Sostituisci SERVICE con il nome del tuo servizio.

Puoi anche impostare il servizio in modo che utilizzi HTTP/2 durante il deployment utilizzando il comando:

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

Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest

YAML

Puoi scaricare e visualizzare la configurazione del servizio esistente utilizzando il comando gcloud run services describe --format export, che restituisce risultati puliti in formato YAML. Puoi quindi modificare i campi descritti di seguito e caricare il file YAML modificato con il comando gcloud run services replace. Assicurati di modificare solo i campi come documentato.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aggiorna ports con il nome h2c e containerPort utilizzando la porta scelta, come mostrato di seguito:

    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

    Sostituisci

    • SERVICE con il nome del tuo servizio Cloud Run
    • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest
    • REVISION con un nuovo nome di revisione o eliminalo (se presente). Se si fornisce un nuovo nome di revisione, deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Contiene solo lettere minuscole, numeri e -
      • Non termina con -
      • Non superi i 63 caratteri
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml

Terraform

Aggiungi quanto segue a una risorsa google_cloud_run_service nella configurazione Terraform, in template.spec.containers. Se il container rimane in ascolto delle richieste HTTP su una porta diversa da 8080, sostituisci 8080 con quel numero di porta.

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

Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi seguenti:

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud a cui vuoi applicare la configurazione Terraform:
    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. Crea una directory e apri un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf:
    mkdir DIRECTORY && cd DIRECTORY && nano main.tf
    
  4. Copia l'esempio in main.tf.
  5. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  6. Salva le modifiche premendo Ctrl-x, quindi y.
  7. Inizializza Terraform:
    terraform init
  8. Rivedi la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  9. Applica la configurazione Terraform eseguendo il comando seguente e inserendo yes nel prompt:
    terraform apply

    Attendi finché Terraform non visualizza il messaggio "Applica completato".

  10. Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle tue risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

Visualizza impostazioni http/2

Per visualizzare le impostazioni http/2 correnti per il tuo servizio Cloud Run:

Console

  1. Vai a Cloud Run

  2. Fai clic sul servizio che ti interessa per aprire la pagina Dettagli del servizio.

  3. Fai clic sulla scheda Revisioni.

  4. Nel riquadro dei dettagli a destra, l'impostazione http/2 è elencata nella scheda Connessioni.

Riga di comando

  1. Utilizza il comando seguente:

    gcloud run services describe SERVICE
  2. Individua l'impostazione http/2 nella configurazione restituita.