Rollback, rilasci graduali, migrazione del traffico

Cloud Run ti consente di specificare quali revisioni devono ricevere il traffico e di specificare le percentuali di traffico ricevute da una revisione. Questa funzionalità ti consente di eseguire il rollback a una revisione precedente, eseguire il deployment graduale di una revisione e suddividere il traffico tra più revisioni. Questa pagina descrive come utilizzare questa funzionalità per gestire il traffico verso le revisioni di Cloud Run.

Tieni presente che le modifiche al routing del traffico non sono istantanee. Quando modifichi il traffico per le revisioni, tutte le richieste in fase di elaborazione continueranno fino al completamento. Le richieste in corso non verranno eliminate e potrebbero essere indirizzate a una nuova revisione o a una precedente durante il periodo di transizione.

Suddivisione del traffico e affinità sessione

Se stai suddividendo il traffico tra più revisioni con l'affinità sessione abilitata, consulta Affinità di sessione e suddivisione del traffico per informazioni dettagliate sull'effetto dell'affinità sessione sulla suddivisione del traffico.

Ciclo di vita delle suddivisioni del traffico

Se suddividi il traffico tra più revisioni o lo assegni a una revisione precedente, tutti i deployment successivi utilizzeranno questo pattern di suddivisione del traffico. Per tornare a utilizzare solo l'ultima revisione senza suddivisione del traffico, invia tutto il traffico all'ultima revisione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire i servizi e le revisioni Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Se gestisci un servizio di cui è stato eseguito il deployment da un'immagine container:
  • Se gestisci un servizio di cui è stato eseguito il deployment dal codice sorgente:
    • Cloud Run Source Developer (roles/run.sourceDeveloper) sul tuo progetto
    • Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) sul tuo progetto
    • Service Account User (roles/iam.serviceAccountUser) sull'identità di servizio
    • Inoltre, concedi il ruolo Cloud Run Builder (roles/run.builder) al account di servizio Cloud Build nel progetto. Il account di servizio di build è responsabile della creazione del servizio e, per impostazione predefinita, è il account di servizio predefinito di Compute Engine.

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run interagisce con le APICloud de Confiance , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Eseguire il rollback a una revisione precedente

Per eseguire il rollback a una revisione precedente:

Console

  1. Nella console Cloud de Confiance by S3NS , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Individua il servizio nell'elenco dei servizi e fai clic.

  3. Fai clic sulla scheda Cronologia delle revisioni per visualizzare l'elenco delle revisioni attuali per il servizio.

  4. Nell'elenco delle revisioni, fai clic sull'icona con i puntini di sospensione a destra della revisione di cui vuoi eseguire il rollback:

  5. Fai clic su Gestisci traffico per visualizzare le opzioni di gestione del traffico.

  6. Seleziona Invia tutto il traffico a una revisione e seleziona la revisione dal menu a discesa.

  7. Fai clic su Salva.

gcloud

Utilizza il seguente comando:

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

  • Sostituisci SERVICE con il nome del servizio.
  • Sostituisci REVISION con il nome della revisione di cui vuoi eseguire il rollback.

YAML

  1. Se stai creando un nuovo servizio, ignora questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Sotto l'attributo spec, individua e aggiorna l'attributo traffic come segue:

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

    Sostituisci

    • REVISION con il nome della revisione a cui vuoi eseguire il rollback.
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml
  4. Attendi il completamento dell'aggiornamento: dovresti visualizzare un messaggio che indica che è stato eseguito il deployment della revisione da cui stai eseguendo il rollback e che questa gestisce il 0% del traffico.

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Aggiungi quanto segue a una risorsa google_cloud_run_v2_service nella configurazione 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"

  }
}

Implementazione graduale per le revisioni

Per implementare gradualmente una nuova revisione:

Console

  1. Nella console Cloud de Confiance by S3NS , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Seleziona un servizio nell'elenco dei servizi.

  3. Configura il servizio in base alle tue esigenze.

  4. Fai clic su Visualizza differenze e fai di nuovo il deployment.

  5. Assicurati che l'opzione Pubblica questa revisione immediatamente non sia selezionata.

  6. Fai clic su Esegui il deployment delle modifiche.

  7. Fai clic sulla scheda Cronologia delle revisioni. Se la nuova revisione non è ancora elencata, fai clic sul pulsante di aggiornamento.

  8. Nell'elenco delle revisioni, fai clic sull'icona con tre puntini a destra della revisione di cui stai eseguendo l'implementazione.

  9. Fai clic su Gestisci traffico per visualizzare le opzioni di gestione del traffico.

  10. Fai clic su Suddividi il traffico tra più revisioni.

  11. Seleziona le revisioni tra cui vuoi suddividere il traffico e la percentuale di traffico per ogni revisione.

  12. Fai clic su Salva.

gcloud

Per eseguire il deployment di un servizio da un'immagine container:

  1. Esegui il deployment della revisione che vuoi implementare gradualmente, impostandola inizialmente in modo che non riceva traffico:

    • Per eseguire il deployment di un servizio dal codice sorgente:

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

      Sostituisci IMAGE con l'immagine che stai eseguendo il deployment.

    • Per eseguire il deployment di un servizio dal codice sorgente:

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

      Sostituisci SERVICE con il nome del servizio.

  2. Specifica la percentuale di traffico che vuoi che venga gestita dalla nuova revisione, ad esempio il 5%:

    gcloud run services update-traffic SERVICE --to-revisions REVISION=PERCENTAGE
    • Sostituisci SERVICE con il nome del servizio.
    • Sostituisci REVISION con il nome della revisione che stai implementando gradualmente. Per specificare l'ultima revisione, puoi utilizzare LATEST, ad esempio LATEST=5.
    • Sostituisci PERCENTAGE con la percentuale di traffico che vuoi inviare alla nuova revisione, ad esempio 5 per inviare il 5% del traffico.
  3. Quando il rendimento della revisione è soddisfacente, ripeti il passaggio update-traffic precedente, ma aumenta il valore percentuale come preferisci.

YAML

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Apporta le modifiche di configurazione che preferisci al servizio e specifica il nome della revisione che vuoi per la nuova revisione:

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

    Sostituisci

    • REVISION-NAME con il nome che vuoi assegnare alla nuova revisione.
  3. Sotto l'attributo spec, individua e aggiorna l'attributo traffic in modo che la nuova revisione mostri solo una piccola quantità di traffico:

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

    Tieni presente che la somma delle percentuali deve essere pari a 100. Sostituisci

    • REVISION-NEW con il nome della revisione che stai implementando gradualmente.
    • REVISION-FORMER con il nome della revisione di distribuzione.
    • PERCENT-NEW con la percentuale di traffico che vuoi inviare alla nuova revisione, ad esempio utilizza 10 per inviare il 10% del traffico a quella revisione.
    • PERCENT-FORMER con la percentuale di traffico che vuoi inviare alla revisione precedente
  4. Attendi il completamento dell'aggiornamento: dovresti visualizzare un messaggio che indica che la nuova revisione che stai implementando gradualmente è stata eseguita e sta pubblicando il valore della percentuale di traffico che hai utilizzato.

Terraform

Aggiungi quanto segue al file .tf e aggiorna gradualmente la percentuale di traffico dalla revisione precedente all'ultima revisione. Tieni presente che ogni modifica del traffico richiederà l'esecuzione di un altro 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"
  }
}

Applica le modifiche inserendo terraform apply.

Suddividi il traffico tra più revisioni

Per suddividere il traffico tra due o più revisioni:

Console

  1. Nella console Cloud de Confiance by S3NS , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Individua il servizio nell'elenco dei servizi e fai clic.

  3. Fai clic sulla scheda Cronologia delle revisioni.

  4. Fai clic su Gestisci traffico.

  5. Viene elencata la nuova revisione attualmente attiva. Nel modulo:

    1. Imposta la percentuale della revisione attualmente pubblicata sulla suddivisione scelta.
    2. Seleziona una delle revisioni precedenti utilizzando l'elenco e impostala sulla suddivisione percentuale scelta.
    3. Per suddividere il traffico tra più revisioni, fai clic su Aggiungi revisione, seleziona la revisione e imposta la percentuale sulla suddivisione scelta.
    4. Fai clic su Salva.

gcloud

Specifica le revisioni e la percentuale di traffico per ogni revisione in un elenco delimitato da virgole:

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

  • Sostituisci SERVICE con il nome del servizio.
  • Sostituisci LIST con un elenco delimitato da virgole di revisioni e percentuali:
    REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx
    ad esempio, hello2-00005-red=25,hello2-00001-bod=25,hello2-00002-nan=50.

YAML

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Sotto l'attributo spec, individua e aggiorna l'attributo traffic in modo che la nuova revisione mostri solo una piccola quantità di traffico:

    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
    

    Tieni presente che la somma delle percentuali deve essere pari a 100. Sostituisci

    • REVISION-A, REVISION-B, REVISION-C con le revisioni a cui stai assegnando il traffico.
    • PERCENT-A, PERCENT-B, PERCENT-C con la percentuale per la revisione corrispondente.
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml
  4. Attendi il completamento dell'aggiornamento: dovresti visualizzare un messaggio che indica che è stato eseguito il deployment della nuova revisione che stai implementando gradualmente e che questa gestisce il 5% (o qualsiasi valore graduale utilizzato) del traffico.

Terraform

Aggiungi quanto segue al file 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 {
    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"
  }
}

Applica le modifiche inserendo terraform apply.

Invia tutto il traffico all'ultima revisione

Quando esegui il deployment di una nuova revisione, puoi fare in modo che questa revisione e tutte quelle future gestiscano il 100% del traffico il prima possibile, sostituendo qualsiasi suddivisione del traffico stabilita:

Console

  1. Nella console Cloud de Confiance by S3NS , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Individua il servizio nell'elenco dei servizi e fai clic.

  3. Configura il servizio, quindi fai clic su Visualizza diff e rifai il deployment.

  4. Assicurati che la casella di controllo Pubblica questa revisione immediatamente sia selezionata. In questo modo, qualsiasi suddivisione del traffico esistente verrà sostituita e la nuova revisione gestirà il 100% del traffico.

  5. Fai clic su Esegui il deployment delle modifiche.

gcloud

Per inviare tutto il traffico alla revisione di cui è stato eseguito il deployment più di recente:

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

Sostituisci SERVICE con il nome del servizio.

YAML

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Sotto l'attributo spec, individua e aggiorna l'attributo traffic come segue:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - latestRevision: true
        percent: 100
    
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml
  4. Attendi il completamento dell'aggiornamento: dovresti visualizzare un messaggio che indica che è stato eseguito il deployment della revisione (più recente) e che questa gestisce il 100% del traffico.

Terraform

Aggiungi quanto segue al file 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
    type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
  }
}

Applica le modifiche inserendo terraform apply.

Utilizza i tag per i test, la migrazione del traffico e i rollback

Per evitare di incorrere in costi fatturati per le revisioni con tag, utilizza le istanze minime a livello di servizio o rimuovi i tag dalle revisioni quando non ne hai più bisogno.

Un caso d'uso comune di questa funzionalità è utilizzarla per testare e verificare una nuova revisione del servizio prima che gestisca il traffico, in questa sequenza tipica:

  1. Esegui i test di integrazione su un container durante lo sviluppo.
  2. Esegui il deployment del container in un progetto Cloud de Confiance by S3NS che utilizzi solo per lo staging, senza pubblicare traffico, ed esegui il test su una revisione taggata.
  3. Esegui il deployment in produzione, senza pubblicare il traffico, e testa rispetto a una revisione taggata in produzione.
  4. Esegui la migrazione del traffico alla revisione taggata.

Esegui il deployment di una nuova revisione con tag

Per eseguire il deployment di una nuova revisione di un servizio esistente in produzione:

gcloud

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

Sostituisci:

  • IMAGE_URL con l'URL dell'immagine.
  • TAG_NAME con il nome del tag in minuscolo.

Il tag ti consente di testare direttamente la nuova revisione a un URL specifico, senza attivare il traffico. L'URL inizia con il nome del tag che hai fornito: ad esempio, se hai utilizzato il nome del tag green sul servizio myservice, testerai la revisione con tag all'URL https://green---myservice-abcdef.a.s3nsrun.fr

YAML

  1. Se stai creando un nuovo servizio, ignora questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Sotto l'attributo traffic, individua e aggiorna l'attributo tag corrispondente alla revisione a cui vuoi aggiungere un tag:

    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
    

    Sostituisci:

    • TAG-A, TAG-B, TAG-C con il tag associato a ogni revisione.
    • REVISION con il nome di una revisione esistente a cui vuoi inviare tutto il traffico.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

    Il comando gcloud run services replace utilizza per impostazione predefinita il file service.yaml, se presente.

Terraform

Aggiungi quanto segue al file Terraform e aggiorna gradualmente la percentuale di traffico dalla revisione precedente a quella più recente con il nuovo tag. Tieni presente che ogni modifica del traffico richiederà l'esecuzione di un altro 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"
  }
}

Applica le modifiche inserendo terraform apply.

Rimuovere un tag

Per rimuovere un tag da una revisione:

Console

  1. Nella console Cloud de Confiance by S3NS , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Seleziona un servizio nell'elenco dei servizi.

  3. Vai alla scheda Cronologia delle revisioni.

  4. Fai clic sull'icona Gestisci i tag di revisione accanto al tag che vuoi eliminare.

  5. Fai clic sull'icona Elimina per rimuovere il tag corrente utilizzato nella revisione.

  6. Fai clic su Salva.

gcloud

Per rimuovere un tag di revisione:

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

Sostituisci

  • TAG_NAME con il nome del tag verso cui stai eseguendo la migrazione del traffico
  • SERVICE con il nome del servizio da cui stai rimuovendo il tag

YAML

  1. Se stai creando un nuovo servizio, ignora questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Apporta le modifiche di configurazione desiderate al servizio.

  3. Sotto l'attributo spec, individua e rimuovi l'attributo tag per la revisione taggata:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        tag: TAG_NAME
        percent: PERCENT-NEW
    
  4. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml

Terraform

Aggiungi quanto segue al file 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 {}

  # 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"
  }
}

Applica le modifiche inserendo terraform apply.

Migrazione del traffico a una revisione con tag

Dopo aver verificato che la nuova revisione funzioni correttamente, puoi iniziare a migrare il traffico utilizzando la console Cloud de Confiance , la riga di comando Google Cloud CLI, Terraform o un file YAML:

Console

  1. Nella console Cloud de Confiance by S3NS , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Individua il servizio nell'elenco dei servizi e fai clic.

  3. Seleziona la revisione con tag a cui vuoi inviare il traffico.

  4. Fai clic su Gestisci traffico.

  5. Fai clic su Invia tutto il traffico a una revisione se vuoi che la revisione riceva il 100% del traffico o su Suddividi il traffico tra più revisioni per distribuire il traffico tra più revisioni.

  6. Seleziona le revisioni dal menu e specifica la percentuale di traffico, se applicabile.

  7. Fai clic su Salva. Non è necessario rifare il deployment per modificare le percentuali di traffico.

gcloud

Per eseguire la migrazione del traffico a un tag di revisione specifico:

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

Sostituisci

  • TAG_NAME con il nome del tag verso cui stai eseguendo la migrazione del traffico
  • TRAFFIC_PERCENT con la percentuale di traffico che vuoi che la revisione taggata gestisca, ad esempio 1.

YAML

  1. Se stai creando un nuovo servizio, ignora questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Apporta le modifiche alla configurazione scelte per il servizio.

  3. Sotto l'attributo spec, individua e aggiorna l'attributo traffic per la revisione con tag in modo che quest'ultima gestisca solo una piccola quantità di traffico:

    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
    

    Tieni presente che la somma delle percentuali deve essere pari a 100. Sostituisci

    • REVISION con il nome della revisione taggata.
    • TAG_NAME con il nome del tag che stai implementando gradualmente.
    • PERCENT-NEW con la percentuale di traffico che vuoi inviare alla revisione con tag, ad esempio utilizza 10 per inviare il 10% del traffico a quella revisione.
    • REVISION-FORMER con il nome della revisione attualmente attiva.
    • PERCENT-FORMER con la percentuale di traffico che vuoi inviare alla revisione precedente
  4. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml
  5. Attendi il completamento dell'aggiornamento: dovresti visualizzare un messaggio che indica che la nuova revisione che stai implementando gradualmente è stata eseguita e sta pubblicando il valore della percentuale di traffico che hai utilizzato.

Terraform

Aggiungi quanto segue al tuo file .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"
  }
}

Nell'arco di ore o giorni, a seconda delle necessità, esegui gradualmente l'aggiornamento da un tag all'altro, aumentando la percentuale in base alle esigenze per la revisione con tag.

Applica inserendo terraform apply dopo ogni modifica.

Passaggi successivi