Usa HTTP/2

De manera predeterminada, Cloud Run pasa las solicitudes HTTP/2 a HTTP/1 cuando estas se envían al contenedor. Si deseas configurar explícitamente tu servicio para que use HTTP/2 de extremo a extremo, sin necesidad de cambiar a una versión inferior, puedes configurarlo para HTTP/2. En esta página, se muestra cómo realizar la configuración.

Para obtener más información sobre cómo invocar servicios mediante HTTP, consulta Invoca con una solicitud HTTPS.

Antes de configurar

Tu servicio de Cloud Run debe manejar las solicitudes en un formato de texto simple de HTTP/2 (h2c), ya que Cloud Run aún finaliza automáticamente TLS.

Para confirmar que tu servicio admite solicitudes h2c, prueba el servicio de forma local mediante este comando cURL:

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

Configura y actualiza HTTP/2 de extremo a extremo

Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.

Puedes especificar el uso de HTTP/2 de extremo a extremo con Cloud Console, la línea de comandos de gcloud o un archivo YAML cuando creas un servicio nuevo o Implementas una revisión nueva:

Console

  1. Ir a Cloud Run

  2. Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en Edit and Deploy New Revision.

  3. Si estás configurando un servicio nuevo, llena la página de configuración inicial del servicio como desees y haz clic en Siguiente > Configuración avanzada para acceder a la página de configuración del servicio.

  4. Haz clic en la pestaña Conexiones.

    image

  5. Selecciona la casilla de verificación Habilitar conexiones HTTP/2.

  6. Haz clic en Crear o Implementar.

Línea de comandos

Puedes actualizar un servicio determinado para que use HTTP/2 mediante el siguiente comando:

gcloud run services update SERVICE --use-http2

SERVICE por el nombre del servicio

También puedes configurar el servicio para que use HTTP/2 durante la implementación mediante el siguiente comando:

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

Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como gcr.io/myproject/my-image:latest

YAML

Puedes descargar y ver la configuración del servicio existente mediante el comando gcloud run services describe --format export, que genera resultados limpios en formato YAML. Luego, puedes modificar los campos que se describen a continuación y subir el YAML modificado mediante el comando gcloud beta run services replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Actualiza ports con el nombre h2c y containerPort con el puerto que elijas, como se muestra a continuación:

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

    Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como gcr.io/myproject/my-image:latest

  3. Reemplaza el servicio por la configuración nueva mediante el comando siguiente:

    gcloud beta run services replace service.yaml

Visualiza la configuración de http/2

Para ver la configuración de http/2 correspondiente a tu servicio, sigue estos pasos:

Console

  1. Ir a Cloud Run

  2. Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.

  3. Haz clic en la pestaña Revisiones (Revisions).

  4. En el panel de detalles a la derecha, la configuración de http/2 se encuentra en la pestaña Conexiones.

Línea de comandos

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. Localiza la configuración de http/2 en la configuración mostrada.