Questa pagina descrive le impostazioni di fatturazione presupponendo l'utilizzo del comportamento di scalabilità automaticapredefinito di Cloud Run. Per ulteriori considerazioni se utilizzi la scalabilità manuale, consulta Comportamento di fatturazione con la scalabilità manuale.
Esistono due impostazioni di fatturazione nei servizi Cloud Run:
Fatturazione basata sulle richieste (impostazione predefinita): le istanze Cloud Run vengono addebitate solo quando elaborano le richieste, quando vengono avviate e quando vengono arrestate. Per maggiori dettagli, consulta Ciclo di vita delle istanze per. In precedenza, questa impostazione era denominata La CPU viene allocata solo durante l'elaborazione delle richieste.
Fatturazione basata sulle istanze: le istanze Cloud Run vengono addebitate per l'intero ciclo di vita delle istanze, anche quando non ci sono richieste in entrata. La fatturazione basata sulle istanze può essere utile per eseguire attività in background di breve durata e altre attività di elaborazione asincrona. In precedenza, questa impostazione era denominata La 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 consiglia di passare dalla fatturazione basata sulle richieste alla fatturazione basata sulle istanze, se questa opzione è più economica.
Impatto dell'allocazione della CPU
La selezione di un'impostazione di fatturazione influisce sulla modalità di 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.
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, a raffica o a picchi.
- La fatturazione basata sulle istanze è consigliata quando il traffico in entrata è costante e varia lentamente.
Considerazioni sull'esecuzione in background
La selezione della fatturazione basata sulle istanze alloca la CPU anche al di fuori dell'elaborazione delle richieste, consentendoti di eseguire attività in background di breve durata e altre attività di elaborazione asincrona dopo aver restituito le risposte. Ad esempio:
- Sfruttare gli agenti di monitoraggio come OpenTelemetry che potrebbero presupporre di poter essere eseguiti in background.
- Utilizzare le goroutine di Go, le funzioni asincrone di Node.js, i thread Java e le coroutine Kotlin.
- Utilizzare framework applicativi che si basano su funzionalità di pianificazione/background integrate.
Le istanze inattive, incluse quelle mantenute in uso utilizzando le istanze minime, 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 10 secondi di tempo di inattività prima che venga arrestata.
Valuta la possibilità di utilizzare Cloud Tasks per eseguire attività asincrone. Cloud Tasks ritenta automaticamente le attività non riuscite e supporta tempi di esecuzione fino a 30 minuti.
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 elabora un numero elevato di richieste attuali a una velocità 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.
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 esegue la scalabilità automatica del 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 esegue la scalabilità automatica del numero di istanze in base all'utilizzo della CPU per l'intero ciclo di vita dell' istanza container, tranne quando la scalabilità è da zero e a zero, dove utilizza solo le richieste.
Per ulteriori considerazioni se utilizzi la scalabilità manuale anziché la funzionalità di scalabilità automatica di Cloud Run, consulta Scalabilità manuale.
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 le istanze minime.
La combinazione della fatturazione basata sulle istanze con un numero di istanze minime comporta un numero di istanze attive e in esecuzione 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.
Se utilizzi i probe di controllo dello stato, devi utilizzare la fatturazione basata sulle istanze per ogni probe. Per i dettagli sulla fatturazione, consulta Probe di controllo dello stato 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 account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
Se esegui il deployment di un servizio o funzione dal codice sorgente, devi disporre anche 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.
Impostare e aggiornare la fatturazione
Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che tu 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 Google Cloud console, gcloud CLI o un file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione:
Console
Nella Google Cloud console, vai alla pagina Servizi di Cloud Run:
Fai clic su Esegui il deployment del container per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio.
Seleziona un'impostazione di fatturazione in Fatturazione. Seleziona Fatturazione basata sulle richieste per addebitare le istanze solo durante l'elaborazione delle richieste. Seleziona Fatturazione basata sulle istanze per addebitare le istanze per l'intero ciclo di vita delle istanze.
Fai clic su Crea o Esegui il deployment.
gcloud
Puoi aggiornare l'impostazione di fatturazione. Per impostare la fatturazione basata sulle istanze per un determinato servizio:
gcloud run services update SERVICE --no-cpu-throttling
Sostituisci SERVICE con il nome del tuo servizio.
Per impostare la fatturazione basata sulle richieste:
gcloud run services update SERVICE --cpu-throttling
Puoi anche impostare l'impostazione di fatturazione durante il deployment. Per impostare l'impostazione di fatturazione sulla fatturazione basata sulle istanze:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Per impostare l'impostazione di fatturazione sulla 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 di 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 con un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome di revisione, deve soddisfare i seguenti criteri:
- Inizia con
SERVICE- - Contiene solo lettere minuscole, numeri e
- - Non termina con un
- - Non supera i 63 caratteri
- Inizia con
Crea o aggiorna il servizio utilizzando il seguente comando:
gcloud run services replace service.yaml
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a unagoogle_cloud_run_v2_service
risorsa nella configurazione Terraform:Visualizzare le impostazioni di fatturazione
Per visualizzare le impostazioni di fatturazione correnti per il tuo servizio Cloud Run:
Console
Nella Google Cloud console, vai alla pagina Servizi di Cloud Run:
Fai clic sul servizio per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Revisioni.
Nel riquadro dei dettagli, l'impostazione Fatturazione è elencata nella scheda Generale.
gcloud
Esegui il comando seguente per visualizzare la configurazione di fatturazione:
gcloud run services describe SERVICE --format=yaml
Nell'output YAML, trova l'impostazione
run.googleapis.com/cpu-throttling. Un valore difalseindica la fatturazione basata sulle istanze e, se questa impostazione non è presente, indica la fatturazione basata sulle richieste.