Nei servizi Cloud Run sono disponibili due impostazioni di fatturazione:
Fatturazione basata sulle richieste (impostazione predefinita): le istanze Cloud Run vengono addebitate solo quando le istanze elaborano le richieste durante l'elaborazione delle richieste, l'avvio e l'arresto del container. Per maggiori dettagli, consulta il ciclo di vita dell'istanza. In precedenza, questa impostazione era denominata CPU allocata solo durante l'elaborazione delle richieste.
Fatturazione basata sulle istanze: per le istanze Cloud Run vengono addebitati i costi 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 l'esecuzione di attività in background di breve durata e di 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.
Lo strumento 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 è 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, scoppiato o picchiettato.
- La fatturazione basata sulle istanze è consigliata quando il traffico in entrata è costante e varia lentamente.
Considerazioni sull'esecuzione in background
Se selezioni 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 altri lavori di elaborazione asincrona dopo aver restituito le risposte. Ad esempio:
- Sfruttare agenti di monitoraggio come OpenTelemetry che potrebbero presumere di poter essere eseguiti in background.
- Utilizzo delle coroutine di Go, dell'async di Node.js, dei thread Java e delle coroutine di Kotlin.
- Utilizzo di framework di applicazioni 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 contenitore venga terminato, puoi intercettare SIGTERM per concedere a un'istanza un periodo di tolleranza di 10 secondi prima che venga interrotta.
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.
Considerazioni sui costi
Se utilizzi la fatturazione basata sulle richieste, la fatturazione basata sulle istanze può essere più economica se:
- Il servizio Cloud Run sta elaborando un numero elevato di richieste correnti a un ritmo piuttosto costante.
- Non vedi molte istanze "inutilizzate" quando esamini la metrica del conteggio delle istanze.
Puoi utilizzare il Calcolatore prezzi per stimare le differenze di costo.
Considerazioni sulla scalabilità automatica
Cloud Run autoscales il 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 viene eseguito lo scale up e lo scale down da zero, in cui vengono utilizzate solo le richieste.
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 corrente 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 consente di avere un numero di istanze in esecuzione con accesso completo alle risorse della CPU, attivando i casi d'uso di elaborazione in background. Quando utilizzi questo pattern, Cloud Run applica il scalabilità automatica delle istanze anche se un servizio utilizza la CPU al di fuori di qualsiasi richiesta.
Se utilizzi sonde di controllo di integrità, devi utilizzare la fatturazione basata sulle istanze per ogni sonda. Per i dettagli sulla fatturazione, consulta le prove di controllo di integrità dei contenitori.
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
) nel servizio Cloud Run -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'identità di servizio
Per un elenco dei ruoli e delle autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il servizio Cloud Run interagisce con le APIGoogle Cloud , ad esempio le librerie client di Cloud, consulta la guida alla configurazione dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta le 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 acquisiranno 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 , la 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:
Fai clic su Esegui il deployment del contenitore e seleziona Servizio per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio, poi su Modifica ed esegui il deployment di una nuova revisione.
Se stai configurando un nuovo servizio, compila la pagina iniziale delle impostazioni del servizio.
Seleziona un'impostazione di fatturazione in Fatturazione. Seleziona la fatturazione basata sulle richieste per far sì che le istanze vengano addebitate solo durante l'elaborazione delle richieste. Seleziona la fatturazione basata sulle istanze per le tue istanze per cui vuoi che gli addebiti vengano effettuati 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 servizio.
Per impostare la fatturazione basata su richiesta:
gcloud run services update SERVICE --cpu-throttling
Puoi anche impostare l'impostazione di fatturazione durante il deployment. Per impostare l'impostazione di fatturazione in base alle istanze:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Per impostare l'impostazione di fatturazione su fatturazione basata su richiesta:
gcloud run deploy --image IMAGE_URL --cpu-throttling
Sostituisci IMAGE_URL con un riferimento all'immagine del 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 servizio Cloud Run
- BOOLEAN con
true
per impostare la fatturazione basata su richieste ofalse
per impostare la fatturazione basata su istanze. - REVISION con un nuovo nome della revisione o eliminarla (se presente). Se fornisci un nuovo nome di revisione, questo deve soddisfare i seguenti criteri:
- Inizia con
SERVICE-
- Deve contenere solo lettere minuscole, numeri e
-
- Non termina con
-
- Non deve superare 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 risorsa google_cloud_run_v2_service
nella configurazione Terraform, in template.containers.resources
.
Visualizza le impostazioni di fatturazione
Per visualizzare le impostazioni di fatturazione attuali per il 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 il seguente comando:
gcloud run services describe SERVICE
Individua l'impostazione Fatturazione nella configurazione restituita.