Restauraciones, lanzamientos graduales y migración de tráfico

Cloud Run te permite especificar qué revisiones deben recibir tráfico y los porcentajes de tráfico que recibe una revisión. Esta función te permite restaurar una revisión anterior, implementar una revisión gradualmente y dividir el tráfico entre varias revisiones. En esta página se describe cómo usar esta función para gestionar el tráfico de tus revisiones de Cloud Run.

Ten en cuenta que los ajustes de enrutamiento del tráfico no son instantáneos. Cuando cambies el tráfico de las revisiones, todas las solicitudes que se estén procesando se completarán. Las solicitudes en curso no se descartarán y podrán dirigirse a una revisión nueva o a una anterior durante el periodo de transición.

División del tráfico y afinidad de sesión

Si vas a dividir el tráfico entre varias revisiones con la afinidad de sesión habilitada, consulta Afinidad de sesión y división del tráfico para obtener información sobre el efecto de la afinidad de sesión en la división del tráfico.

Ciclo de vida de las divisiones del tráfico

Si divides el tráfico entre varias revisiones o asignas tráfico a una revisión anterior, todas las implementaciones posteriores usarán ese patrón de división del tráfico. Para volver a usar solo la última revisión sin dividir el tráfico, envía todo el tráfico a la última revisión.

Roles obligatorios

Para obtener los permisos que necesitas para gestionar servicios y revisiones de Cloud Run, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

  • Si gestionas un servicio que se ha desplegado desde una imagen de contenedor, haz lo siguiente:
  • Si gestionas un servicio que se ha desplegado desde el código fuente, haz lo siguiente:

Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu servicio de Cloud Run interactúa con APIs, como las bibliotecas de cliente de Cloud, consulta la guía de configuración de la identidad del servicio.Google Cloud Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.

Restaurar una revisión anterior

Para volver a una revisión anterior, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Busca el servicio en la lista de servicios y haz clic en él.

  3. Haga clic en la pestaña Revisiones para ver la lista de revisiones actuales de ese servicio.

  4. En la lista de revisiones, haga clic en el icono de los tres puntos situado a la derecha de la revisión a la que quiera volver:

    manage-traffic

  5. Haga clic en Gestionar tráfico para mostrar el formulario de gestión de tráfico:

    1. En la lista desplegable, selecciona la revisión anterior a la que quieras volver.
    2. Asigna el 100 % del tráfico a esa revisión anterior.
    3. Asigna el 0 % a la revisión que se está sirviendo.
    4. Haz clic en Guardar.

gcloud

Usa el siguiente comando:

gcloud run services update-traffic SERVICE --to-revisions REVISION=100

  • Sustituye SERVICE por el nombre del servicio.
  • Sustituye REVISION por el nombre de la revisión a la que quieres volver.

YAML

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Debajo del atributo spec, busca el atributo traffic y actualízalo con el siguiente valor:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        percent: 100
    

    Sustituir

    • REVISION con el nombre de la revisión a la que quieres volver.
  3. Sustituye el servicio por su nueva configuración con el siguiente comando:

    gcloud run services replace service.yaml
  4. Espera a que se complete la actualización. Debería aparecer un mensaje que indique que la revisión de la que estás revirtiendo se ha implementado y está publicando el 0 % del tráfico.

Terraform

Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

Añade lo siguiente a un recurso google_cloud_run_v2_service en tu configuración de Terraform:

resource "google_cloud_run_v2_service" "default" {
  name     = "my-service"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {}

  traffic {
    percent = 100
    # This revision needs to already exist
    revision = "green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"

  }
}

Lanzamiento gradual de revisiones

Para lanzar una revisión nueva de forma gradual, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Selecciona un servicio de la lista.

  3. Haz clic en Desplegar nueva revisión.

  4. Rellena el formulario de implementación según sea necesario, pero asegúrate de que la casilla Servir esta revisión de inmediato NO esté marcada.

  5. Haz clic en Desplegar.

  6. Haz clic en Gestionar tráfico.

  7. La nueva revisión aparece en la lista, pero con un porcentaje del 0 %: actualmente no está sirviendo tráfico. En el formulario:

    1. Establece el porcentaje que quieras; por ejemplo, 5. Ten en cuenta que el porcentaje de la versión que se está publicando se reduce automáticamente en la misma cantidad.
    2. Haz clic en Guardar.
    3. Repite los pasos de Gestionar tráfico, pero con porcentajes diferentes. Aumenta el porcentaje según sea necesario para la nueva revisión. No es necesario volver a implementar para cambiar los porcentajes de tráfico.

gcloud

Para desplegar un servicio a partir de una imagen de contenedor, sigue estos pasos:

  1. Implementa la revisión que quieras lanzar gradualmente. Para ello, al principio, haz que no reciba tráfico:

    • Para desplegar un servicio desde el código fuente, sigue estos pasos:

      gcloud run deploy --image IMAGE --no-traffic

      Sustituye IMAGE por la imagen que vas a implementar.

    • Para desplegar un servicio desde el código fuente, sigue estos pasos:

      gcloud run deploy SERVICE --source . --no-traffic

      Sustituye SERVICE por el nombre de tu servicio.

  2. Especifique el porcentaje de tráfico que quiere que gestione la nueva revisión. Por ejemplo, el 5 %:

    gcloud run services update-traffic SERVICE --to-revisions REVISION=PERCENTAGE
    • Sustituye SERVICE por el nombre del servicio.
    • Sustituye REVISION por el nombre de la revisión que vas a implementar gradualmente. Para especificar la revisión más reciente, puedes usar LATEST, por ejemplo, LATEST=5.
    • Sustituye PERCENTAGE por el porcentaje de tráfico que quieras enviar a la nueva revisión (por ejemplo, 5 para enviarle el 5% del tráfico).
  3. Cuando el rendimiento de la revisión sea satisfactorio, repita el paso anterior, pero aumente el valor del porcentaje según lo desee.update-traffic

YAML

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Haz los cambios de configuración que quieras en el servicio y especifica el nombre de revisión que quieras para la nueva revisión:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
     template:
       metadata:
         annotations:
         ...
         name: REVISION-NAME
    

    Sustituir

    • REVISION-NAME con el nombre que quieras que tenga la nueva revisión.
  3. Debajo del atributo spec, busque y actualice el atributo traffic para que la nueva revisión solo sirva una pequeña cantidad de tráfico:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION-NEW
        percent: PERCENT-NEW
      - revisionName: REVISION-FORMER
        percent: PERCENT-FORMER
    

    Ten en cuenta que los porcentajes deben sumar 100. Sustituir

    • REVISION-NEW con el nombre de la revisión que vas a lanzar de forma gradual.
    • REVISION-FORMER con el nombre de la revisión que se está publicando.
    • PERCENT-NEW con el porcentaje de tráfico que quiera enviar a la nueva revisión. Por ejemplo, use 10 para enviar el 10% del tráfico a esa revisión.
    • PERCENT-FORMER con el porcentaje de tráfico que quieras enviar a la revisión antigua
  4. Espera a que se complete la actualización: deberías ver un mensaje que indique que la nueva revisión que estás implementando gradualmente se ha desplegado y está sirviendo el valor del porcentaje de tráfico que has usado.

Terraform

Añade lo siguiente a tu archivo .tf y actualiza gradualmente el porcentaje de tráfico de la revisión anterior a la última revisión. Ten en cuenta que cada cambio de tráfico requerirá que se ejecute otro terraform apply.

resource "google_cloud_run_v2_service" "default" {
  name     = "my-service"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {
    containers {
      # Image or image tag must be different from previous revision
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    percent = 100
    # This revision needs to already exist
    revision = "green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    # Deploy new revision with 0% traffic
    percent = 0
    type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
  }
}

Para aplicar los cambios, introduce terraform apply.

Dividir el tráfico entre varias revisiones

Para dividir el tráfico entre dos o más revisiones, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Busca el servicio en la lista de servicios y haz clic en él.

  3. Haz clic en Gestionar tráfico.

  4. Se muestra la nueva revisión que se está publicando. En el formulario:

    1. Define el porcentaje de la revisión que se está sirviendo actualmente para conseguir la división que quieras.
    2. Selecciona una de las revisiones anteriores en la lista desplegable y asigna el porcentaje que quieras.
    3. Para dividir el tráfico entre más revisiones, haz clic en Añadir revisión, selecciona la revisión que quieras y define el porcentaje de división.
    4. Haz clic en Guardar.

gcloud

Especifique las revisiones y el porcentaje de tráfico de cada revisión en una lista delimitada por comas:

gcloud run services update-traffic SERVICE --to-revisions LIST

  • Sustituye SERVICE por el nombre del servicio.
  • Sustituye LIST por una lista de revisiones y porcentajes separados por comas:
    REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx
    Por ejemplo, hello2-00005-red=25,hello2-00001-bod=25,hello2-00002-nan=50.

YAML

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Debajo del atributo spec, busque y actualice el atributo traffic para que la nueva revisión solo sirva una pequeña cantidad de tráfico:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION-A
        percent: PERCENT-A
      - revisionName: REVISION-B
        percent: PERCENT-B
      - revisionName: REVISION-C
        percent: PERCENT-C
    

    Ten en cuenta que los porcentajes deben sumar 100. Sustituir

    • REVISION-A, REVISION-B y REVISION-C con las revisiones a las que asignas tráfico.
    • PERCENT-A, PERCENT-B y PERCENT-C con el porcentaje de la revisión correspondiente.
  3. Sustituye el servicio por su nueva configuración con el siguiente comando:

    gcloud run services replace service.yaml
  4. Espera a que se complete la actualización. Deberías ver un mensaje que indique que la nueva revisión que estás implementando gradualmente se ha desplegado y está atendiendo el 5 % (o el valor gradual que hayas usado) del tráfico.

Terraform

Añade lo siguiente a tu archivo .tf:

resource "google_cloud_run_v2_service" "default" {
  name     = "my-service"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    revision = "green"
  }

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    percent  = 25
    revision = "green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    percent = 75
    # This revision needs to already exist
    revision = "blue"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }
}

Para aplicar los cambios, introduce terraform apply.

Enviar todo el tráfico a la última revisión

Cuando despliegues una revisión nueva, puedes hacer que esta revisión y todas las futuras sirvan el 100% del tráfico lo antes posible, lo que anulará cualquier división de tráfico establecida:

Consola

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Busca el servicio en la lista de servicios y haz clic en él.

  3. Haz clic en Desplegar nueva revisión.

  4. Rellena el formulario de implementación según sea necesario y asegúrate de marcar la casilla Servir esta revisión de inmediato. De esta forma, se anulará cualquier división de tráfico que se haya creado y la nueva revisión servirá el 100 % del tráfico.

  5. Haz clic en Desplegar.

gcloud

Para enviar todo el tráfico a la revisión implementada más recientemente, sigue estos pasos:

gcloud run services update-traffic SERVICE --to-latest

Sustituye SERVICE por el nombre del servicio.

YAML

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Debajo del atributo spec, busca el atributo traffic y actualízalo con el siguiente valor:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - latestRevision: true
        percent: 100
    
  3. Sustituye el servicio por su nueva configuración con el siguiente comando:

    gcloud run services replace service.yaml
  4. Espera a que se complete la actualización. Debería aparecer un mensaje que indique que se ha implementado la revisión (más reciente) y que está sirviendo el 100 % del tráfico.

Terraform

Añade lo siguiente a tu archivo .tf:

resource "google_cloud_run_v2_service" "default" {
  name     = "my-service"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {}

  traffic {
    percent = 100
    type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
  }
}

Para aplicar los cambios, introduce terraform apply.

Usar etiquetas para hacer pruebas, migrar tráfico y restaurar versiones

Para evitar incurrir en costes de facturación por las revisiones etiquetadas, usa instancias mínimas a nivel de servicio o elimina las etiquetas de las revisiones cuando ya no las necesites.

Un caso práctico habitual de esta función es usarla para probar y verificar una revisión de un servicio nuevo antes de que sirva tráfico, siguiendo esta secuencia típica:

  1. Ejecuta pruebas de integración en un contenedor durante el desarrollo.
  2. Implementa el contenedor en un Google Cloud proyecto que solo uses para las pruebas, que no sirva tráfico y que se pruebe con una revisión etiquetada.
  3. Implementarla en producción sin servir tráfico y probarla con una revisión etiquetada en producción.
  4. Migra el tráfico a la revisión etiquetada.

Desplegar una nueva revisión etiquetada

Para desplegar una nueva revisión de un servicio en producción, sigue estos pasos:

gcloud

  • Para desplegar una nueva revisión etiquetada a partir de una imagen de contenedor, sigue estos pasos:

    gcloud run deploy myservice --image IMAGE_URL  --no-traffic --tag TAG_NAME

    Sustituye:

    • IMAGE_URL con la URL de la imagen.
    • TAG_NAME con el nombre de la etiqueta en minúsculas.
  • Para desplegar un servicio desde el código fuente, sigue estos pasos:

    gcloud run deploy myservice --source . --no-traffic --tag TAG_NAME

    Sustituye TAG_NAME por el nombre de la etiqueta en minúsculas.

La etiqueta te permite probar directamente la nueva revisión en una URL específica sin servir tráfico. La URL empieza por el nombre de la etiqueta que has proporcionado. Por ejemplo, si has usado el nombre de etiqueta green en el servicio myservice, probarías la revisión etiquetada en la URL https://green---myservice-abcdef.a.run.app.

YAML

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Debajo del atributo traffic, busque y actualice el atributo tag que corresponda a la revisión a la que quiera añadir una etiqueta:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        percent: 100
      - revisionName: REVISION-A
        tag: TAG-A
      - revisionName: REVISION-B
        tag: TAG-B
      - revisionName: REVISION-C
        tag: TAG-C
    

    Sustituye:

    • TAG-A, TAG-B y TAG-C con la etiqueta asociada a cada revisión.
    • REVISION con el nombre de una revisión que ya tengas y a la que quieras enviar todo el tráfico.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run services replace service.yaml

Terraform

Añade lo siguiente a tu archivo .tf y actualiza gradualmente el porcentaje de tráfico de la revisión antigua a la más reciente con la nueva etiqueta. Ten en cuenta que cada cambio de tráfico requerirá que se ejecute otro terraform apply.

resource "google_cloud_run_v2_service" "default" {
  name     = "my-service"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      # image or tag must be different from previous revision
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    revision = "blue"
  }

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    percent = 100
    # This revision needs to already exist
    revision = "green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    # Deploy new revision with 0% traffic
    percent  = 0
    revision = "blue"
    tag      = "tag-name"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }
}

Para aplicar los cambios, introduce terraform apply.

Quitar una etiqueta

Para quitar una etiqueta de una revisión, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Selecciona un servicio de la lista.

  3. Ve a la sección Revisiones del servicio que quieras y selecciona la revisión de la que quieras quitar la etiqueta.

  4. Coloca el cursor sobre la columna URLs de revisión (etiquetas) y haz clic en el icono del lápiz:

    tag-delete

  5. En el menú del cuadro de diálogo URLs de revisión, haga clic en el icono Papelera para quitar la etiqueta actual que se usa en su revisión.

  6. Haz clic en Guardar.

gcloud

Para quitar una etiqueta de revisión:

gcloud run services update-traffic SERVICE --remove-tags TAG_NAME

Sustituir

  • TAG_NAME con el nombre de la etiqueta a la que va a migrar el tráfico
  • SERVICE con el nombre del servicio del que vas a quitar la etiqueta

YAML

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Haz los cambios de configuración que quieras en el servicio.

  3. Debajo del atributo spec, busca y elimina el atributo tag de la revisión etiquetada:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        tag: TAG_NAME
        percent: PERCENT-NEW
    
  4. Sustituye el servicio por su nueva configuración con el siguiente comando:

    gcloud run services replace service.yaml

Terraform

Añade lo siguiente a tu archivo .tf:

resource "google_cloud_run_v2_service" "default" {
  name     = "my-service"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {}

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    percent = 100
    # This revision needs to already exist
    revision = "green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    # No tags for this revision
    # Keep revision at 0% traffic
    percent = 0
    # This revision needs to already exist
    revision = "blue"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }
}

Para aplicar los cambios, introduce terraform apply.

Migrar tráfico a una revisión etiquetada

Después de confirmar que la nueva revisión funciona correctamente, puedes empezar a migrar el tráfico a ella mediante la Google Cloud consola, la línea de comandos de gcloud, Terraform o un archivo YAML:

Consola

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Busca el servicio en la lista de servicios y haz clic en él:

  3. Selecciona la revisión etiquetada a la que quieras enviar tráfico:

    manage-traffic

  4. Haz clic en Gestionar tráfico.

  5. Busca el nombre de la revisión etiquetada: aparece en la lista, pero con un porcentaje del 0 %, ya que no está sirviendo tráfico. En el formulario Gestionar tráfico*:

    1. Establece el porcentaje que quieras; por ejemplo, 5. Ten en cuenta que el porcentaje de la versión que se está publicando se reduce automáticamente en la misma cantidad.
    2. Haz clic en Guardar.
    3. Durante un periodo de horas o días, según sea necesario, repite los pasos de Gestionar tráfico, pero con porcentajes modificados. Aumenta el porcentaje según sea necesario para la revisión etiquetada. No es necesario volver a implementar para cambiar los porcentajes de tráfico.

gcloud

Para migrar el tráfico a una etiqueta de revisión específica, sigue estos pasos:

gcloud run services update-traffic myservice --to-tags TAG_NAME=TRAFFIC_PERCENT

Sustituir

  • TAG_NAME con el nombre de la etiqueta a la que va a migrar el tráfico
  • TRAFFIC_PERCENT con el porcentaje de tráfico que quiera que sirva la revisión etiquetada. Por ejemplo, 1.

YAML

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Haz los cambios de configuración que quieras en el servicio.

  3. Debajo del atributo spec, busque y actualice el atributo traffic de la revisión etiquetada para que esta solo sirva una pequeña cantidad de tráfico:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        tag: TAG_NAME
        percent: PERCENT-NEW
      - revisionName: REVISION-FORMER
        percent: PERCENT-FORMER
    

    Ten en cuenta que los porcentajes deben sumar 100. Sustituir

    • REVISION con el nombre de la revisión etiquetada.
    • TAG_NAME con el nombre de la etiqueta que vas a implementar gradualmente.
    • PERCENT-NEW con el porcentaje de tráfico que quiera enviar a la revisión etiquetada. Por ejemplo, use 10 para enviar el 10% del tráfico a esa revisión.
    • REVISION-FORMER con el nombre de la revisión que se está publicando.
    • PERCENT-FORMER con el porcentaje de tráfico que quieras enviar a la revisión antigua
  4. Sustituye el servicio por su nueva configuración con el siguiente comando:

    gcloud run services replace service.yaml
  5. Espera a que se complete la actualización: deberías ver un mensaje que indique que la nueva revisión que estás implementando gradualmente se ha desplegado y está sirviendo el valor del porcentaje de tráfico que has usado.

Terraform

Añade lo siguiente a tu archivo .tf:

resource "google_cloud_run_v2_service" "default" {
  name     = "my-service"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {}

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    # Update revision to 50% traffic
    percent = 50
    # This revision needs to already exist
    revision = "green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    # Update tag to 50% traffic
    percent = 50
    # This tag needs to already exist
    tag = "tag-name"
  }
}

A lo largo de varias horas o días, según sea necesario, actualiza gradualmente de una etiqueta a otra, aumentando el porcentaje según sea necesario para la revisión etiquetada.

Para aplicar los cambios, introduce terraform apply después de cada uno.

Siguientes pasos