Deployment in Cloud Run

Questa pagina descrive come eseguire il deployment delle immagini container in un nuovo servizio Cloud Run o in una nuova revisione di un servizio Cloud Run esistente.

Per una procedura dettagliata di esempio sul deployment di un nuovo servizio, consulta la guida rapida al deployment di un container di esempio.

Prima di iniziare

Se un criterio dell'organizzazione con limitazioni di dominio limita le chiamate non autenticate per il tuo progetto, dovrai accedere al servizio di cui è stato eseguito il deployment come descritto in Test dei servizi privati.

Autorizzazioni richieste per il deployment

Devi disporre di UNO dei seguenti:

  • Proprietario
  • Editor
  • Entrambi i ruoli Amministratore Cloud Run e Utente account di servizio
  • Qualsiasi ruolo personalizzato che include questo elenco specifico di autorizzazioni

Immagini e registri di container supportati

Puoi utilizzare immagini container archiviate in Artifact Registry, Container Registry (Deprecato) o Docker Hub. Google consiglia l'utilizzo di Artifact Registry.

Puoi utilizzare solo i seguenti tipi di immagini container:

Dovresti prendere in considerazione Docker Hub solo per il deployment di immagini container popolari, come Immagini ufficiali Docker o Immagini Docker Sponsorizzate. Per una maggiore disponibilità, Google consiglia di eseguire il deployment di queste immagini Docker Hub tramite un repository remoto di Artifact Registry.

Se archivi immagini container in un altro tipo di Container Registry, segui le istruzioni riportate in Eseguire il deployment di immagini da registry non supportati.

Deployment di un nuovo servizio

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 in un servizio per la prima volta viene creata la prima revisione. Tieni presente che le revisioni sono immutabili. Se esegui il deployment da un tag immagine container, questo verrà risolto in un digest e la revisione fornirà sempre questo digest particolare.

Puoi eseguire il deployment di un container utilizzando la console Google Cloud, la riga di comando gcloud o un file di configurazione YAML.

Fai clic sulla scheda per visualizzare le istruzioni relative all'utilizzo dello strumento scelto.

Console

Per eseguire il deployment di un'immagine container:

  1. Vai a Cloud Run

  2. Fai clic su Crea servizio per visualizzare il modulo Crea servizio.

    1. Nel modulo, seleziona l'opzione di deployment:

      1. Se vuoi eseguire il deployment manuale di un container, seleziona Esegui il deployment di una revisione da un'immagine container esistente e specifica l'immagine del container.

      2. Se vuoi automatizzare il deployment continuo, seleziona Esegui il deployment continuo di nuove revisioni da un repository di codice sorgente e segui le istruzioni per i deployment continui.

    2. Inserisci il nome del servizio necessario. I nomi dei servizi devono contenere al massimo 49 caratteri e devono essere univoci per ogni regione e progetto. Il nome di un servizio non può essere modificato in un secondo momento ed è visibile pubblicamente.

    3. Seleziona la regione in cui vuoi collocare il servizio. Il selettore della regione indica la livello di prezzo, la disponibilità delle mappature dei domini ed evidenzia le regioni con l'impatto delle emissioni di carbonio più basso.

    4. Imposta l'allocazione e i prezzi della CPU in base alle tue esigenze.

    5. In Scalabilità automatica, specifica le istanze minime e massime.

    6. Configura le impostazioni In entrata nel modulo in base alle tue esigenze.

    7. In Autenticazione, configura quanto segue:

      • Se stai creando un'API o un sito web pubblici, seleziona Consenti chiamate non autenticate. Selezionando questa opzione si assegna il ruolo Invoker IAM all'identificatore speciale allUser. Puoi utilizzare IAM per modificare questa impostazione in un secondo momento, dopo aver creato il servizio.
      • Se vuoi che il servizio sia protetto dall'autenticazione, seleziona Richiedi autenticazione.
  3. Fai clic su Container, volumi, networking, sicurezza per configurare altre impostazioni facoltative nelle schede appropriate:

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

  5. Fai clic sul link dell'URL visualizzato per aprire l'endpoint univoco e stabile del servizio di cui hai eseguito il deployment.

Riga di comando

  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 che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

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

    1. Esegui questo comando:

      gcloud run deploy SERVICE --image IMAGE_URL

      • Sostituisci SERVICE con il nome del servizio in cui vuoi eseguire il deployment. I nomi dei servizi devono contenere al massimo 49 caratteri e devono essere univoci per ogni regione e progetto. Se il servizio non esiste ancora, questo comando crea il servizio durante il deployment. Puoi omettere completamente questo parametro, ma se lo ometti ti verrà richiesto il nome del servizio.
      • Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, è necessario già creare il repository REPO_NAME. L'URL ha la forma REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. Tieni presente che se non fornisci il flag --image, il comando di deployment tenterà di eseguire il deployment dal codice sorgente.

      Se stai creando un'API o un sito web pubblici, consenti chiamate non autenticate al tuo servizio utilizzando il flag --allow-unauthenticated. Questo assegna il ruolo IAM Invoker di Cloud Run a allUsers. Puoi anche specificare --no-allow-unauthenticated per non consentire le chiamate non autenticate. Se ometti uno di questi flag, ti verrà chiesto di confermare quando viene eseguito il comando deploy.

    2. Attendi il completamento del deployment. Al termine, viene visualizzato un messaggio di operazione riuscita insieme all'URL del servizio di cui è stato eseguito il deployment.

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

    • gcloud run deploy SERVICE --region REGION

YAML

Puoi archiviare la specifica del servizio in un file YAML e quindi eseguirne il deployment utilizzando gcloud CLI.

  1. Crea un nuovo file service.yaml con i seguenti contenuti:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    Sostituisci

    • SERVICE con il nome del tuo servizio Cloud Run. I nomi dei servizi devono contenere al massimo 49 caratteri e devono essere univoci per ogni regione e progetto.
    • IMAGE con l'URL dell'immagine container.

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

  2. Esegui il deployment del nuovo servizio utilizzando questo comando:

    gcloud run services replace service.yaml
  3. Se vuoi, imposta il servizio come pubblico se vuoi consentire l'accesso non autenticato al servizio.

Cloud Code

Per eseguire il deployment con Cloud Code, leggi le guide di IntelliJ e Visual Studio Code.

Terraform

Se usi Terraform, definisci il servizio in una configurazione Terraform utilizzando la risorsa google_cloud_run_v2_service del provider Google Cloud Platform.

  1. Crea un nuovo file main.tf con questi contenuti:

    provider "google" {
      project = "PROJECT-ID"
    }
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "SERVICE"
      location = "REGION"
      client   = "terraform"
    
      template {
        containers {
          image = "IMAGE"
        }
      }
    }
    
    resource "google_cloud_run_v2_service_iam_member" "noauth" {
      location = google_cloud_run_v2_service.default.location
      name     = google_cloud_run_v2_service.default.name
      role     = "roles/run.invoker"
      member   = "allUsers"
    }
    

    Sostituisci

    • PROJECT-ID con l'ID progetto Google Cloud
    • REGION con la regione Google Cloud
    • SERVICE con il nome del tuo servizio Cloud Run. I nomi dei servizi devono contenere al massimo 49 caratteri e devono essere univoci per ogni regione e progetto.
    • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, è necessario già creare il repository REPO_NAME. L'URL ha la forma REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

    Questa configurazione consente l'accesso pubblico (l'equivalente di --allow-unauthenticated). Per rendere privato il servizio, rimuovi la stanza google_cloud_run_v2_service_iam_member.

  2. Inizializza Terraform:

    terraform init
  3. Applica la configurazione Terraform:

    terraform apply

    Conferma di voler applicare le azioni descritte inserendo yes.

Librerie client

Per eseguire il deployment di un nuovo servizio da codice:

API REST

Per eseguire il deployment di un nuovo servizio, invia una richiesta HTTP POST all'endpoint service dell'API Cloud Run Admin.

Ad esempio, utilizzando curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services?serviceId=SERVICE

Sostituisci:

  • ACCESS_TOKEN con un token di accesso valido per un account che dispone delle autorizzazioni IAM per il deployment dei servizi. Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando gcloud auth print-access-token. Dall'interno di un'istanza di container Cloud Run, puoi recuperare un token di accesso utilizzando il server di metadati dell'istanza di container.
  • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, è necessario già creare il repository REPO_NAME. L'URL ha la forma REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • SERVICE con il nome del servizio in cui vuoi eseguire il deployment. I nomi dei servizi devono contenere al massimo 49 caratteri e devono essere univoci per ogni regione e progetto.
  • REGION con la regione Google Cloud del servizio.
  • PROJECT-ID con l'ID progetto Google Cloud.

Località di Cloud Run

Cloud Run è regionale, il che significa che l'infrastruttura che esegue i tuoi servizi Cloud Run si trova in una regione specifica ed è gestita da Google per essere disponibile in modo ridondante in tutte le zone all'interno di quella regione.

Soddisfare i requisiti di latenza, disponibilità o durabilità sono fattori principali per selezionare la regione in cui vengono eseguiti i servizi Cloud Run. In genere, puoi selezionare la regione più vicina ai tuoi utenti, ma ti consigliamo di considerare la località degli altri prodotti Google Cloud utilizzati dal tuo servizio Cloud Run. L'utilizzo combinato di prodotti Google Cloud in più località può influire sulla latenza e sui costi del tuo servizio.

Cloud Run è disponibile nelle seguenti regioni:

Soggetto ai prezzi di Livello 1

Soggetto ai prezzi di Livello 2

  • africa-south1 (Johannesburg)
  • asia-east2 (Hong Kong)
  • asia-northeast3 (Seul, Corea del Sud)
  • asia-southeast1 (Singapore)
  • asia-southeast2 (Giacarta)
  • asia-south1 (Mumbai, India)
  • asia-south2 (Delhi, India)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Varsavia, Polonia)
  • europe-west10 (Berlino)
  • europe-west12 (Torino)
  • europe-west2 (Londra, Regno Unito) icona foglia A basse emissioni di CO2
  • europe-west3 (Francoforte, Germania) icona foglia A basse emissioni di CO2
  • europe-west6 (Zurigo, Svizzera) icona foglia A basse emissioni di CO2
  • me-central1 (Doha)
  • me-central2 (Dammam)
  • northamerica-northeast1 (Montreal) icona foglia A basse emissioni di CO2
  • northamerica-northeast2 (Toronto) icona foglia A basse emissioni di CO2
  • southamerica-east1 (San Paolo, Brasile) icona foglia A basse emissioni di CO2
  • southamerica-west1 (Santiago, Cile) icona foglia A basse emissioni di CO2
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)

Se hai già creato un servizio Cloud Run, puoi visualizzare la regione nella dashboard di Cloud Run nella console Google Cloud.

Durante il deployment, l'agente di servizio Cloud Run deve essere in grado di accedere al container di cui è stato eseguito il deployment, che è il caso per impostazione predefinita.

Ogni servizio ha un URL univoco e permanente che non cambia nel tempo con il deployment delle nuove revisioni.

Deployment di una nuova revisione di un servizio esistente

Puoi eseguire il deployment di una nuova revisione utilizzando la console Google Cloud, la riga di comando gcloud o un file di configurazione YAML.

Tieni presente che la modifica delle impostazioni di configurazione comporta la creazione di una nuova revisione, anche se non sono state apportate modifiche all'immagine container. Ogni revisione creata è immutabile.

Fai clic sulla scheda per visualizzare le istruzioni relative all'utilizzo dello strumento scelto.

Console

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

  1. Vai a Cloud Run

  2. Individua il servizio che vuoi aggiornare nell'elenco dei servizi e fai clic per aprire i relativi dettagli.

  3. Fai clic su Modifica ed esegui il deployment di nuova revisione per visualizzare il modulo di deployment della revisione.

    1. Se necessario, fornisci l'URL della nuova immagine container di cui vuoi eseguire il deployment.

    2. Configura il container in base alle tue esigenze.

    3. Imposta l'allocazione e i prezzi della CPU in base alle tue esigenze.

    4. In Capacità, specifica Limiti di memoria e Limiti CPU.

    5. Specifica il timeout della richiesta e la contemporaneità in base alle esigenze.

    6. Specifica l'ambiente di esecuzione in base alle esigenze.

    7. In Scalabilità automatica, specifica le istanze minime e massime.

    8. Utilizza le altre schede in base alle esigenze per configurare facoltativamente:

  4. Per inviare tutto il traffico alla nuova revisione, seleziona Gestisci subito questa revisione. Per implementare gradualmente una nuova revisione, deseleziona la casella di controllo. Questo porta a un deployment in cui non viene inviato traffico alla nuova revisione. Segui le istruzioni per le implementazioni graduali dopo il deployment.

  5. Fai clic su Esegui il deployment e attendi il completamento del deployment.

Riga di comando

  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 che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

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

    1. Esegui il comando:

      gcloud run deploy SERVICE --image IMAGE_URL

      • Sostituisci SERVICE con il nome del servizio in cui stai eseguendo il deployment. Puoi omettere completamente questo parametro, ma se lo ometti ti verrà richiesto il nome del servizio.
      • Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, è necessario già creare il repository REPO_NAME. L'URL ha la forma REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

      Il suffisso della revisione viene assegnato automaticamente per le nuove revisioni. Se vuoi fornire un suffisso di revisione personalizzato, utilizza il parametro gcloud CLI --revision-suffix.

    2. Attendi il completamento del deployment. Al termine, viene visualizzato un messaggio di operazione riuscita insieme all'URL del servizio di cui è stato eseguito il deployment.

YAML

Se devi scaricare o visualizzare la configurazione di un servizio esistente, usa il comando seguente per salvare i risultati in un file YAML:

gcloud run services describe SERVICE --format export > service.yaml

Da un file YAML di configurazione del servizio, modifica tutti gli attributi secondari spec.template in base alle esigenze per aggiornare le impostazioni di revisione, quindi esegui il deployment della nuova revisione:

gcloud run services replace service.yaml

Cloud Code

Per eseguire il deployment di una nuova revisione di un servizio esistente con Cloud Code, leggi le guide di IntelliJ e Visual Studio Code.

Terraform

Assicurati di aver configurato Terraform come descritto nell'esempio Deployment di un nuovo servizio.

  1. Apporta una modifica al file di configurazione.

  2. Applica la configurazione Terraform:

    terraform apply

    Conferma di voler applicare le azioni descritte inserendo yes.

Librerie client

Per eseguire il deployment di una nuova revisione dal codice:

API REST

Per eseguire il deployment di una nuova revisione, invia una richiesta HTTP PATCH all'endpoint service dell'API Cloud Run Admin.

Ad esempio, utilizzando curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X PATCH \
  -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE

Sostituisci:

  • ACCESS_TOKEN con un token di accesso valido per un account che dispone delle autorizzazioni IAM per il deployment delle revisioni. Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando gcloud auth print-access-token. Dall'interno di un'istanza di container Cloud Run, puoi recuperare un token di accesso utilizzando il server di metadati dell'istanza di container.
  • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, è necessario già creare il repository REPO_NAME. L'URL ha la forma REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • SERVICE con il nome del servizio in cui stai eseguendo il deployment.
  • REGION con la regione Google Cloud del servizio.
  • PROJECT-ID con l'ID progetto Google Cloud.

Località di Cloud Run

Cloud Run è regionale, il che significa che l'infrastruttura che esegue i tuoi servizi Cloud Run si trova in una regione specifica ed è gestita da Google per essere disponibile in modo ridondante in tutte le zone all'interno di quella regione.

Soddisfare i requisiti di latenza, disponibilità o durabilità sono fattori principali per selezionare la regione in cui vengono eseguiti i servizi Cloud Run. In genere, puoi selezionare la regione più vicina ai tuoi utenti, ma ti consigliamo di considerare la località degli altri prodotti Google Cloud utilizzati dal tuo servizio Cloud Run. L'utilizzo combinato di prodotti Google Cloud in più località può influire sulla latenza e sui costi del tuo servizio.

Cloud Run è disponibile nelle seguenti regioni:

Soggetto ai prezzi di Livello 1

Soggetto ai prezzi di Livello 2

  • africa-south1 (Johannesburg)
  • asia-east2 (Hong Kong)
  • asia-northeast3 (Seul, Corea del Sud)
  • asia-southeast1 (Singapore)
  • asia-southeast2 (Giacarta)
  • asia-south1 (Mumbai, India)
  • asia-south2 (Delhi, India)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Varsavia, Polonia)
  • europe-west10 (Berlino)
  • europe-west12 (Torino)
  • europe-west2 (Londra, Regno Unito) icona foglia A basse emissioni di CO2
  • europe-west3 (Francoforte, Germania) icona foglia A basse emissioni di CO2
  • europe-west6 (Zurigo, Svizzera) icona foglia A basse emissioni di CO2
  • me-central1 (Doha)
  • me-central2 (Dammam)
  • northamerica-northeast1 (Montreal) icona foglia A basse emissioni di CO2
  • northamerica-northeast2 (Toronto) icona foglia A basse emissioni di CO2
  • southamerica-east1 (San Paolo, Brasile) icona foglia A basse emissioni di CO2
  • southamerica-west1 (Santiago, Cile) icona foglia A basse emissioni di CO2
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)

Se hai già creato un servizio Cloud Run, puoi visualizzare la regione nella dashboard di Cloud Run nella console Google Cloud.

Deployment di immagini da altri progetti Google Cloud

Puoi eseguire il deployment di immagini container da altri progetti Google Cloud se imposti le autorizzazioni IAM corrette:

  1. Nella console Google Cloud, apri il progetto per il tuo servizio Cloud Run.

    Vai alla pagina IAM

  2. Seleziona Includi concessioni di ruoli fornite da Google.

  3. Copia l'email dell'agente di servizio Cloud Run. Ha il suffisso @serverless-robot-prod.iam.gserviceaccount.com

  4. Apri il progetto proprietario del Container Registry che vuoi utilizzare.

    Vai alla pagina IAM

  5. Fai clic su Aggiungi per aggiungere una nuova entità.

  6. Nel campo Nuove entità, incolla l'email dell'account di servizio copiato in precedenza.

  7. Nel menu a discesa Seleziona un ruolo, se utilizzi Container Registry, seleziona il ruolo Storage -> Visualizzatore oggetti Storage. Se utilizzi Artifact Registry, seleziona il ruolo Artifact Registry -> Lettore Artifact Registry.

  8. Esegui il deployment dell'immagine container nel progetto che contiene il tuo servizio Cloud Run.

Deployment di immagini da registry non supportati

Se archivi immagini container in un registro di container pubblico o privato non supportato, eseguine temporaneamente il push in Artifact Registry utilizzando docker push per eseguirne il deployment su Cloud Run. L'immagine container viene importata da Cloud Run al momento del deployment, quindi dopo il deployment puoi eliminare l'immagine da Artifact Registry.

Deployment di più container in un servizio (collaterali)

In un deployment Cloud Run con file collaterali, è presente un container ingress che gestisce tutte le richieste HTTPS in entrata nella PORT del container specificata e uno o più container sidecar. I file collaterali non possono rimanere in ascolto per le richieste HTTP in entrata sulla porta del container in entrata, ma possono comunicare tra loro e con il container in entrata utilizzando una porta localhost. La porta localhost utilizzata varia a seconda dei container in uso.

Nel diagramma seguente, il container in entrata comunica con il file collaterale utilizzando localhost:5000.

Cloud Run multicontainer

Puoi eseguire il deployment di un massimo di 10 container per istanza, incluso il container in entrata. Tutti i container all'interno di un'istanza condividono lo stesso spazio dei nomi di rete e possono anche condividere i file utilizzando volumi condivisi in memoria, come mostrato nel diagramma.

Puoi eseguire il deployment di più container nell'ambiente di esecuzione di prima o seconda generazione.

Casi d'uso

I casi d'uso per i file collaterali in un servizio Cloud Run includono:

  • Monitoraggio, logging e tracciamento delle applicazioni
  • Utilizzo di Nginx, Envoy o Apache2 come proxy per il container dell'applicazione
  • Aggiunta di filtri di autenticazione e autorizzazione (ad esempio, Open Policy Agent)
  • Esecuzione dei proxy di connessione in uscita come il proxy di autenticazione Alloy DB

Deployment di un servizio con container collaterali

Puoi eseguire il deployment di più file collaterali in un servizio Cloud Run utilizzando la console Google Cloud, Google Cloud CLI o YAML.

Console

  1. Vai a Cloud Run

    • Per eseguire il deployment in un servizio esistente, individualo nell'elenco dei servizi e fai clic per aprirlo, poi fai clic su MODIFICA E DEPLOY NUOVA REVISIONE per visualizzare il modulo di deployment della revisione.
    • Per eseguire il deployment in un nuovo servizio, fai clic su Crea servizio.
  2. Per un nuovo servizio,

    1. Fornisci il nome del servizio e l'URL all'immagine container in entrata di cui vuoi eseguire il deployment.
    2. Fai clic su Container, volumi, networking, sicurezza
  3. Nella scheda Modifica contenitore, configura il contenitore in entrata in base alle tue esigenze.

  4. Fai clic su Aggiungi container e configura un container collaterale da aggiungere insieme al container in entrata. Se il file collaterale dipende da un altro container nel servizio, indicalo nel menu a discesa Ordine di avvio del container. Ripeti questo passaggio per ogni container collaterale di cui esegui il deployment.

  5. Per inviare tutto il traffico alla nuova revisione, seleziona Gestisci subito questa revisione. Per un'implementazione graduale, deseleziona la casella di controllo. Ciò porta a un deployment in cui non viene inviato traffico alla nuova revisione. Segui le istruzioni per le implementazioni graduali dopo il deployment.

  6. Fai clic su Crea per un nuovo servizio o su Esegui il deployment per un servizio esistente, quindi attendi il completamento del deployment.

Riga di comando

I parametri container in Google Cloud CLI sono in anteprima.

  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 che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Per eseguire il deployment di più container in un servizio, esegui questo comando:

    gcloud beta run deploy SERVICE \
     --container INGRESS_CONTAINER_NAME
     --image='INGRESS_IMAGE' \
     --port='CONTAINER_PORT' \
     --container SIDECAR_CONTAINER_NAME \
     --image='SIDECAR_IMAGE'
    • Sostituisci SERVICE con il nome del servizio in cui stai eseguendo il deployment. Puoi omettere completamente questo parametro, ma se lo ometti ti verrà richiesto il nome del servizio.
    • Sostituisci INGRESS_CONTAINER_NAME con un nome per il container che riceve le richieste, ad esempio app.
    • Sostituisci INGRESS_IMAGE con un riferimento all'immagine container che dovrebbe ricevere le richieste, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest.
    • Sostituisci SIDECAR_CONTAINER_NAME con un nome per il container collaterale, ad esempio sidecar.
    • Sostituisci SIDECAR_IMAGE con un riferimento all'immagine del container collaterale

    Se vuoi configurare ogni container nel comando di deployment, fornisci la configurazione di ogni container dopo i parametri container, ad esempio:

    gcloud beta run deploy SERVICE \
      --container CONTAINER_1_NAME
      --image='INGRESS_IMAGE' \
      --set-env-vars=KEY=VALUE \
      --port='CONTAINER_PORT' \
      --container SIDECAR_CONTAINER_NAME
      --image='SIDECAR_IMAGE' \
      --set-env-vars=KEY_N=VALUE_N
  3. Attendi il completamento del deployment. Al termine, viene visualizzato un messaggio di operazione riuscita insieme all'URL del servizio di cui è stato eseguito il deployment.

YAML

Queste istruzioni mostrano un file YAML di base per il tuo servizio Cloud Run con file collaterali. Crea un file denominato service.yaml e aggiungi quanto segue:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
  name: SERVICE_NAME
spec:
  template:
    spec:
      containers:
      - image: INGRESS_IMAGE
        ports:
          - containerPort: CONTAINER_PORT
      - image: SIDECAR_IMAGE
      

Sostituisci

  • SERVICE con il nome del tuo servizio Cloud Run. I nomi dei servizi devono contenere al massimo 49 caratteri.
  • CONTAINER_PORT con la porta in cui il container in entrata rimane in ascolto per le richieste in entrata. Devi specificare una porta. A differenza di un servizio con container singolo, per un servizio che contiene file collaterali non esiste una porta predefinita per il container in entrata.
  • INGRESS_IMAGE con un riferimento all'immagine container che deve ricevere richieste, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest.
  • SIDECAR_IMAGE con un riferimento all'immagine del container collaterale. Puoi specificare più file collaterali aggiungendo altri elementi all'array containers nel codice YAML.

Dopo aver aggiornato il file YAML in modo da includere i container in entrata e collaterali, esegui il deployment in Cloud Run utilizzando il comando:

gcloud run services replace service.yaml

Funzionalità rilevanti disponibili per i deployment con file collaterali

Puoi specificare l'ordine di avvio del container in un deployment con più container, se hai dipendenze che richiedono l'avvio di alcuni container prima di altri container nel deployment.

Se i container dipendono da altri container, devi utilizzare i controlli di integrità nel deployment. Se utilizzi i controlli di integrità, Cloud Run segue l'ordine di avvio dei container ed esamina l'integrità di ogni container, assicurandosi che venga eseguito correttamente prima che Cloud Run avvii il container successivo nell'ordine. Se non utilizzi i controlli di integrità, i container in stato integro verranno avviati anche se i container da cui dipendono non sono in esecuzione.

Più container all'interno di una singola istanza possono accedere a un volume in memoria condiviso, accessibile a ciascun container mediante i punti di montaggio creati da te.

Passaggi successivi

Dopo aver eseguito il deployment di un nuovo servizio, puoi:

Puoi automatizzare le build e i deployment dei tuoi servizi Cloud Run utilizzando i trigger di Cloud Build:

Puoi anche utilizzare Cloud Deploy per configurare una pipeline di distribuzione continua per eseguire il deployment dei servizi Cloud Run in più ambienti: