Deployment delle Funzioni Cloud

Deployment

I deployment funzionano caricando un archivio contenente il codice sorgente della funzione in un bucket Cloud Storage. Una volta caricato il codice sorgente, Cloud Build crea automaticamente il codice in un'immagine container ed esegue il push dell'immagine ad Artifact Registry o Container Registry. Cloud Functions utilizza tale immagine per creare il container che esegue la funzione.

Nello specifico:

  1. Iniziando un deployment, il codice sorgente viene compresso, compresi tutti i file tranne quelli che corrispondono a un pattern .gcloudignore.
  2. Una volta compresso e caricato il codice sorgente, la build viene inviata a Cloud Build. La build utilizza il comando pack build con gcr.io/buildpacks/builder:v1 per creare il container. In questo modo:

    • Utilizza l'immagine Ubuntu di base.
    • Installa il runtime del linguaggio.
    • Installa il Functions Functions, se non è già presente.
    • Installa le dipendenze dell'utente.
    • Esporta l'immagine OCI.

La memorizzazione nella cache contribuisce a velocizzare questi passaggi. Guarda questo video per una panoramica della procedura.

Per ulteriori informazioni sulla posizione in cui è archiviata l'immagine di una funzione, consulta la sezione Creazione di immagini di Cloud Functions.

Opzioni di relative al deployment

Puoi eseguire il deployment di Cloud Functions dalla tua macchina locale, dal tuo repository di codice sorgente GitHub o Bitbucket (tramite Cloud Source Repositories) o direttamente dall'API Cloud Functions.

Durante il deployment, Cloud Functions cerca file specifici, a seconda del runtime. Per ulteriori dettagli, consulta la sezione Scrivere Cloud Functions. Prima che il deployment della funzione venga finalizzato, Cloud Functions invierà alla funzione una richiesta di test per verificare che il deployment sia stato eseguito correttamente.

Migrazione tra deployment

Il completamento del primo deployment di una funzione può richiedere diversi minuti durante il provisioning dell'infrastruttura sottostante. Il deployment nuovamente di una funzione esistente è più rapido e il traffico in entrata viene migrato automaticamente nella versione più recente della tua funzione.

Concetti di base

Man mano che scopri i diversi modi per eseguire il deployment delle funzioni, è utile comprendere una terminologia di base. Quando esegui il deployment di una funzione, questa viene visualizzata in Cloud Console, come mostrato di seguito. In particolare, tieni presente i campi Nome e Funzione eseguita:

  • Il campo Nome è il nome registrato che assegni alla funzione.
  • Il campo Funzione eseguita indica il nome della funzione effettiva nel codice sorgente che viene eseguito quando viene chiamata la funzione sottoposta a deployment.

Questi due campi possono avere lo stesso nome oppure i nomi possono essere diversi. Nota che le prime due funzioni hanno nomi registrati diversi da i nomi delle funzioni eseguite. L'ultima funzione utilizza lo stesso nome per entrambi i campi: helloHttp.

Screenshot che mostra il processo di deployment della funzione

Creazione e test in locale

Cloud Functions viene eseguito in ambienti di runtime basati su linguaggi e framework open source, in modo da poter creare e testare le tue funzioni localmente utilizzando runtime e strumenti di sviluppo standard.

Puoi anche utilizzare il framework delle funzioni per eseguire ed eseguire il debug delle funzioni in locale per i runtime supportati per semplificare il test e il debug.

Passaggi successivi