Sviluppo locale

Cloud Functions supporta diversi metodi di esecuzione delle funzioni al di fuori dell'ambiente di deployment standard. Questa funzionalità è particolarmente utile per lo sviluppo iterativo e per situazioni in cui vuoi testare la funzione prima di eseguire il deployment.

Casi d'uso

La possibilità di eseguire le funzioni senza eseguirne il deployment può semplificare i test locali, la conformità con le limitazioni relative alle località dei dati e i deployment multi-cloud.

Test locale

Per testare una funzione eseguendone di nuovo il deployment dopo ogni modifica, è necessario attendere ogni volta il deployment. Al contrario, testare la funzione direttamente nell'ambiente di sviluppo può ridurre il ciclo di test iterativo.

Per ulteriori informazioni sui test, consulta la pagina Testare una Cloud Function prima del deployment.

Limitazioni relative alle località dei dati

In alcuni casi, le normative o i criteri potrebbero richiedere la conservazione dei dati all'interno di un determinato confine geografico, dell'organizzazione o della rete che potrebbe non essere accessibile a Cloud Functions stesso.

Se una piattaforma conforme alle limitazioni relative alla località dei dati è compatibile con uno dei livelli di astrazione di Cloud Functions, puoi eseguire le funzioni direttamente su tale piattaforma su uno di questi livelli.

Deployment multi-cloud

I deployment di funzioni multi-cloud sono un modello consolidato per mitigare il rischio di tempi di inattività negli ambienti critici per l'affidabilità. Il deployment di funzioni in ambienti diversi da Cloud Functions riduce il rischio che l'applicazione subisca tempi di inattività non pianificati.

Scelte di implementazione

Prima di poter configurare il tuo ambiente di hosting delle funzioni, devi effettuare due scelte chiave:

  • Il livello di astrazione da utilizzare.
  • Il tipo di funzione da eseguire.

Livelli di astrazione

Cloud Functions utilizza un'architettura multi-livello, in gran parte open source. Questi componenti open source consentono di eseguire il codice progettato per Cloud Functions su altre piattaforme.

Due componenti di questa architettura che puoi eseguire al di fuori dell'infrastruttura Cloud Functions sono il framework delle funzioni e l'emulatore di funzioni di Google Cloud CLI. Questo documento spiega lo scopo di ciascuno di questi livelli e come si adattano.

Questo diagramma mostra il layout tipico dei deployment delle funzioni su Cloud Functions, Cloud Run e altre piattaforme basate su container:

Layout del wrapping di funzioni: funzione, framework delle funzioni, buildpack, piattaforma host

Tipi di evento

Cloud Functions offre due tipi principali di funzioni:

Le funzioni HTTP possono essere attivate da richieste HTTP arbitrarie come i webhook, mentre le funzioni basate su eventi ricevono eventi prodotti da altri prodotti Google Cloud.

Scelta di un livello di astrazione

Puoi eseguire le funzioni localmente utilizzando il framework delle funzioni o l'emulatore di funzioni.

Il framework delle funzioni è un insieme di librerie open source utilizzate all'interno di Cloud Functions per eseguire il controllo delle richieste HTTP in entrata in chiamate a funzioni specifiche per la lingua. che puoi usare per convertire la funzione in un servizio HTTP eseguibile in locale.

L'emulatore di funzioni utilizza buildpack cloud-native e Docker per eseguire il wrapping dei servizi HTTP creati dal framework di Functions e crearli in container eseguibili, che vengono poi eseguiti sull'architettura basata su container di Cloud Functions.

Entrambe le opzioni presentano vantaggi e svantaggi:

  • Gli ambienti basati su framework di Functions spesso hanno esigenze minori in termini di risorse
  • Il framework di Functions non richiede il software di containerizzazione sottostante (ad esempio Docker)
  • Funzioni Gli ambienti basati su framework richiedono un'infrastruttura linguistica di base (ad esempio gestori di pacchetti e runtime
  • L'emulatore di funzioni esegue il mirroring dei comandi di produzione, come le chiamate e il deployment.
  • L'emulatore di funzioni offre un'elevata precisione nell'esecuzione delle funzioni quando viene eseguito il deployment in produzione.

Esegui Functions in locale

Sia il framework di Functions che l'emulatore di funzioni inoltrano le richieste HTTP alla funzione.

Vedi Esecuzione del framework di Functions per ulteriori informazioni su come eseguire le funzioni localmente utilizzando il framework di Functions.

Vedi Esecuzione di funzioni con l'emulatore di funzioni per ulteriori informazioni su come eseguire funzioni localmente utilizzando l'emulatore di funzioni.