Creare e gestire istanze Cloud Run

Questa pagina descrive come creare e gestire le istanze Cloud Run singleton indirizzabili singolarmente. A differenza dei servizi Cloud Run che scalano in base al traffico in entrata, un'istanza è un container di calcolo dedicato che gestisci manualmente utilizzando le transizioni del ciclo di vita (crea, arresta, avvia, aggiorna, elimina).

Prima di iniziare

  1. Configura un nuovo progetto per Cloud Run, come descritto nella pagina di configurazione.

  2. Abilita l'API Cloud Run Admin:

    gcloud services enable run.googleapis.com
    
  3. Aggiorna i componenti gcloud all'ultima versione:

    gcloud components update
  4. Se sei soggetto a una policy dell'organizzazione di limitazione del dominio che limita le chiamate non autenticate per il tuo progetto, dovrai accedere al servizio di cui hai eseguito il deployment come descritto in Testare i servizi privati.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di istanze Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

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 la tua istanza Cloud Run interagisce con Google Cloud API, 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'istanza

Puoi eseguire il deployment di un'immagine container per creare una nuova istanza. Se non fornisci un nome, ne viene generato uno automaticamente.

gcloud

Per creare una nuova istanza Cloud Run utilizzando il comando gcloud beta run instances create:

gcloud beta run instances create INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

Per creare una nuova istanza Cloud Run utilizzando il comando gcloud beta run instances deploy:

gcloud beta run instances deploy INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza che stai creando. Il nome dell'istanza deve essere univoco all'interno del progetto e della regione. Non puoi creare un'istanza con lo stesso nome di un'istanza o di un servizio Cloud Run esistente.
  • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/instances:latest.
  • REGION: la Google Cloud regione in cui esegui l'istanza, ad esempioeurope-west1.

Librerie client

Per creare una nuova istanza dal codice:

API REST

Per creare una nuova istanza Cloud Run, invia una richiesta HTTP POST all'endpoint instances.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "containers": [{
      "image": "IMAGE_URL",
      "ports": [{"containerPort": PORT}]
    }],
    "ingress": "INGRESS_TRAFFIC_ALL",
    "invokerIamDisabled": true,
    "timeout": "3600s"
  }' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances?instance_id=INSTANCE_NAME"

Sostituisci quanto segue:

  • IMAGE_URL: l'URL dell'immagine container.
  • PORT: la porta su cui è in ascolto il container.
  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • REGION: la Google Cloud regione del tuo deployment.
  • INSTANCE_NAME: il nome della nuova istanza.

Dopo aver creato un'istanza, questa riceve un URL Cloud Run con il seguente formato:

https://INSTANCE_NAME-PROJECT_NUMBER.REGION.run.app

Aggiorna un'istanza

Quando aggiorni un'istanza, ad esempio l'immagine container, la porta o le variabili di ambiente, l'istanza viene riavviata.

gcloud

Per aggiornare un'istanza Cloud Run utilizzando il comando gcloud beta run instances update:

gcloud beta run instances update INSTANCE_NAME \
    --image NEW_IMAGE_URL \
    --region REGION

Per aggiornare un'istanza Cloud Run utilizzando il comando gcloud beta run instances deploy:

gcloud beta run instances deploy INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

API REST

Per aggiornare la configurazione di un'istanza Cloud Run dall'API, invia una richiesta HTTP PATCH all'endpoint URI dell'istanza.

curl -H "Content-Type: application/json" \
  -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

Arresta un'istanza

Utilizza il comando o il metodo di arresto per arrestare un'istanza Cloud Run in esecuzione.

gcloud

Per arrestare un'istanza:

gcloud beta run instances stop INSTANCE_NAME \
    --region REGION

Librerie client

Per arrestare un'istanza in esecuzione dal codice:

API REST

Per arrestare un'istanza, invia una richiesta HTTP POST con il decoratore :stop:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:stop"

Avvia o riavvia un'istanza

Utilizza il comando o il metodo di avvio per avviare un'istanza arrestata o forzare il riavvio di un'istanza esistente.

gcloud

Per avviare o riavviare un'istanza:

gcloud beta run instances start INSTANCE_NAME \
    --region REGION

Librerie client

Per avviare un'istanza arrestata dal codice:

API REST

Per avviare un'istanza, invia una richiesta HTTP POST con il decoratore :start:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:start"

Visualizza l'elenco delle istanze nel progetto

Puoi visualizzare tutte le istanze attive e inattive nel tuo progetto.

gcloud

Per elencare le istanze in una regione specifica:

gcloud beta run instances list \
    --region REGION

Sostituisci REGION con la Google Cloud regione in cui esegui l'istanza.

Librerie client

Per elencare le istanze attive e inattive dal codice:

API REST

Per recuperare un elenco di istanze, invia una richiesta HTTP GET:

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances"

Visualizza i dettagli dell'istanza

Utilizza il comando o il metodo di descrizione per visualizzare i dettagli di configurazione e lo stato attuale.

gcloud

Per descrivere un'istanza:

gcloud beta run instances describe INSTANCE_NAME \
    --region REGION

Librerie client

Per visualizzare i dettagli di configurazione e lo stato dell'istanza dal codice:

API REST

Per descrivere un'istanza, invia una richiesta HTTP GET:

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

Elimina un'istanza

Elimina un'istanza per rimuovere definitivamente la configurazione, i metadati, il mapping dell'URL diretto pubblico e i ruoli di identità dal progetto.

gcloud

Per eliminare un'istanza:

gcloud beta run instances delete INSTANCE_NAME \
    --region REGION

Librerie client

Per eliminare un'istanza dal codice:

API REST

Per eliminare un'istanza, invia una richiesta HTTP DELETE:

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

Passaggi successivi