Gestire i servizi Cloud Run

Questa pagina descrive come creare un servizio e visualizzare le informazioni su un servizio.

Ogni servizio ha un run.app URL univoco e permanente che non cambierà nel tempo man mano che esegui il deployment di nuove revisioni. Anche le funzioni di cui è stato eseguito il deployment su Cloud Run vengono trattate come un servizio e viene assegnato un run.app indirizzo. Il dominio permanente del servizio è costituito dal nome del servizio e da un hash.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire i servizi e le revisioni di Cloud Run, chiedi all'amministratore di concederti il ruolo IAM Sviluppatore Cloud Run (roles/run.developer) nel 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 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.

Crea un servizio

Crea un nuovo servizio eseguendo il deployment di un'immagine container per la prima volta. Il deployment di un nuovo servizio prevede ulteriori istruzioni.

Visualizza l'elenco dei servizi nel tuo progetto

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

Console

Per visualizzare l'elenco dei servizi:

  1. Nella Google Cloud console, vai alla pagina Cloud Run Servizi:

    Vai a Cloud Run

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

    elenco dei servizi

gcloud

Per elencare i servizi nel tuo progetto:

gcloud run services list

Tieni presente che ogni servizio ha un URL associato.

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, consulta le guide di Cloud Run Explorer 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 a l'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

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. Da un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container.
  • REGION con la Google Cloud regione del servizio.
  • PROJECT-ID con l' Google Cloud ID progetto.

Visualizza l'elenco delle funzioni nel tuo progetto

Puoi visualizzare un elenco delle funzioni disponibili nel tuo progetto utilizzando la Google Cloud console:

Console

Per filtrare le funzioni nell'elenco dei servizi:

  1. Nella Google Cloud console, vai alla pagina Cloud Run Servizi:

    Vai a Cloud Run

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

    elenco dei servizi

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

    Se in precedenza hai eseguito il deployment della funzione 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 o YAML. Google Cloud Puoi modificare qualsiasi elemento nella copia, inclusi nome e regione.

Console

Per copiare un servizio:

  1. Nella Google Cloud console, vai alla pagina Cloud Run Servizi:

    Vai a Cloud Run

  2. Seleziona il servizio da copiare dall'elenco dei servizi visualizzato per il tuo progetto:

    elenco dei servizi

    1. Fai clic su Copia.

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

    3. Fai clic su Crea per creare una copia ed 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 una regione diversa, sostituisci SERVICE con il nome che vuoi utilizzare per la copia. Se esegui il deployment della copia in una regione diversa, puoi utilizzare il nome precedente.
    • Sostituisci REVISION con un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Contiene solo lettere minuscole, numeri e -
      • Non termina con un -
      • Non supera i 63 caratteri
  3. Copia il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

    Utilizza il --region flag per eseguire il deployment della copia in una regione diversa.

Visualizza ulteriori dettagli su un servizio

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

Console

Per visualizzare i dettagli di un servizio:

  1. Nella Google Cloud console, vai alla pagina Cloud Run Servizi:

    Vai a Cloud Run

  2. Fai clic sul servizio nell'elenco dei servizi 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 --format flag 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 Google Cloud regione 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 --format flag 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, consulta le guide di Cloud Run Explorer per IntelliJ e Visual Studio Code.

Per maggiori dettagli sulle revisioni dei servizi, 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 a service endpoint 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 Google Cloud regione del servizio.
  • PROJECT-ID con l' Google Cloud ID progetto.

Disattiva un servizio esistente

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

Quando disattivi un servizio, le richieste attualmente in fase di elaborazione potranno essere completate. Tuttavia, le richieste successive all'URL del servizio non andranno a buon fine e verrà generato 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 disattivate.

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

Console

  1. Nella Google Cloud console, vai alla pagina Cloud Run Servizi:

    Vai a Cloud Run

  2. Fai clic sul servizio che vuoi disattivare per visualizzare il relativo riquadro dei dettagli, quindi fai clic sull'icona a forma di matita accanto a Scalabilità in alto a destra nel riquadro dei dettagli.

  3. Individua il modulo Modifica scalabilità e seleziona Scalabilità manuale.

    immagine

    Nel campo con l'etichetta Numero di istanze, inserisci il valore 0 (zero).

  4. Fai clic su Salva.

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 tuo 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'API Cloud Run Admin service endpoint.

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 Google Cloud regione in cui è stato eseguito il deployment del servizio.
  • PROJECT_ID: l' Google Cloud ID progetto.

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 Google Cloud regione. 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 di LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

Elimina i servizi esistenti

Le seguenti considerazioni si applicano all'eliminazione di un servizio:

  • L'eliminazione di un servizio comporta l'eliminazione di tutte le risorse correlate, incluse tutte le revisioni del servizio, indipendentemente dal fatto che pubblichino 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 Eliminare le 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 Gestire i trigger.
  • Dopo l'eliminazione, il servizio rimane visibile nella Google Cloud console e nell'interfaccia a riga di comando finché l'eliminazione non è completamente terminata. Tuttavia, non puoi aggiornare il servizio.
  • L'eliminazione di un servizio è permanente: 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, avrà lo stesso URL dell'endpoint.
  • 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 eseguita fino al completamento dell'attività entro il timeout configurato. Per un breve periodo di tempo dopo l'eliminazione, la funzione potrebbe apparire attiva nei log.

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

Console

Per eliminare un servizio:

  1. Nella Google Cloud console, vai alla pagina Cloud Run Servizi:

    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. Vengono 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 Google Cloud regione del servizio.

Librerie client

Per eliminare un servizio dal codice:

API REST

Per eliminare un servizio, invia una richiesta HTTP DELETE a l'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. 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 Google Cloud regione del servizio.
  • PROJECT-ID con l' Google Cloud ID progetto.