Sviluppo locale

Cloud Functions supporta diversi metodi per eseguire le tue funzioni al di fuori dell'ambiente di deployment standard. Ciò è 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 tue 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 nuovamente il 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 Cloud Function prima del deployment.

Limitazioni relative alle località di dati

In alcuni casi, normative o criteri 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 Functions stesso.

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

Deployment multi-cloud

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

Scelte di implementazione

Prima di poter configurare un ambiente di hosting per le funzioni, devi fare due scelte chiave:

  • Quale livello di astrazione vuoi utilizzare?
  • Il tipo di funzione da eseguire.

Livelli di astrazione

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

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

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 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 gli eventi prodotti da altri prodotti Google Cloud.

Scelta di un livello di astrazione

Puoi eseguire le funzioni in locale 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 separare le richieste HTTP in entrata nelle chiamate di funzione specifiche della lingua. Puoi usarli per convertire la funzione in un servizio HTTP eseguibile localmente.

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

Entrambe le opzioni presentano vantaggi e svantaggi:

  • Gli ambienti basati su framework di Functions hanno spesso esigenze di risorse inferiori
  • Il framework di Functions non richiede un software di containerizzazione sottostante (come Docker)
  • Gli ambienti basati su framework richiedono un'infrastruttura linguistica di base (come gestori
  • 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.

Esegui funzioni a livello locale

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

Consulta Esecuzione del framework di Functions per ulteriori informazioni su come eseguire funzioni in locale utilizzando il framework di Functions.

Consulta Esegui le funzioni utilizzando l'emulatore di funzioni per ulteriori informazioni su come eseguire le funzioni in locale utilizzando l'emulatore di funzioni.