Esegui il deployment dal codice sorgente

In questa pagina viene descritto come eseguire il deployment di nuovi servizi e le revisioni a Cloud Run direttamente dal codice sorgente utilizzando un singolo comando gcloud CLI, gcloud run deploy con --source. Ad esempio, della procedura dettagliata per il deployment di un servizio Hello World, consulta Esegui il deployment dalle guide rapide dall'origine.

Dietro le quinte, questo comando utilizza Buildpack di Google Cloud e Cloud Build per creare automaticamente dal codice sorgente senza dover installare Docker o configurare buildpack o Cloud Build. ovvero l'unico comando descritti sopra fa ciò che altrimenti richiederebbe gcloud builds submit e ai gcloud run deploy tramite comandi SQL.

Tieni presente che i deployment di origine utilizzano Artifact Registry per di archiviazione nei container. Se il tuo progetto non dispone già di un Artifact Registry repository con il nome cloud-run-source-deploy nella regione in cui ti trovi deployment, questa funzionalità crea automaticamente un repository Artifact Registry con il nome cloud-run-source-deploy.

Se un Dockerfile è presente nella directory del codice sorgente, l'origine caricata utilizzando quel Dockerfile. Se non è presente un Dockerfile nell'origine la directory di codice, i buildpack di Google Cloud rilevano automaticamente la lingua utilizzano e recupera le dipendenze del codice per rendere un modello utilizzando un'immagine di base sicura gestita da Google. (Ogni volta che deployment, le correzioni di sicurezza necessarie vengono automaticamente rilevate dalla base image.)

Lingue supportate

Oltre alle origini con un Dockerfile, il deployment dall'origine supporta seguenti lingue:

Ulteriori informazioni su versioni in linguaggio supportate dai buildpack di Google Cloud.

Limitazioni di questa funzionalità

  • Il deployment dall'origine utilizza Artifact Registry, quindi questa funzionalità è disponibile solo in regioni supportate da Artifact Registry.
  • Eseguire il deployment dall'origine utilizzando gcloud run deploy --source è una comodità e non consente la personalizzazione completa della build. Per maggiori informazioni , creare l'immagine container con Cloud Build, ad esempio usando gcloud builds submit e poi eseguire il deployment dell'immagine container utilizzando, ad esempio, gcloud run deploy --image.
  • Il deployment dall'origine con buildpack di Google Cloud imposta la data dell'ultima modifica sorgente dei file al 1° gennaio 1980. Questo è il comportamento predefinito dei buildpack ed è progettato per supportare build riproducibili. In base questo può influire sulla memorizzazione nella cache lato browser dei file statici. Se la tua applicazione è interessata da questo problema, Google consiglia di disattivare etag e Last-Modified HTTP nella tua applicazione.
  • Il deployment dall'origine con i buildpack di Google Cloud utilizza sempre gcr.io/buildpacks/builder:latest. Se la lingua preferita o la configurazione del sistema operativo non è disponibile in latest, usa uno specifico builder per creare un'immagine applicazione utilizzando il tuo builder preferito.
  • Puoi eseguire il deployment del tuo servizio dall'origine utilizzando Kotlin e altri linguaggi JVM come Java. Il linguaggio utilizzato deve essere conforme a le seguenti regole:

    • Puoi creare l'applicazione utilizzando Maven o Gradle.
    • Il file di compilazione 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 in la pagina di configurazione.
  • Se ti trovi in un criterio dell'organizzazione che limita le chiamate non autenticate per il tuo progetto, dovrai accedere al servizio di cui hai eseguito il deployment come descritto in Test dei servizi privati.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire il deployment dei servizi Cloud Run dall'origine, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto:

Per un elenco di ruoli e autorizzazioni IAM associati Cloud Run, consulta Ruoli IAM di Cloud Run e le autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run si interfaccia con Le API Google Cloud, come le librerie client di Cloud, consultano guida alla configurazione dell'identità dei servizi. Per ulteriori informazioni sulla concessione dei ruoli, consulta autorizzazioni di deployment e gestire l'accesso.

Concedi il ruolo di account di servizio Cloud Build all'account di servizio predefinito Compute Engine

  1. Individua l'account di servizio predefinito di Compute Engine. Per impostazione predefinita, l'account di servizio predefinito di Compute Engine viene creato automaticamente con il seguente formato email:

    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    

    Sostituisci PROJECT_NUMBER con il tuo Google Cloud del progetto. Puoi trovare il numero del tuo progetto nella Ti diamo il benvenuto della console Google Cloud o eseguendo questo comando:

    gcloud projects describe PROJECT_ID --format='value(projectNumber)'

    Per gli ambienti di produzione, consigliamo vivamente creazione di un nuovo account di servizio e la concessione di uno o più ruoli IAM contenenti autorizzazioni minime richieste e seguire il principio del privilegio minimo.

  2. Affinché Cloud Build sia in grado di creare le tue origini, concedi il Account di servizio Cloud Build all'account di servizio predefinito di Compute Engine eseguendo questo comando:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --role=roles/cloudbuild.builds.builder

Deployment in corso…

Per eseguire il deployment dal codice sorgente:

  1. Passa alla directory di origine. Tieni presente che la directory di origine o Dockerfile, ma se è presente un Dockerfile verrà utilizzato.

  2. Crea ed esegui il deployment della tua applicazione:

    gcloud run deploy SERVICE --source .

    Sostituisci SERVICE con il nome che preferisci per il tuo completamente gestito di Google Cloud.

    Rispondere a eventuali richieste di installazione delle API richieste rispondendo y quando richiesto. Devi eseguire questa operazione una sola volta per un progetto. Rispondi ad altro specificando la piattaforma e la regione, se non hai configurato valori predefiniti come descritto nella pagina di configurazione.

  3. Attendi il completamento della build e del deployment. Al termine, viene visualizzato un messaggio simile a questo è visualizzato:

    Service [my-app] revision [my-app-00000-xxx] has been deployed and is serving 100 percent of traffic. Service URL: https://my-app-texampleq-uc.a.run.app

    Al momento del deployment, tieni presente che questa revisione del servizio gestisce il 100% del traffico.

Automatizzare la creazione dall'origine

Come best practice per evitare modifiche senza controllo delle versioni nell'origine locale, Google consiglia di eseguire il deployment automatico quando viene eseguito il push delle modifiche al tuo repository repository Git. Per semplificare questa operazione, puoi connetterti e configurare il deployment nel tuo servizio Cloud Run. Collegando i tuoi repository GitHub a Cloud Run, puoi configurare le build ed eseguire il deployment dei repository senza scrivere Dockerfile o creare file.

Per configurare build automatiche, imposta l'automazione come descritto in pagina di build continue, assicurandoti di scegliere l'opzione per la creazione dell'origine con Buildpacks.

Passaggi successivi

Dopo aver eseguito il deployment di un nuovo servizio, puoi:

Puoi automatizzare le build e i deployment dei tuoi servizi Cloud Run utilizzando i trigger di Cloud Build: