Sviluppo locale
Cloud Run Functions supporta 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 localizzazione dei dati e i deployment multi-cloud.
Test locale
Testare una funzione eseguendone di nuovo il deployment dopo ogni modifica vuol dire dover attendere ogni volta il deployment. Al contrario, testare la funzione direttamente nell'ambiente di sviluppo può abbreviare il ciclo di test iterativo.
Per saperne di più sui test, consulta Testa una funzione Cloud Run prima del deployment.
Limitazioni relative alla localizzazione dei dati
In alcuni casi, le normative o le policy in vigore potrebbero richiedere che i dati vengano conservati all'interno di un determinato confine geografico, organizzativo o di rete che potrebbe non essere accessibile a Cloud Run Functions.
Se una piattaforma conforme alle tue limitazioni relative alla localizzazione dei dati è compatibile con uno dei livelli di astrazione di Cloud Run Functions, puoi eseguire le tue funzioni direttamente su quella piattaforma in uno di questi livelli.
Deployment multi-cloud
I deployment di funzioni multi-cloud rappresentano un metodo collaudato per ridurre il rischio di tempo di inattività in ambienti in cui l'affidabilità è critica. Il deployment di funzioni in ambienti diversi da Cloud Run Functions riduce il rischio di tempo di inattività non pianificato per la tua applicazione.
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 eseguirai.
Livelli di astrazione
Cloud Run Functions utilizza un'architettura multilivello, gran parte della quale è open source. Questi componenti open source ti consentono di eseguire codice progettato per Cloud Run Functions su altre piattaforme.
Due componenti di questa architettura che puoi eseguire al di fuori dell'infrastruttura di Cloud Run Functions sono il framework di Functions e l'emulatore di Functions. Questo documento spiega lo scopo di ciascuno di questi livelli e il modo in cui interagiscono.
Questo diagramma mostra il layout tipico dei deployment di funzioni su Cloud Run Functions, Cloud Run e altre piattaforme basate su container:
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 su eventi ricevono eventi prodotti da altri prodotti Google Cloud .
Scelta di un livello di astrazione
Puoi eseguire le funzioni in locale utilizzando il framework di Functions o l'emulatore di Functions.
Il framework di Functions è un insieme di librerie open source utilizzate all'interno di Cloud Run Functions per eseguire l'unmarshalling delle richieste HTTP in entrata in chiamate di funzioni specifiche per il linguaggio. Puoi utilizzarle per convertire la tua funzione in un servizio HTTP eseguibile in locale.
L'emulatore di Functions utilizza buildpack cloud-native e Docker per eseguire il wrapping dei servizi HTTP creati dal framework di Functions e compilarli in container eseguibili, che vengono poi eseguiti sull'architettura basata su container di Cloud Run Functions.
Entrambe le opzioni presentano vantaggi e svantaggi:
- Gli ambienti basati sul framework di Functions hanno esigenze inferiori in termine di risorse
- Il framework di Functions non richiede software di containerizzazione sottostanti (ad esempio Docker).
- Gli ambienti basati sul framework di Functions richiedono un'infrastruttura di linguaggio sottostante (come gestori di pacchetti e runtime del linguaggio)
- L'emulatore di Functions rispecchia i comandi di produzione, come chiamata e deployment.
- L'emulatore di Functions offre un'elevata fedeltà in rispetto all'effettiva esecuzione delle funzioni una volta implementate in produzione.
Esegui funzioni in locale
Sia il framework di Functions che l'emulatore di Functions funzionano inoltrando le richieste HTTP alla tua funzione.
Per saperne di più su come eseguire le funzioni in locale utilizzando il framework di Functions, consulta Esecuzione del framework di Functions.
Per saperne di più su come eseguire le funzioni in locale utilizzando l'emulatore di Functions, consulta la sezione Esegui funzioni utilizzando l'emulatore di Functions.