Sviluppo locale

Le funzioni di Cloud Run supportano diversi metodi di esecuzione delle 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 nuovamente il deployment dopo ogni modifica è necessario attendere 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.

Limitazioni relative alle località di 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 relative alle località dei dati è compatibile con una delle funzioni Cloud Run strati di astrazione, puoi eseguire funzioni direttamente su quella piattaforma sopra uno di questi strati.

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

Le funzioni Cloud Run stesse 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 dell'infrastruttura delle funzioni di Cloud Run sono il framework delle funzioni e il 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 delle funzioni su funzioni Cloud Run, 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 webhook, mentre le funzioni basate su eventi ricevono eventi prodotti altri prodotti Google Cloud.

Scegliere un livello di astrazione

Puoi eseguire le funzioni in locale utilizzando Framework delle funzioni o Emulatore di funzioni.

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 in un servizio HTTP eseguibile localmente.

Functions Emulator utilizza Cloud Native Buildpacks 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 di Functions non richiede un software di containerizzazione sottostante (come come Docker).
  • Gli ambienti basati su framework di funzioni richiedono un linguaggio sottostante dell'infrastruttura (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 Esecuzione del framework di Functions per Scopri di più su come eseguire le funzioni localmente utilizzando il framework di Functions.

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