Questa pagina descrive come eseguire il deployment di un nuovo servizio o di una nuova revisione del servizio su Cloud Run direttamente dal codice sorgente utilizzando un singolo comando gcloud CLI, gcloud run deploy
con il flag --source
. Per un esempio
di procedura dettagliata per il deployment di un servizio Hello World, consulta
Avvio rapido del deployment dall'origine.
Dietro le quinte, questo comando utilizza
i buildpack di Google Cloud
e Cloud Build per creare automaticamente
immagini container dal codice sorgente senza dover installare Docker sulla tua
macchina o configurare buildpack o Cloud Build. ovvero il singolo comando
descritto sopra esegue ciò che altrimenti richiederebbe i comandi
gcloud builds submit
e
gcloud run deploy
.
Tieni presente che i deployment delle origini utilizzano Artifact Registry per
archiviare i container creati. Se il tuo progetto non ha già un repository Artifact Registry
con il nome cloud-run-source-deploy
nella regione in cui
esegui il deployment, questa funzionalità crea automaticamente un repository Artifact Registry
con il nome cloud-run-source-deploy
.
Se nella directory del codice sorgente è presente un Dockerfile, il codice sorgente caricato viene compilato utilizzando questo Dockerfile. Se non è presente alcun Dockerfile nella directory del codice sorgente, i buildpack di Google Cloud rilevano automaticamente il linguaggio che stai utilizzando e recuperano le dipendenze del codice per creare un'immagine container pronta per la produzione, utilizzando un'immagine di base sicura gestita da Google.
Per impostazione predefinita, le correzioni di sicurezza vengono applicate solo quando viene eseguito il deployment del servizio Cloud Run. Quando abiliti gli aggiornamenti automatici della sicurezza per un servizio, questo riceve automaticamente le patch senza tempi di inattività. Scopri di più sulla configurazione degli aggiornamenti della sicurezza.Lingue supportate
Oltre alle origini con un Dockerfile, il deployment dall'origine supporta le seguenti lingue:
Scopri di più sulle versioni delle lingue supportate.Limitazioni di questa funzionalità
- Il deployment dall'origine utilizza Artifact Registry e Cloud Build, pertanto questa funzionalità è disponibile solo nelle regioni supportate da Artifact Registry e Cloud Build.
- Il deployment dall'origine è una funzionalità
di praticità e non consente la personalizzazione completa della build. Per un maggiore
controllo, crea l'immagine container utilizzando Cloud Build, ad esempio,
utilizzando
gcloud builds submit
, quindi esegui il deployment dell'immagine container utilizzando, ad esempio,gcloud run deploy --image
. - Il deployment dall'origine con i buildpack di Google Cloud imposta la data dell'ultima modifica dei file di origine al 1° gennaio 1980. Questo è il comportamento predefinito dei buildpack ed è progettato per supportare
build riproducibili. A seconda del framework
linguistico, ciò può influire sulla memorizzazione nella cache lato browser dei file statici. Se
la tua applicazione è interessata da questo problema, Google consiglia di disattivare le intestazioni HTTP
etag
eLast-Modified
nella tua applicazione. - Il deployment dall'origine con i buildpack di Google Cloud utilizza sempre
gcr.io/buildpacks/builder:latest
. Se la configurazione del sistema operativo o della lingua che preferisci non è disponibile inlatest
, utilizza un builder specifico per creare un'immagine dell'applicazione utilizzando il builder che preferisci. Puoi eseguire il deployment del servizio dal codice sorgente utilizzando Kotlin e altri linguaggi JVM, come Java. Il linguaggio che utilizzi deve rispettare le seguenti regole:
- Puoi creare l'applicazione utilizzando Maven o Gradle.
- Il file di build contiene tutti i plug-in necessari per le classi di prodotto.
Prima di iniziare
- Assicurati di aver configurato un nuovo progetto per Cloud Run come descritto nella pagina di configurazione.
Se il tuo progetto è soggetto a un criterio dell'organizzazione con restrizioni di dominio che limitano le chiamate non autenticate, dovrai accedere al servizio di cui è stato eseguito il deployment come descritto in Test dei servizi privati.
Abilita l'API Cloud Run Admin e l'API Cloud Build:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
Dopo aver abilitato l'API Cloud Run Admin, viene creato automaticamente l'account di servizio predefinito di Compute Engine.
Ruoli obbligatori
Tu o il tuo amministratore dovete concedere all'account di deployment e al account di servizio Cloud Build i seguenti ruoli IAM.
Fai clic per visualizzare i ruoli richiesti per l'account di deployment
Per ottenere le autorizzazioni necessarie per creare e implementare dal codice sorgente, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Source Developer (
roles/run.sourceDeveloper
) sul tuo progetto - Consumer API Service Usage (
roles/serviceusage.serviceUsageConsumer
) sul tuo progetto - Utente account di servizio (
roles/iam.serviceAccountUser
) sull'identità del servizio Cloud Run
Fai clic per visualizzare i ruoli richiesti per il account di servizio Cloud Build
Cloud Build utilizza automaticamente l'account di servizio predefinito di Compute Engine come account di servizio Cloud Build predefinito per creare il codice sorgente e la risorsa Cloud Run, a meno che tu non esegua l'override di questo comportamento. Affinché
Cloud Build possa creare le tue origini, chiedi all'amministratore di concedere
Cloud Run Builder
(roles/run.builder
) all'account di servizio predefinito di Compute Engine nel tuo progetto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Sostituisci PROJECT_NUMBER
con il numero del tuo progetto Google Cloude PROJECT_ID
con l'ID del tuo progetto Google Cloud. Per istruzioni dettagliate su come trovare l'ID progetto e il numero di progetto,
vedi Creazione
e gestione dei progetti.
La concessione del ruolo Cloud Run Builder all'account di servizio Compute Engine predefinito richiede un paio di minuti per la propagazione.
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.
Esegui il deployment dall'origine
Per eseguire il deployment dal codice sorgente:
Passa alla directory di origine. Tieni presente che la directory di origine non richiede un Dockerfile, ma se è presente verrà utilizzato.
Crea ed esegui il deployment del tuo servizio:
Sostituiscigcloud run deploy SERVICE --source .
SERVICE
con il nome che vuoi assegnare al tuo servizio.Se il tuo codice sorgente utilizza uno dei runtime di linguaggio supportati e vuoi configurare gli aggiornamenti automatici dell'immagine di base per il runtime, specifica il flag
--automatic-updates
e il flag--base-image
con l'immagine di base per il tuo servizio, ad esempionodejs22
.Rispondi a eventuali richieste di installazione delle API necessarie rispondendo
y
quando richiesto. Devi farlo solo una volta per progetto. Rispondi agli altri prompt fornendo la piattaforma e la regione, se non hai impostato valori predefiniti per questi come descritto nella pagina di configurazione.Attendi il completamento della build e del deployment. Al termine, Cloud Run mostra un messaggio di operazione riuscita.
Automatizzare la creazione dal codice sorgente
Come best practice per evitare modifiche senza controllo della versione nell'origine locale, Google consiglia di eseguire il deployment automatico quando le modifiche vengono inviate al repository Git. Per semplificare questa operazione, puoi connettere e configurare il deployment continuo al tuo servizio Cloud Run. Se colleghi i tuoi repository GitHub a Cloud Run, puoi configurare le build ed eseguire il deployment dei repository senza scrivere Dockerfile o file di build.
Per configurare le build automatizzate, configura l'automazione come descritto nella pagina delle build continue, assicurandoti di scegliere l'opzione per la creazione di origini con i buildpack.Passaggi successivi
Dopo aver eseguito il deployment di un servizio Cloud Run, puoi:
- Implementazioni graduali, rollback delle revisioni, migrazione del traffico
- Visualizza i log di servizio
- Monitorare il rendimento dei servizi
- Impostare limiti di memoria
- Imposta le variabili di ambiente
- Modificare la concorrenza del servizio
- Gestire il servizio
- Gestire le revisioni del servizio
Scopri di più sulle configurazioni di deployment dell'origine:
- Aggiornamenti automatici dell'immagine di base
- Variabili di ambiente di build
- Service account di Build
- Creare pool di worker
Puoi automatizzare le build e i deployment dei tuoi servizi Cloud Run utilizzando i trigger di Cloud Build: