Esegui il deployment dei worker pool in Cloud Run

Questa pagina mostra come eseguire il deployment di immagini container in un nuovo pool di worker Cloud Run o in una nuova revisione di un pool di worker Cloud Run esistente.

I pool di worker sono una risorsa Cloud Run progettata specificamente per l'esecuzione di operazioni continue in background. A differenza dei servizi Cloud Run, i pool di worker non hanno un endpoint/URL bilanciato e non supportano la scalabilità automatica.

Per un esempio dettagliato del deployment di un nuovo worker pool, consulta Guida rapida per il deployment di un worker pool di esempio.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire il deployment dei pool di worker Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Cloud Run Developer (roles/run.developer) sul pool di worker Cloud Run
  • Service Account User (roles/iam.serviceAccountUser) sull'identità utilizzata dai pool di worker per interagire con altri servizi Google Cloud
  • Lettore Artifact Registry (roles/artifactregistry.reader) sul repository Artifact Registry dell'immagine container di cui è stato eseguito il deployment

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 pool di worker Cloud Run interagisce con le APIGoogle Cloud , 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.

Registri e immagini container supportati

Puoi utilizzare direttamente le immagini container archiviate in Artifact Registry o le immagini pubbliche di Docker Hub o GitHub Container Registry. Google consiglia l'utilizzo di Artifact Registry. Le immagini pubbliche di GitHub Container Registry e le immagini Docker Hub vengono memorizzate nella cache per un massimo di un'ora.

Puoi utilizzare immagini container da altri registri pubblici o privati (come JFrog Artifactory o Nexus) o immagini private da GitHub Container Registry configurando un repository remoto di Artifact Registry.

Devi prendere in considerazione solo Docker Hub per il deployment di immagini container popolari come le immagini ufficiali Docker o le immagini OSS sponsorizzate da Docker. Per una maggiore disponibilità, Google consiglia di eseguire il deployment di queste immagini di Docker Hub o GitHub Container Registry utilizzando un repository remoto di Artifact Registry.

Cloud Run non supporta i livelli di immagini container di dimensioni superiori a 9,9 GB quando esegui il deployment da Docker Hub o da un repository remoto Artifact Registry con un registro esterno.

Esegui il deployment dei worker pool

Puoi eseguire il deployment dei pool di worker nei seguenti modi:

Esegui il deployment di un nuovo worker pool

Puoi specificare un'immagine container con un tag (ad esempio us-docker.pkg.dev/my-project/container/my-image:latest) o con un digest esatto (ad esempio us-docker.pkg.dev/my-project/container/my-image@sha256:41f34ab970ee...).

Eseguendo il deployment di un pool di worker per la prima volta viene creata la prima revisione. Tieni presente che le revisioni sono immutabili. Se esegui il deployment dal tag di un'immagine container, verrà risolto in un digest e la revisione gestirà sempre questo particolare digest.

Segui le istruzioni utilizzando la console Google Cloud , Google Cloud CLI, Terraform o l'API REST:

Console

  1. Nella console Google Cloud , vai a Cloud Run:

    Vai a Cloud Run

  2. Seleziona Worker pool dal menu e fai clic su Esegui il deployment del container per visualizzare il modulo Crea worker pool.

    1. Nel modulo, specifica l'immagine container.

    2. Inserisci il nome del pool di worker. I nomi dei pool di lavoratori devono contenere al massimo 49 caratteri e devono essere univoci per regione e progetto. Non puoi condividere lo stesso nome di un nome di servizio esistente del tuo progetto. Il nome di un pool di worker non può essere modificato in un secondo momento ed è visibile pubblicamente.

    3. Seleziona la regione in cui vuoi che si trovi il worker. Il selettore di regioni indica la fascia di prezzo ed evidenzia le regioni con l'impronta di carbonio più bassa.

    4. In Scalabilità, specifica il numero di istanze per il pool di worker.

  3. Fai clic su Container, networking, sicurezza per impostare altre impostazioni facoltative nelle schede appropriate:

  4. Al termine della configurazione del pool di worker, fai clic su Crea per eseguire il deployment dell'immagine su Cloud Run e attendi il completamento del deployment.

gcloud

  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Per eseguire il deployment di un'immagine container del pool di worker:

    1. Esegui questo comando:

      gcloud run worker-pools deploy WORKER_POOL --image IMAGE_URL 

      Sostituisci quanto segue:

      • WORKER_POOL: il nome del worker pool in cui vuoi eseguire il deployment. Se il worker pool non esiste ancora, questo comando lo crea durante il deployment. Puoi omettere completamente questo parametro, ma ti verrà chiesto il nome del pool di worker se lo ometti. I nomi dei pool di lavoratori devono avere un massimo di 49 caratteri, utilizzare un nome univoco per regione e progetto e non devono condividere lo stesso nome di un nome di servizio esistente del tuo progetto.
      • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest. Tieni presente che se non fornisci il flag --image, il comando di deployment tenta di eseguire il deployment dal codice sorgente.
    2. Attendi il completamento del deployment. Al termine dell'operazione, Cloud Run mostra un messaggio di operazione riuscita insieme alle informazioni sulla revisione del pool di worker di cui è stato eseguito il deployment.

      Per eseguire il deployment in una località diversa da quella impostata utilizzando le proprietà run/region gcloud, utilizza:

      gcloud run worker-pools deploy WORKER_POOL --region REGION

YAML

Puoi archiviare la specifica del pool di worker in un file YAML ed eseguirne il deployment utilizzando gcloud CLI.

  1. Crea un nuovo file worker-pool.yaml con il seguente contenuto:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    Sostituisci quanto segue:

    • WORKER_POOL: il nome del pool di worker Cloud Run.
    • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

    Puoi anche specificare più configurazioni, ad esempio variabili di ambiente o limiti di memoria.

  2. Esegui il deployment del nuovo worker pool utilizzando il seguente comando:

    gcloud run worker-pools replace worker-pool.yaml

    Il comando gcloud run worker-pools replace utilizza per impostazione predefinita il file worker-pool.yaml, se presente.

Terraform

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

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }
}

Sostituisci quanto segue:

  • WORKER_POOL: il nome del pool di worker.
  • REGION: la Google Cloud regione, ad esempio europe-west1.
  • IMAGE_URL: un riferimento all'immagine container che contiene il pool di worker, ad esempio us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

API REST

Per eseguire il deployment di un nuovo pool di worker, invia una richiesta HTTP POST all'endpoint create dei pool di worker dell'API Cloud Run Admin.

Ad esempio, utilizzando curl:

curl -H