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
Configura un nuovo progetto per Cloud Run, come descritto nella pagina di configurazione.
Abilita l'API Cloud Run Admin:
gcloud services enable run.googleapis.comAggiorna i componenti
gcloudall'ultima versione:gcloud components update
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:
- Sviluppatore Cloud Run (
roles/run.developer) sull'istanza Cloud Run - Utente account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
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 esempious-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
- Per visualizzare le transazioni di logging per le istanze, consulta Logging e visualizzazione dei log in Cloud Run.
- Configura l'istanza Cloud Run: