Reversões, implementações graduais e migração de tráfego

O Cloud Run permite-lhe especificar que revisões devem receber tráfego e especificar as percentagens de tráfego recebidas por uma revisão. Esta funcionalidade permite-lhe reverter para uma revisão anterior, implementar gradualmente uma revisão e dividir o tráfego entre várias revisões. Esta página descreve como usar esta funcionalidade para gerir o tráfego para as revisões do Cloud Run.

Tenha em atenção que os ajustes de encaminhamento de tráfego não são instantâneos. Quando altera o tráfego para revisões, todos os pedidos que estão a ser processados continuam até à conclusão. Os pedidos em curso não são ignorados e podem ser direcionados para uma nova revisão ou uma revisão anterior durante o período de transição.

Divisão de tráfego e afinidade de sessão

Se estiver a dividir o tráfego entre várias revisões com a afinidade de sessão ativada, consulte o artigo Afinidade de sessão e divisão de tráfego para ver detalhes sobre o efeito da afinidade de sessão na divisão de tráfego.

Ciclo de vida das divisões de tráfego

Se dividir o tráfego entre várias revisões ou atribuir tráfego a uma revisão anterior, todas as implementações subsequentes usam esse padrão de divisão de tráfego no futuro. Para voltar a usar apenas a revisão mais recente sem divisão de tráfego, envie todo o tráfego para a revisão mais recente.

Funções necessárias

Para receber as autorizações de que precisa para gerir serviços e revisões do Cloud Run, peça ao seu administrador para lhe conceder as seguintes funções de IAM:

  • Se estiver a gerir um serviço implementado a partir de uma imagem de contentor:
  • Se estiver a gerir um serviço implementado a partir do código-fonte:

Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.

Reverta para uma revisão anterior

Para reverter para uma revisão anterior:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Localize o serviço na lista de serviços e clique nele.

  3. Clique no separador Revisões para mostrar a lista de revisões atuais desse serviço.

  4. Na lista de revisões, clique no ícone de reticências à direita da revisão à qual está a reverter:

    manage-traffic

  5. Clique em Gerir tráfego para apresentar o formulário de gestão de tráfego:

    1. Selecione a revisão anterior para a qual quer reverter no menu pendente.
    2. Defina a percentagem de tráfego dessa revisão anterior como 100.
    3. Defina a percentagem da revisão publicada atualmente como 0.
    4. Clique em Guardar.

gcloud

Use o seguinte comando:

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

  • Substitua SERVICE pelo nome do serviço.
  • Substitua REVISION pelo nome da revisão para a qual está a reverter.

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Abaixo do atributo spec, localize e atualize o atributo traffic para o seguinte:

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

    Substituir

    • REVISION com o nome da revisão para a qual está a reverter.
  3. Substitua o serviço pela respetiva nova configuração através do seguinte comando:

    gcloud run services replace service.yaml
  4. Aguarde a conclusão da atualização: deve ver uma mensagem a indicar que a revisão a partir da qual está a reverter foi implementada e está a publicar 0 por cento do tráfego.

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Adicione o seguinte a um recurso google_cloud_run_v2_service na sua configuração do 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"

  }
}

Implementação gradual para revisões

Para implementar uma nova revisão gradualmente:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Selecione um serviço na lista de serviços.

  3. Clique em Implementar nova revisão.

  4. Preencha o formulário de implementação conforme necessário, mas certifique-se de que a caixa de verificação com a etiqueta Publicar esta revisão imediatamente NÃO está selecionada.

  5. Clique em Implementar.

  6. Clique em Gerir tráfego.

  7. A nova revisão é apresentada, mas com uma percentagem de 0: atualmente, não está a publicar tráfego. No formulário:

    1. Defina-o para a percentagem pretendida, por exemplo, 5. Tenha em atenção que a percentagem da versão publicada atualmente é reduzida automaticamente nesse mesmo valor.
    2. Clique em Guardar.
    3. Repita estes passos de Gerir tráfego, mas com percentagens alteradas, aumentando a percentagem conforme necessário para a nova revisão. Não precisa de voltar a implementar para alterar as percentagens de tráfego.

gcloud

Para implementar um serviço a partir de uma imagem de contentor:

  1. Implemente a revisão que quer implementar gradualmente, definindo-a inicialmente para não receber tráfego:

    • Para implementar um serviço a partir do código-fonte:

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

      Substitua IMAGE pela imagem que está a implementar.

    • Para implementar um serviço a partir do código-fonte:

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

      Substitua SERVICE pelo nome do seu serviço.

  2. Especifique a percentagem de tráfego que quer que a nova revisão processe, por exemplo, 5 por cento:

    gcloud run services update-traffic SERVICE --to-revisions REVISION=PERCENTAGE
    • Substitua SERVICE pelo nome do serviço.
    • Substitua REVISION pelo nome da revisão que está a implementar gradualmente. Para especificar a revisão mais recente, pode usar LATEST, por exemplo, LATEST=5.
    • Substitua PERCENTAGE pela percentagem de tráfego que quer enviar para a nova revisão, por exemplo, 5 para enviar 5% do tráfego.
  3. Quando o desempenho da revisão for satisfatório, repita o passo update-traffic anterior, mas aumente o valor percentual conforme pretendido.

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Faça as alterações de configuração desejadas ao serviço e especifique o nome da revisão que quer para a nova revisão:

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

    Substituir

    • REVISION-NAME com o nome que quer que a nova revisão tenha.
  3. Abaixo do atributo spec, localize e atualize o atributo traffic para que a nova revisão publique apenas uma pequena quantidade de tráfego:

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

    Tenha em atenção que as percentagens têm de totalizar 100. Substituir

    • REVISION-NEW com o nome da revisão que está a implementar gradualmente.
    • REVISION-FORMER com o nome da revisão publicada atualmente.
    • PERCENT-NEW com a percentagem de tráfego que quer enviar para a nova revisão. Por exemplo, use 10 para enviar 10% do tráfego para essa revisão.
    • PERCENT-FORMER com a percentagem de tráfego que quer enviar para a revisão antiga
  4. Aguarde a conclusão da atualização: deve ver uma mensagem a indicar que a nova revisão que está a implementar gradualmente foi implementada e está a publicar o valor percentual de tráfego que usou.

Terraform

Adicione o seguinte ao ficheiro .tf e atualize gradualmente a percentagem de tráfego da revisão anterior para a revisão mais recente. Tenha em atenção que cada alteração de tráfego requer a execução de outro 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"
  }
}

Aplique as alterações introduzindo terraform apply.

Divida o tráfego entre várias revisões

Para dividir o tráfego entre duas ou mais revisões:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Localize o serviço na lista de serviços e clique no mesmo.

  3. Clique em Gerir tráfego.

  4. A nova revisão publicada atualmente é apresentada. No formulário:

    1. Defina a percentagem de revisão publicada atualmente para a divisão pretendida.
    2. Selecione uma das revisões anteriores através da lista pendente e defina-a para a divisão percentual pretendida.
    3. Para dividir o tráfego entre mais revisões, clique em Adicionar revisão, selecione a revisão pretendida e defina a percentagem para a divisão desejada.
    4. Clique em Guardar.

gcloud

Especifique as revisões e a percentagem de tráfego para cada revisão numa lista separada por vírgulas:

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

  • Substitua SERVICE pelo nome do serviço.
  • Substitua LIST por uma lista de revisões e percentagens separadas por vírgulas:
    REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx
    por exemplo, hello2-00005-red=25,hello2-00001-bod=25,hello2-00002-nan=50.

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Abaixo do atributo spec, localize e atualize o atributo traffic para que a nova revisão publique apenas uma pequena quantidade de tráfego:

    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
    

    Tenha em atenção que as percentagens têm de totalizar 100. Substituir

    • REVISION-A, REVISION-B, REVISION-C com as revisões às quais está a atribuir tráfego.
    • PERCENT-A, PERCENT-B, PERCENT-C com a percentagem da revisão correspondente.
  3. Substitua o serviço pela respetiva nova configuração através do seguinte comando:

    gcloud run services replace service.yaml
  4. Aguarde pela conclusão da atualização: deve ver uma mensagem a indicar que a nova revisão que está a implementar gradualmente foi implementada e está a publicar anúncios para 5 por cento (ou qualquer valor gradual que usou) do tráfego.

Terraform

Adicione o seguinte ao ficheiro .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"
  }
}

Aplique as alterações introduzindo terraform apply.

Envie todo o tráfego para a revisão mais recente

Quando implementa uma nova revisão, pode fazer com que esta revisão e todas as futuras apresentem 100% do tráfego assim que possível, substituindo qualquer divisão de tráfego estabelecida:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Localize o serviço na lista de serviços e clique nele.

  3. Clique em Implementar nova revisão.

  4. Preencha o formulário de implementação conforme necessário, certificando-se de que seleciona a caixa de verificação com a etiqueta Publicar esta revisão imediatamente. Isto substitui qualquer divisão de tráfego existente, com a nova revisão a publicar 100% do tráfego.

  5. Clique em Implementar.

gcloud

Para enviar todo o tráfego para a revisão implementada mais recentemente:

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

Substitua SERVICE pelo nome do serviço.

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Abaixo do atributo spec, localize e atualize o atributo traffic para o seguinte

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - latestRevision: true
        percent: 100
    
  3. Substitua o serviço pela respetiva nova configuração através do seguinte comando:

    gcloud run services replace service.yaml
  4. Aguarde até que a atualização seja concluída. Deve ver uma mensagem a indicar que a revisão (mais recente) está implementada e a publicar 100 por cento do tráfego.

Terraform

Adicione o seguinte ao ficheiro .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"
  }
}

Aplique as alterações introduzindo terraform apply.

Use etiquetas para testes, migração de tráfego e reversões

Para evitar incorrer em custos de faturação para revisões etiquetadas, use instâncias mínimas ao nível do serviço ou remova as etiquetas das revisões quando já não precisar delas.

Um exemplo de utilização comum desta funcionalidade é usá-la para testar e validar uma nova revisão do serviço antes de publicar tráfego, nesta sequência típica:

  1. Executar testes de integração num contentor durante o desenvolvimento.
  2. Implemente o contentor num Google Cloud projeto que usa apenas para preparação, sem publicar tráfego, e teste-o com uma revisão etiquetada.
  3. Implemente-o em produção, sem publicar tráfego, e teste-o com uma revisão etiquetada em produção.
  4. Migre o tráfego para a revisão etiquetada.

Implemente uma nova revisão etiquetada

Para implementar uma nova revisão de um serviço existente na produção:

gcloud

  • Para implementar uma nova revisão etiquetada a partir de uma imagem de contentor:

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

    Substituir:

    • IMAGE_URL com o URL da sua imagem.
    • TAG_NAME com o nome da etiqueta em minúsculas.
  • Para implementar um serviço a partir do código-fonte:

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

    Substitua TAG_NAME pelo nome da etiqueta em minúsculas.

A etiqueta permite-lhe testar diretamente a nova revisão num URL específico, sem publicar tráfego. O URL começa com o nome da etiqueta que indicou. Por exemplo, se usou o nome da etiqueta green no serviço myservice, testaria a revisão etiquetada no URL https://green---myservice-abcdef.a.run.app

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Abaixo do atributo traffic, localize e atualize o atributo tag que corresponde à revisão à qual quer adicionar uma 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
    

    Substituir:

    • TAG-A, TAG-B, TAG-C com a etiqueta associada a cada revisão.
    • REVISION com o nome de uma revisão existente para a qual quer enviar todo o tráfego.
  3. Crie ou atualize o serviço com o seguinte comando:

    gcloud run services replace service.yaml

Terraform

Adicione o seguinte ao seu ficheiro .tf e atualize gradualmente a percentagem de tráfego da revisão antiga para a revisão mais recente com a nova etiqueta. Tenha em atenção que cada alteração de tráfego requer a execução de outro 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"
  }
}

Aplique as alterações introduzindo terraform apply.

Remova uma etiqueta

Para remover uma etiqueta de uma revisão:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Selecione um serviço na lista de serviços.

  3. Navegue até à secção Revisões no serviço pretendido e selecione a revisão para a qual quer remover a etiqueta existente.

  4. Passe o cursor do rato sobre a coluna URLs de revisão (etiquetas) e clique no ícone de lápis:

    tag-delete

  5. No menu de diálogo URLs de revisão, clique no ícone Lixo para remover a etiqueta atual usada na sua revisão.

  6. Clique em Guardar.

gcloud

Para remover uma etiqueta de revisão:

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

Substituir

  • TAG_NAME com o nome da etiqueta para a qual está a migrar o tráfego
  • SERVICE com o nome do serviço do qual está a remover a etiqueta

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Faça as alterações de configuração desejadas ao serviço.

  3. Abaixo do atributo spec, localize e remova o atributo tag para a revisão etiquetada:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        tag: TAG_NAME
        percent: PERCENT-NEW
    
  4. Substitua o serviço pela respetiva nova configuração através do seguinte comando:

    gcloud run services replace service.yaml

Terraform

Adicione o seguinte ao ficheiro .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"
  }
}

Aplique as alterações introduzindo terraform apply.

Migrar tráfego para uma revisão etiquetada

Depois de confirmar que a nova revisão funciona corretamente, pode começar a migrar tráfego para a mesma através da Google Cloud consola, da linha de comandos gcloud, do Terraform ou de um ficheiro YAML:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Localize o serviço na lista de serviços e clique no mesmo:

  3. Selecione a revisão etiquetada para a qual quer enviar tráfego:

    manage-traffic

  4. Clique em Gerir tráfego.

  5. Localize o nome da revisão etiquetada: é apresentado, mas com uma percentagem de 0: atualmente, não está a publicar tráfego. No formulário Gerir tráfego*:

    1. Defina-o para a percentagem pretendida, por exemplo, 5. Tenha em atenção que a percentagem da versão publicada atualmente é reduzida automaticamente nesse mesmo valor.
    2. Clique em Guardar.
    3. Ao longo de um período de horas ou dias, conforme necessário, repita estes passos de Gestão de tráfego, mas com percentagens alteradas, aumentando a percentagem conforme necessário para a revisão etiquetada. Não precisa de voltar a implementar para alterar as percentagens de tráfego.

gcloud

Para migrar tráfego para uma etiqueta de revisão específica:

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

Substituir

  • TAG_NAME com o nome da etiqueta para a qual está a migrar o tráfego
  • TRAFFIC_PERCENT com a percentagem de tráfego que quer que a revisão etiquetada publique, por exemplo, 1.

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Faça as alterações de configuração escolhidas ao serviço.

  3. Abaixo do atributo spec, localize e atualize o atributo traffic para a revisão etiquetada, de modo que a revisão etiquetada apresente apenas uma pequena quantidade de tráfego:

    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
    

    Tenha em atenção que as percentagens têm de totalizar 100. Substituir

    • REVISION com o nome da revisão etiquetada.
    • TAG_NAME com o nome da etiqueta que está a implementar gradualmente.
    • PERCENT-NEW com a percentagem de tráfego que quer enviar para a revisão etiquetada. Por exemplo, use 10 para enviar 10% do tráfego para essa revisão.
    • REVISION-FORMER com o nome da revisão publicada atualmente.
    • PERCENT-FORMER com a percentagem de tráfego que quer enviar para a revisão antiga
  4. Substitua o serviço pela respetiva nova configuração através do seguinte comando:

    gcloud run services replace service.yaml
  5. Aguarde a conclusão da atualização: deve ver uma mensagem a indicar que a nova revisão que está a implementar gradualmente foi implementada e está a publicar o valor percentual de tráfego que usou.

Terraform

Adicione o seguinte ao ficheiro .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"
  }
}

Ao longo de horas ou dias, conforme necessário, atualize gradualmente de uma etiqueta para a outra, aumentando a percentagem conforme necessário para a revisão etiquetada.

Aplique as alterações introduzindo terraform apply após cada alteração.

O que se segue?