Questa pagina descrive come eseguire il deployment di un nuovo pool di worker o di una nuova revisione del pool di worker in Cloud Run direttamente dal codice sorgente utilizzando un singolo comando gcloud CLI, gcloud run worker-pools deploy con il flag --source.
gcloud run worker-pools deploy elimina la necessità di eseguire anche il comando gcloud builds submit.
Tieni presente che i deployment di origine 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 stai eseguendo 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 creato utilizzando quel Dockerfile. Se nella directory del codice sorgente non è presente alcun Dockerfile, 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.
Prima di iniziare
- Assicurati di aver configurato un nuovo progetto per Cloud Run come descritto nella pagina di configurazione.
-
Abilita l'API Cloud Run Admin, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.Dopo l'abilitazione dell'API Cloud Run Admin, viene creato automaticamente il account di servizio predefinito di Compute Engine.
Ruoli obbligatori
Per eseguire il deployment dall'origine, tu o l'amministratore dovete concedere all'account deployer i seguenti ruoli IAM.
Fai clic per visualizzare i ruoli richiesti per l'account deployer
Per ottenere le autorizzazioni necessarie per creare ed eseguire il deployment dal codice sorgente, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Source Developer (
roles/run.sourceDeveloper) sul tuo progetto - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) sul tuo progetto - Service Account User (
roles/iam.serviceAccountUser) sull'identità di servizio Cloud Run
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 pool di worker 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.
Lingue supportate
Oltre alle origini con un Dockerfile, il deployment dall'origine supporta i seguenti linguaggi utilizzando i buildpack di Google Cloud:
- Vai
- Node.js
- Python
- Java
- Kotlin
- Groovy
- Scala
- .NET
- Ruby
- PHP
Scopri di più sulle versioni delle lingue supportate.
Esegui il deployment dall'origine con la build
Questa sezione descrive come utilizzare 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 i buildpack o Cloud Build.
Limitazioni
- 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 worker-pools deploy --image. - Il deployment dall'origine con i buildpack di Google Cloud imposta la data dell'ultima modifica dei file di origine sul 1° gennaio 1980. Questo è il comportamento predefinito dei buildpack ed è progettato per supportare le build riproducibili. A seconda del framework della lingua, 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
etageLast-Modifiednell'applicazione. - Il deployment dall'origine con i buildpack di Google Cloud utilizza sempre
gcr.io/buildpacks/builder:latest. Se la lingua o la configurazione del sistema operativo che preferisci non sono disponibili inlatest, utilizza un builder specifico per creare un'immagine dell'applicazione utilizzando il builder che preferisci. Puoi eseguire il deployment del pool di worker dal codice sorgente utilizzando Kotlin e altri linguaggi JVM come Java. Il linguaggio utilizzato deve essere conforme alle seguenti regole:
- Puoi creare l'applicazione utilizzando Maven o Gradle.
- Il file di build contiene tutti i plug-in necessari per produrre classi.
Prima di eseguire il deployment con la build
Prima di eseguire il deployment dall'origine con build:
Segui i passaggi descritti in Prima di iniziare.
-
Abilita l'API Cloud Build, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Ruoli obbligatori
Per eseguire il deployment dall'origine con la build, tu o il tuo amministratore dovete concedere al account di servizio Cloud Build i seguenti ruoli IAM.
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 non esegui l'override di questo comportamento. Per consentire a Cloud Build di creare le tue origini, chiedi all'amministratore di concedere il ruolo Cloud Run Builder (roles/run.builder) al account di servizio Compute Engine predefinito 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 tuo numero di progetto Google Cloude PROJECT_ID con il tuo ID progetto Google Cloud. Per istruzioni dettagliate su come trovare l'ID progetto e il numero di progetto, consulta Creazione e gestione dei progetti.
La concessione del ruolo Cloud Run Builder al account di servizio predefinito di Compute Engine richiede un paio di minuti per la propagazione.
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 pool di worker 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.
Esegui il deployment con la build
Per eseguire il deployment dal codice sorgente:
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud , viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Passa alla directory di origine. La directory di origine utilizza un Dockerfile, se presente, anche se non è obbligatorio.
Crea ed esegui il deployment del pool di worker:
Sostituiscigcloud run worker-pools deploy WORKERPOOL --source .
WORKERPOOLcon il nome che vuoi utilizzare per il tuo pool di worker.Rispondi a eventuali prompt per installare le API richieste digitando
yquando richiesto. Devi eseguire questa operazione una sola volta per un progetto. Rispondi agli altri prompt fornendo la piattaforma e la regione, se non hai impostato i valori predefiniti per queste come descritto nella pagina di configurazione.Attendi il completamento della build e del deployment. Al termine, Cloud Run visualizza un messaggio di operazione riuscita.
Automazione della creazione dal codice sorgente
Come best practice per evitare modifiche senza versione nell'origine locale, Google consiglia di eseguire il deployment automatico quando viene eseguito il push delle modifiche al repository Git. Per semplificare questa operazione, puoi connettere e configurare il deployment continuo al tuo pool di worker Cloud Run. Collegando i tuoi repository GitHub a Cloud Run, puoi configurare le build ed eseguire il deployment dei repository senza scrivere Dockerfile o file di build.
Passaggi successivi
Dopo aver eseguito il deployment di un pool di worker Cloud Run, puoi:
- Visualizza i log dei pool di worker
- Monitora i pool di worker
- Imposta i limiti di memoria
- Imposta le variabili di ambiente
- Gestisci il pool di worker
- Gestisci le revisioni dei pool di worker