Questa pagina descrive le impostazioni di fatturazione presupponendo l'utilizzo del comportamento di scalabilità automatica predefinito di Cloud Run. Consulta Comportamento di fatturazione con la scalabilità manuale per ulteriori considerazioni se utilizzi la scalabilità manuale.
Esistono due impostazioni di fatturazione nei servizi Cloud Run:
Fatturazione basata sulle richieste (impostazione predefinita): le istanze del servizio Cloud Run vengono addebitate solo quando elaborano le richieste, quando vengono avviate e quando vengono arrestate. Per saperne di più, consulta Ciclo di vita delle istanze. In precedenza, questa impostazione era denominata CPU allocata solo durante l'elaborazione delle richieste.
Fatturazione basata sulle istanze: le istanze del servizio Cloud Run vengono addebitate per l'intero ciclo di vita di ogni istanza, anche quando non ci sono richieste in entrata. La fatturazione basata sulle istanze può essere utile per l'esecuzione di attività in background di breve durata e altre attività di elaborazione asincrona. Questa impostazione era precedentemente denominata CPU sempre allocata.
Se scegli la fatturazione basata sulle richieste, ti vengono addebitati i costi per richiesta e solo quando l'istanza elabora una richiesta. Se scegli la fatturazione basata sulle istanze, ti vengono addebitati i costi per l'intero ciclo di vita dell'istanza. Per i dettagli, consulta le tabelle dei prezzi di Cloud Run.
Recommender esamina automaticamente il traffico ricevuto dal tuo servizio Cloud Run nell'ultimo mese e ti consiglia di passare dalla fatturazione basata sulle richieste alla fatturazione basata sulle istanze, se questa è più economica.
A differenza dei servizi Cloud Run, tutti i job Cloud Run utilizzano la fatturazione basata sulle istanze. Anche i pool di worker Cloud Run e le istanze Cloud Run vengono fatturati per l'intero ciclo di vita di ogni istanza utilizzando i propri SKU di prezzo dedicati. Per un confronto tra i tipi di risorse, consulta Confronto delle risorse Cloud Run.Impatto dell'allocazione della CPU
La selezione di un'impostazione di fatturazione influisce sull'allocazione della CPU.
- Con la fatturazione basata sulle richieste, la CPU viene allocata solo durante l'elaborazione delle richieste.
- Con la fatturazione basata sulle istanze, la CPU viene allocata per l'intero ciclo di vita dell'istanza di container.
Limiti di spesa del budget
Quando configuri i limiti di spesa di fatturazione Cloud nella console di fatturazione Cloud o in modo programmatico utilizzando l'API Cloud Billing Budget, questi limiti vengono applicati automaticamente a tutti i tipi di risorse Cloud Run nel tuo progetto.
Puoi monitorare l'avanzamento del limite di spesa direttamente dalla pagina Panoramica della console Cloud Run. Quando raggiungi un limite di spesa, Google Cloud mette in pausa tutti i workload di Cloud Run per evitare ulteriori costi per le seguenti risorse Cloud Run:
- Servizi: i servizi esistenti non riusciranno a gestire il traffico e restituiranno errori
5xx. - Job: l'avvio delle nuove esecuzioni delle attività non riesce e le attività in corso non vengono completate.
- Pool di worker: tutte le istanze esistenti interrompono l'elaborazione delle attività.
- Istanze: tutte le istanze in esecuzione vengono arrestate, le nuove istanze o i riavvii non vengono avviati e le richieste agli URL delle istanze restituiscono errori
5xx.
Se superi il limite di spesa, riceverai una notifica di avviso e vedrai un banner di applicazione nella console Cloud Run. I limiti di spesa applicati vengono reimpostati all'inizio di ogni mese, il primo giorno del ciclo di fatturazione successivo, sbloccando i workload e impostando l'importo della spesa su zero. Se superi il limite di spesa e vuoi riprendere le operazioni prima della reimpostazione mensile, regola o rimuovi manualmente il limite nella pagina Panoramica della console Cloud Run.
Come scegliere l'impostazione di fatturazione appropriata
La scelta dell'impostazione di fatturazione appropriata per il tuo caso d'uso dipende da diversi fattori, come i pattern di traffico, l'esecuzione in background e il costo, ognuno dei quali è descritto nelle sezioni seguenti.
Considerazioni sui pattern di traffico
- La fatturazione basata sulle richieste è consigliata quando il traffico in entrata è sporadico, improvviso o con picchi.
- La fatturazione basata sulle istanze è consigliata quando il traffico in entrata è costante e varia lentamente.
Considerazioni sull'esecuzione in background
Selezionando la fatturazione basata sulle istanze, la CPU viene allocata anche al di fuori dell'elaborazione delle richieste, consentendoti di eseguire attività in background di breve durata e altre operazioni di elaborazione asincrona dopo la restituzione delle risposte. Ad esempio:
- Utilizzo di agenti di monitoraggio come OpenTelemetry che potrebbero presupporre di poter essere eseguiti in background.
- Utilizzo delle goroutine di Go, della modalità asincrona di Node.js, dei thread di Java e delle coroutine di Kotlin.
- Utilizzo di framework di applicazioni che si basano su funzionalità di pianificazione o di background integrate.
Le istanze inattive, incluse quelle mantenute in uso utilizzando il numero minimo di istanze, possono essere arrestate in qualsiasi momento. Se devi completare le attività in sospeso prima che il container venga terminato, puoi intercettare SIGTERM per concedere a un'istanza un periodo di tolleranza di 10 secondi prima che venga arrestata.
Valuta la possibilità di utilizzare Cloud Tasks per eseguire attività asincrone. Cloud Tasks riprova automaticamente le attività non riuscite e supporta tempi di esecuzione fino a 30 minuti.
Se il tuo workload richiede un'unica istanza di lunga durata che venga eseguita continuamente per ore o giorni senza scalabilità automatica orizzontale, esegui il deployment di un'istanza Cloud Run anziché di un servizio. A differenza delle istanze di servizio, che fare lo scale down dopo un massimo di 15 minuti di inattività, un'istanza Cloud Run può essere eseguita senza interruzioni per un massimo di 7 giorni e supporta policy di riavvio configurabili. Questo rende le istanze Cloud Run adatte per agenti AI personali, motori di workflow stateful e ambienti di sviluppo remoto. Per maggiori dettagli, consulta Quando utilizzare le istanze Cloud Run e Ciclo di vita delle istanze Cloud Run.
Considerazioni sui costi
Se utilizzi la fatturazione basata sulle richieste, la fatturazione basata sulle istanze può essere più economica se:
- Il tuo servizio Cloud Run sta elaborando un numero elevato di richieste attuali a una frequenza piuttosto costante.
- Non vedi molte istanze "inattive" quando esamini la metrica del conteggio delle istanze.
Puoi utilizzare il Calcolatore prezzi per stimare le differenze di costo.
Se hai bisogno di una singola istanza in esecuzione continua senza scalabilità automatica orizzontale, un'istanza Cloud Run può costare meno di un servizio con numero minimo di istanze e fatturazione basata sulle istanze. Le istanze Cloud Run hanno i propri SKU di prezzo e supportano un modello di CPU condivisa con capacità di burst (vCPU di base del 6,25% con burst fino al 100%), riducendo i costi continui per i workload singleton per lo più inattivi.
Considerazioni sulla scalabilità automatica
Per impostazione predefinita, Cloud Run esegue la scalabilità automatica del numero di istanze container.
Per un servizio impostato sulla fatturazione basata sulle richieste, Cloud Run scala automaticamente il numero di istanze in base all'utilizzo della CPU solo durante l'elaborazione delle richieste.
Per un servizio impostato sulla fatturazione basata sulle istanze, Cloud Run scala automaticamente il numero di istanze in base all'utilizzo della CPU per l'intero ciclo di vita dell'istanza container, tranne quando scala da e verso zero, dove utilizza solo le richieste.
Consulta la sezione sulla scalabilità manuale per ulteriori considerazioni se utilizzi la scalabilità manuale anziché la funzionalità di scalabilità automatica di Cloud Run.
Considerazioni sulla fatturazione basata sulle istanze
Anche se l'impostazione di fatturazione è impostata su Fatturazione basata sulle istanze, la scalabilità automatica di Cloud Run è comunque attiva e potrebbe terminare le istanze se non sono necessarie per gestire il traffico in entrata o l'utilizzo attuale della CPU al di fuori delle richieste. Un'istanza non rimarrà mai inattiva per più di 15 minuti dopo l'elaborazione di una richiesta, a meno che non venga mantenuta attiva utilizzando il numero minimo di istanze.
La combinazione della fatturazione basata sulle istanze con un numero di istanze minime comporta l'esecuzione di un numero di istanze con accesso completo alle risorse della CPU, consentendo casi d'uso di elaborazione in background. Quando utilizzi questo pattern, Cloud Run applica la scalabilità automatica delle istanze anche se un servizio utilizza la CPU al di fuori di qualsiasi richiesta.
Utilizza un servizio con fatturazione basata sulle istanze e numero minimo di istanze quando il workload in background o agentico deve eseguire la scalabilità automatica oltre una singola istanza durante il carico di picco. Per altri pattern in background, prendi in considerazione queste risorse Cloud Run:
- Workload a istanza singola di lunga durata: utilizza un'istanza Cloud Run se hai bisogno di una singola istanza con controllo diretto del ciclo di vita di avvio, arresto e riavvio e senza scalabilità automatica.
- Workload basati su pull non HTTP: utilizza un pool di worker Cloud Run per i consumer in background continui, come i worker Pub/Sub o Kafka, che non richiedono un endpoint HTTP.
Se utilizzi i probe dei controlli di integrità, devi utilizzare la fatturazione basata sulle istanze per ogni probe. Per i dettagli sulla fatturazione, consulta Probe di controllo di integrità dei container.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Developer (
roles/run.developer) sul servizio Cloud Run - Utente dell'account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
Se esegui il deployment di un servizio o di una funzione dal codice sorgente, devi anche disporre di ruoli aggiuntivi concessi al tuo progetto e al account di servizio Cloud Build.
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.
Imposta e aggiorna la fatturazione
Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.
Se selezioni la fatturazione basata sulle istanze, devi specificare almeno 512 MiB di memoria.
Puoi modificare l'impostazione di fatturazione utilizzando la console Google Cloud , gcloud CLI o un file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione:
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio.
Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio.
Se stai configurando un servizio esistente, fai clic sulla scheda Scalabilità.
In Fatturazione, seleziona Basata sulle richieste per addebitare le istanze solo durante l'elaborazione delle richieste oppure seleziona Basata sulle istanze per addebitare le istanze per l'intera durata delle istanze.
Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.
gcloud
Puoi aggiornare l'impostazione di fatturazione. Per impostare la fatturazione basata su istanze per un determinato servizio:
gcloud run services update SERVICE --no-cpu-throttling
Sostituisci SERVICE con il nome del servizio.
Per impostare la fatturazione basata sulle richieste:
gcloud run services update SERVICE --cpu-throttling
Puoi anche configurare l'impostazione di fatturazione durante il deployment. Per impostare la fatturazione in base alle istanze:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Per impostare la fatturazione basata sulle richieste:
gcloud run deploy --image IMAGE_URL --cpu-throttling
Sostituisci IMAGE_URL con 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.
YAML
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
Aggiorna l'attributo
cpu:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/cpu-throttling: 'BOOLEAN' name: REVISION
Sostituisci quanto segue:
- SERVICE: il nome del tuo servizio Cloud Run
- BOOLEAN:
trueper impostare la fatturazione basata sulle richieste ofalseper impostare la fatturazione basata sulle istanze. REVISION: un nuovo nome della 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
- Inizia con
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Il comando
gcloud run services replaceutilizza per impostazione predefinita il fileservice.yaml, se presente.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a una risorsagoogle_cloud_run_v2_service nella configurazione Terraform:Visualizza le impostazioni di fatturazione
Per visualizzare le impostazioni di fatturazione attuali per il tuo servizio Cloud Run:
Console
Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:
Fai clic sul servizio per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Scalabilità per trovare l'impostazione Fatturazione.
gcloud
Esegui questo comando per visualizzare la configurazione di fatturazione:
gcloud run services describe SERVICE --format=yaml
Nell'output YAML, individua l'impostazione
run.googleapis.com/cpu-throttling. Un valore pari afalseindica la fatturazione basata su istanze, mentre se questa impostazione non è presente, indica la fatturazione basata su richieste.