Questa pagina descrive le impostazioni di fatturazione presupponendo l'utilizzo del comportamento di scalabilità automatica predefinito di Cloud Run. Consulta Comportamento di fatturazione con lo scaling manuale per ulteriori considerazioni se utilizzi lo scaling manuale.
Nei servizi Cloud Run sono disponibili due impostazioni di fatturazione:
Fatturazione basata sulle richieste (impostazione predefinita): le istanze Cloud Run vengono addebitate solo quando elaborano richieste, quando vengono avviate e quando vengono arrestate. Per maggiori dettagli, consulta Ciclo di vita dell'istanza. Questa impostazione era precedentemente 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 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 verranno 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 è 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 del 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 raffiche 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:
- Utilizzo di agenti di monitoraggio come OpenTelemetry che potrebbero presumere di poter essere eseguiti in background.
- Utilizzando le goroutine di Go, Node.js async, i thread Java e le coroutine Kotlin.
- Utilizzo di framework applicativi che si basano su funzionalità di pianificazione/background integrate.
Le istanze inattive, incluse quelle mantenute in uso utilizzando 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 all'istanza 10 secondi di tempo di tolleranza 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 sta elaborando un numero elevato di richieste attuali a un tasso 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 scala automaticamente il numero di istanze container.
Per un servizio impostato sulla fatturazione basata su richiesta, 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 e verso zero, in cui utilizza solo le richieste.
Consulta la sezione 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 è ancora in vigore e potrebbe terminare le istanze se non sono necessarie per gestire il traffico in entrata o l'utilizzo della CPU corrente 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 istanze minime.
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 lo scaling automatico delle istanze anche se un servizio utilizza la CPU al di fuori di qualsiasi richiesta.
Se utilizzi probe di controllo di integrità, devi utilizzare la fatturazione basata sulle istanze per ogni probe. Per i dettagli di fatturazione, consulta Probe di controllo dell'integrità del container.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment dei servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Cloud Run Developer (
roles/run.developer
) sul servizio Cloud Run -
Utente service account (
roles/iam.serviceAccountUser
) sull'identità di servizio
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM Cloud Run e Autorizzazioni IAM 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 ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire 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 console Google Cloud , gcloud CLI o un file YAML quando crei un nuovo servizio o deploy un nuova revisione:
Console
Nella console Google Cloud , vai a Cloud Run:
Seleziona Servizi dal menu e fai clic su Esegui il deployment del contenitore per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment della 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 le istanze in modo che vengano addebitati costi solo durante l'elaborazione delle richieste. Seleziona la fatturazione basata sulle istanze per le istanze per addebitare i costi 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 le impostazioni di fatturazione durante l'implementazione. Per impostare la fatturazione basata sulle 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 ha la forma 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
- SERVICE con il nome del tuo servizio Cloud Run
- BOOLEAN con
true
per impostare la fatturazione basata sulle richieste ofalse
per impostare la fatturazione basata sulle istanze. - 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
-
- 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 una risorsagoogle_cloud_run_v2_service
nella configurazione Terraform:Visualizzare le impostazioni di fatturazione
Per visualizzare le impostazioni di fatturazione correnti per il tuo servizio Cloud Run:
Console
Nella console Google Cloud , vai a Cloud Run:
Fai clic sul servizio che ti interessa per aprire la pagina Dettagli servizio.
Fai clic sulla scheda Revisioni.
Nel riquadro dei dettagli a destra, l'impostazione Fatturazione è elencata nella scheda Generale.
gcloud
Utilizza questo comando:
gcloud run services describe SERVICE
Individua l'impostazione di fatturazione nella configurazione restituita.