Sviluppo locale

Le funzioni Cloud Run supportano diversi metodi per eseguire le funzioni al di fuori dell'ambiente di deployment standard. Ciò è particolarmente utile per i test sviluppo e per le situazioni in cui desideri testare la funzione prima durante il deployment.

Casi d'uso

La possibilità di eseguire le tue funzioni senza eseguirne il deployment può semplificare test, conformità con le restrizioni in base alla località dei dati e multi-cloud deployment di machine learning.

Test locale

Per testare una funzione eseguendone il redeployment 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, normative o politiche potrebbero richiedere che i dati vengano conservati all'interno di un a determinati confini geografici, organizzativi o di rete che potrebbero non essere accessibile alle funzioni 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 delle funzioni in ambienti diversi dalle funzioni Cloud Run 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:

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

Livelli di astrazione

La funzione Cloud Run utilizza a sua volta un'architettura multi-livello, gran parte della quale è stata open source. 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 delle funzioni Cloud Run sono il Functions Framework e l'emulatore di funzioni. Questo documento spiega lo scopo di ciascuno di questi livelli e come si combinano.

Questo diagramma mostra il layout tipico dei deployment di funzioni in alto Funzioni di Cloud Run, Cloud Run e altre piattaforme basate su container:

Layout del wrapping di funzioni: funzione, framework delle 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.

L'emulatore di funzioni utilizza Buildpack cloud-native e Docker per eseguire il wrapping dei servizi HTTP creati dal framework di Functions e trasformarli in applicazioni eseguibili di container, che poi vengono eseguiti sull'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 framework di funzioni richiedono un linguaggio sottostante dell'infrastruttura (come gestori di pacchetti e runtime dei linguaggi)
  • 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 di come vengono eseguite le funzioni quando vengono distribuite in produzione.

Eseguire funzioni localmente

Sia il framework di Functions che l'emulatore di funzioni funzionano inoltrando le richieste HTTP al tuo personalizzata.

Per ulteriori informazioni su come eseguire funzioni localmente utilizzando Functions Framework, consulta Eseguire Functions Framework.

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