Gestire i servizi Cloud Run

Cloud Run ti consente di eseguire il deployment e l'esecuzione di applicazioni containerizzate con scalabilità automatica ed endpoint permanenti. All'interno di un progetto, puoi creare, visualizzare, copiare, disattivare ed eliminare i servizi per gestire i tuoi workload.

Ogni servizio riceve un URL s3nsrun.fr univoco e permanente che persiste nelle nuove revisioni. Anche le funzioni di cui viene eseguito il deployment in Cloud Run vengono trattate come servizi e viene assegnato loro un indirizzo s3nsrun.fr contenente il nome del servizio e un hash.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire i servizi e le revisioni Cloud Run, chiedi all'amministratore di concederti il ruolo IAM Cloud Run Developer (roles/run.developer) sul tuo servizio Cloud Run.

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.

Crea un servizio

Crei un nuovo servizio eseguendo il deployment di un'immagine container per la prima volta. Per saperne di più, consulta Esegui il deployment di un nuovo servizio.

Visualizza l'elenco dei servizi nel progetto

Puoi visualizzare un elenco dei servizi disponibili nel tuo progetto utilizzando la console Cloud de Confiance o Google Cloud CLI:

Console

Per visualizzare l'elenco dei servizi:

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

    Vai a Cloud Run

  2. Esamina l'elenco dei servizi visualizzati per il tuo progetto.

gcloud

Per elencare i servizi nel tuo progetto:

gcloud run services list

Tieni presente che a ogni servizio è associato un URL.

Puoi filtrare questo elenco in base alle proprietà della definizione del servizio, ad esempio un'etichetta assegnata.

Cloud Code

Per visualizzare l'elenco dei servizi con Cloud Code, leggi le guide di Explorer di Cloud Run per IntelliJ e Visual Studio Code.

Librerie client

Per visualizzare l'elenco dei servizi dal codice:

API REST

Per visualizzare l'elenco dei servizi nel tuo progetto, invia una richiesta HTTP GET all' endpointservice dell'API Cloud Run Admin.

Ad esempio, utilizzando curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X GET \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services

Sostituisci:

  • ACCESS_TOKEN con un token di accesso valido per un account che dispone delle autorizzazioni IAM per visualizzare i servizi. Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando gcloud auth print-access-token. All'interno di un'istanza container di Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container.
  • REGION con la Cloud de Confiance regione del servizio.
  • PROJECT-ID con l'ID progetto Cloud de Confiance .

Visualizzare l'elenco delle funzioni nel progetto

Puoi visualizzare un elenco delle funzioni disponibili nel tuo progetto utilizzando la consoleCloud de Confiance :

Console

Per filtrare le funzioni nell'elenco dei servizi:

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

    Vai a Cloud Run

  2. Seleziona Filtra servizi > Tipo di deployment > Funzione.

    Se hai eseguito il deployment della funzione in precedenza utilizzando l'API Cloud Functions v2, la colonna Deployment eseguito da mostrerà Cloud Functions.

Copia un servizio

Puoi creare una copia di un servizio esistente utilizzando la console Cloud de Confiance o YAML. Puoi modificare qualsiasi elemento della copia, inclusi nome e regione.

Console

Per copiare un servizio:

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

    Vai a Cloud Run

  2. Seleziona la casella di controllo accanto al servizio da copiare dall'elenco dei servizi visualizzato per il tuo progetto.

  3. Fai clic su Copia.

  4. Nella pagina di copia del servizio, imposta o modifica i valori che vuoi cambiare, come la regione e così via. Se mantieni la stessa regione, devi fornire un nuovo nome per il servizio.

  5. Fai clic su Crea per creare una copia e eseguirne il deployment utilizzando il nuovo 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. Apporta le seguenti modifiche alla configurazione del servizio.

     apiVersion: serving.knative.dev/v1
     kind: Service
     metadata:
       annotations:
         ...
       name: SERVICE
       ...
     spec:
       template:
         metadata:
           annotations:
           ...
           name: REVISION
    
    • Se non esegui il deployment della copia in un'altra regione, sostituisci SERVICE con il nome che vuoi utilizzare per la copia. Se stai eseguendo il deployment della copia in un'altra regione, puoi utilizzare il nome precedente.
    • Sostituisci REVISION: un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome per la revisione, questo deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Contiene solo lettere minuscole, numeri e -
      • Non termina con -
      • Non supera i 63 caratteri
  3. Copia il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

    Utilizza il flag --region per eseguire il deployment della copia in un'altra regione.

Visualizza altri dettagli su un servizio

Puoi visualizzare ulteriori dettagli su un servizio utilizzando la console Cloud de Confiance , Google Cloud CLI, il file YAML o l'API REST:

Console

Per visualizzare i dettagli di un servizio:

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

    Vai a Cloud Run

  2. Fai clic sul servizio nell'elenco visualizzato per aprire la visualizzazione dei dettagli del servizio.

gcloud

Per visualizzare i dettagli di un servizio:

gcloud run services describe SERVICE
Sostituisci SERVICE con il nome del servizio.

Puoi utilizzare il flag --format per formattare l'output. Ad esempio, come YAML:

gcloud run services describe SERVICE --region REGION --format yaml

Sostituisci:

  • SERVICE con il nome del servizio.
  • REGION con la regione Cloud de Confiance del servizio.

Puoi utilizzare --format export per esportare come YAML senza etichette o stato generati automaticamente:

gcloud run services describe SERVICE --region REGION --format export

Puoi anche utilizzare il flag --format per ottenere l'URL del servizio:

gcloud run services describe SERVICE --region REGION --format='value(status.url)'

Cloud Code

Per visualizzare i dettagli di un servizio con Cloud Code, leggi le guide di Cloud Run Explorer per IntelliJ e Visual Studio Code.

Per maggiori dettagli sulle revisioni del servizio, consulta Gestione delle revisioni.

Librerie client

Per visualizzare i dettagli di un servizio dal codice:

API REST

Per visualizzare i dettagli di un servizio, invia una richiesta HTTP GET all'endpoint service dell'API Cloud Run Admin.

Ad esempio, utilizzando curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X GET \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME

Sostituisci:

  • ACCESS_TOKEN con un token di accesso valido per un account che dispone delle autorizzazioni IAM per visualizzare i dettagli del servizio. Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando gcloud auth print-access-token. Da un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container.
  • SERVICE-NAME con il nome del servizio.
  • REGION con la regione Cloud de Confiance del servizio.
  • PROJECT-ID con l'ID progetto Cloud de Confiance .

Disattivare un servizio esistente

Per ottenere le autorizzazioni necessarie per disattivare un servizio e una revisione Cloud Run esistenti, chiedi all'amministratore di concederti il ruolo IAM Cloud Run Admin (roles/run.admin) nel progetto.

Quando disattivi un servizio, tutte le richieste attualmente in fase di elaborazione potranno essere completate. Tuttavia, eventuali ulteriori richieste all'URL del servizio non andranno a buon fine e genereranno un errore Service unavailable o Service disabled.

Le richieste alle revisioni del servizio attive solo a causa dei tag di traffico non sono interessate perché queste revisioni non sono disabilitate.

Per disattivare un servizio, imposta la scalabilità su zero. Puoi disabilitare un servizio utilizzando la console Cloud de Confiance , Google Cloud CLI, un file YAML o l'API:

Console

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

    Vai a Cloud Run

  2. Fai clic sul servizio che vuoi disattivare per visualizzare il relativo pannello dei dettagli, quindi fai clic sulla scheda Scalabilità.

  3. Seleziona Scalabilità manuale.

  4. Inserisci il valore 0 (zero) nel campo etichettato Numero di istanze.

  5. Fai clic su Visualizza differenze e fai il deployment, quindi su Esegui il deployment delle modifiche.

gcloud

Per disattivare un servizio, utilizza il seguente comando per impostare la scalabilità su zero:

gcloud run services update SERVICE --scaling=0

Sostituisci SERVICE con il nome del servizio.

YAML

  1. Scarica la configurazione YAML del servizio:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Imposta l'attributo manualInstanceCount su zero (0):

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
      run.googleapis.com/scalingMode: manual
      run.googleapis.com/manualInstanceCount: `0`

    Sostituisci SERVICE con il nome del tuo servizio Cloud Run.

  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

API REST

Per disattivare un servizio, 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 '{"scaling":{"manualInstanceCount":0 }}' \
    https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE?update_mask=scaling.manualInstanceCount

Sostituisci quanto segue:

  • ACCESS_TOKEN: un token di accesso valido per un account che dispone delle autorizzazioni IAM per aggiornare un servizio. Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando gcloud auth print-access-token. Da un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container.
  • SERVICE: il nome del servizio.
  • REGION: la regione Cloud de Confiance in cui è stato eseguito il deployment del servizio.
  • PROJECT_ID: l'ID progetto Cloud de Confiance .

Terraform

Per disattivare un servizio, imposta l'attributo manual_instance_count su zero (0):

resource "google_cloud_run_v2_service" "default" {
  name     = "SERVICE_NAME"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }
  scaling {
    scaling_mode = "MANUAL"
    manual_instance_count = "0"
  }
}

Sostituisci quanto segue:

  • SERVICE_NAME: il nome del tuo servizio Cloud Run.
  • REGION: la regione Cloud de Confiance . Ad esempio europe-west1.
  • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

Elimina i servizi esistenti

Per l'eliminazione di un servizio si applicano le seguenti considerazioni:

  • L'eliminazione di un servizio comporta l'eliminazione di tutte le risorse correlate, incluse tutte le revisioni del servizio, indipendentemente dal fatto che gestiscano o meno il traffico.
  • L'eliminazione di un servizio non comporta la rimozione automatica delle immagini container da Artifact Registry. Per eliminare le immagini container utilizzate dalle revisioni eliminate da Artifact Registry, consulta Eliminazione di immagini.
  • L'eliminazione di un servizio con uno o più trigger Eventarc non comporta l'eliminazione automatica di questi trigger. Per eliminare i trigger, consulta Gestisci i trigger.
  • Dopo l'eliminazione, il servizio rimane visibile nella console Cloud de Confiance e nell'interfaccia a riga di comando fino al completamento dell'eliminazione. Tuttavia, non puoi aggiornare il servizio.
  • L'eliminazione di un servizio è definitiva: non è possibile annullarla o ripristinarla. Tuttavia, se dopo aver eliminato un servizio ne esegui il deployment di uno nuovo con lo stesso nome nella stessa regione, l'URL dell'endpoint sarà lo stesso.
  • Quando elimini una funzione Cloud Run, questa smette di accettare nuove richieste. Tuttavia, Cloud Run non termina immediatamente le istanze in esecuzione. La funzione viene invece eseguita fino al completamento dell'attività entro il timeout configurato. Di conseguenza, la funzione potrebbe apparire attiva nei log per un breve periodo dopo l'eliminazione.

Puoi eliminare un servizio o una funzione utilizzando la console Cloud de Confiance , Google Cloud CLI, un file YAML o l'API REST:

Console

Per eliminare un servizio:

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

    Vai a Cloud Run

  2. Individua il servizio che vuoi eliminare nell'elenco dei servizi e fai clic sulla relativa casella di controllo per selezionarlo.

  3. Fai clic su Elimina. Verranno eliminate tutte le revisioni del servizio.

gcloud

Per eliminare un servizio, utilizza il comando:

gcloud run services delete SERVICE --region REGION

Sostituisci

  • SERVICE con il nome del tuo servizio.
  • REGION con la Cloud de Confiance regione del servizio.

Librerie client

Per eliminare un servizio dal codice:

API REST

Per eliminare un servizio, invia una richiesta HTTP DELETE all'endpoint service dell'API Cloud Run Admin.

Ad esempio, utilizzando curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X DELETE \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME

Sostituisci:

  • ACCESS_TOKEN con un token di accesso valido per un account che dispone delle autorizzazioni IAM per eliminare un servizio. Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando gcloud auth print-access-token. All'interno di un'istanza container di Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container.
  • SERVICE-NAME con il nome del servizio.
  • REGION con la regione Cloud de Confiance del servizio.
  • PROJECT-ID con l'ID progetto Cloud de Confiance .