Sviluppo locale

Le funzioni Cloud Run supportano diversi metodi per eseguire le funzioni al di fuori dell'ambiente di deployment standard. Questo è particolarmente utile per lo sviluppo iterativo e per le situazioni in cui vuoi testare la funzione prima del deployment.

Casi d'uso

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

Test locale

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

Per ulteriori informazioni sui test, consulta Testare una funzione Cloud Run prima del deployment.

Restrizioni relative alla località dei dati

In alcuni casi, le normative o le norme potrebbero richiedere che i dati vengano conservati all'interno di un determinato confine geografico, organizzativo o di rete che potrebbe non essere accessibile alle funzioni di Cloud Run.

Se una piattaforma conforme alle limitazioni di località dei dati è compatibile con uno dei livelli di astrazione delle funzioni Cloud Run, puoi eseguire le funzioni direttamente su quella piattaforma su uno di questi livelli.

Deployment multi-cloud

I deployment delle funzioni multicloud sono uno schema consolidato per ridurre il rischio di downtime in ambienti in cui l'affidabilità è fondamentale. Il deployment di funzioni in ambienti diversi dalle funzioni Cloud Run stesse riduce il rischio che la tua applicazione registri un tempo di riposo imprevisto.

Scelte di implementazione

Prima di poter configurare il tuo ambiente di hosting delle funzioni, devi fare due scelte fondamentali:

  • Il livello di astrazione che vuoi utilizzare.
  • Il tipo di funzione che verrà eseguita.

Livelli di astrazione

Le funzioni Cloud Run utilizzano un'architettura a più livelli, gran parte della quale è stata aperta. Questi componenti open source ti consentono di eseguire codice progettato per le funzioni Cloud Run su altre piattaforme.

Due componenti di questa architettura che puoi eseguire al di fuori dell'infrastruttura di Cloud Run Functions sono Functions Framework e Functions Emulator. Questo documento spiega lo scopo di ciascuno di questi livelli e come si combinano.

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

Layout di wrapping della funzione: funzione, framework di funzioni, buildpack, piattaforma host

Tipi di evento

Cloud Run functions ha due tipi principali di funzioni:

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

Scegliere un livello di astrazione

Puoi eseguire le funzioni localmente utilizzando Functions Framework o Functions Emulator.

Functions Framework è un insieme di librerie open source utilizzate all'interno delle funzioni Cloud Run per eseguire il unmarshalling delle richieste HTTP in arrivo in chiamate di funzioni specifiche per il linguaggio. Puoi utilizzarli per convertire la funzione in un servizio HTTP eseguibile localmente.

Functions Emulator utilizza Buildpack per cloud native e Docker per eseguire il wrapping dei servizi HTTP creati dal framework Functions e per trasformarli in container eseguibili, che vengono poi eseguiti nell'architettura basata su container delle funzioni Cloud Run.

Entrambe le opzioni presentano vantaggi e svantaggi:

  • Gli ambienti basati su Functions Framework spesso hanno un fabbisogno di risorse inferiore
  • Il framework Functions non richiede software di containerizzazione sottostante (come Docker).
  • Gli ambienti basati su Functions Framework richiedono un'infrastruttura di linguaggi di base (come gestori di pacchetti e runtime dei linguaggi)
  • Functions Emulator esegue il mirroring dei comandi di produzione, come le chiamate e l'implementazione.
  • Functions Emulator offre un'elevata fedeltà all'esecuzione delle funzioni quando vengono implementate in produzione.

Eseguire funzioni localmente

Sia il Framework di Functions sia l'emulatore di funzioni funzionano inoltrando le richieste HTTP alla funzione.

Consulta Eseguire Functions Framework per maggiori informazioni su come eseguire funzioni localmente utilizzando Functions Framework.

Per ulteriori informazioni su come eseguire funzioni localmente utilizzando l'emulatore di funzioni, consulta Eseguire funzioni utilizzando l'emulatore di funzioni.