Confronto tra le versioni di Cloud Functions

Esistono due versioni di Cloud Functions for Firebase:

  • Cloud Functions (2ª gen.), che consente di eseguire il deployment delle funzioni come servizi su Cloud Run, in modo da attivarle utilizzando Eventarc e Pub/Sub.
  • Cloud Functions (1a generazione), la versione originale delle funzioni con configurabilità e attivatori di eventi limitati.

Ti consigliamo di scegliere Cloud Functions (2ª gen.) per le nuove funzioni, ove possibile. Tuttavia, prevediamo di continuare a supportare Cloud Functions (1ª gen.).

Questa pagina descrive le funzionalità introdotte in Cloud Functions e fornisce un confronto tra le due versioni del prodotto.

Cloud Functions (2ª gen.)

Cloud Functions è l'offerta Functions-as-a-Service di nuova generazione di Firebase. Basato su Cloud Run e Eventarc, Cloud Functions (2a generazione) offre a Cloud Functions un'infrastruttura migliorata e una copertura più ampia degli eventi, tra cui:

  • Basate su Cloud Run: le funzioni vengono create con Cloud Build e di cui viene eseguito il deployment come servizi Cloud Run. In questo modo, hai la possibilità di personalizzare la funzione come faresti con un servizio Cloud Run. Fai riferimento alla documentazione di Cloud Run per esplorare le opzioni di configurazione del servizio, ad esempio limiti di memoria, variabili di ambiente e così via.
  • Tempi di elaborazione delle richieste più lunghi: esegui carichi di lavoro con richieste più lunghe, come l'elaborazione di grandi flussi di dati da Cloud Storage o BigQuery.
  • Dimensioni delle istanze più grandi: esegui carichi di lavoro in-memory, paralleli e ad alta intensità di calcolo di dimensioni maggiori.
  • Contemporaneità migliorata: gestisci più richieste in parallelo con un'istanza di funzione singola per ridurre al minimo gli avvii a freddo e migliorare la latenza.
  • Gestione del traffico: suddividi il traffico tra le diverse revisioni di funzioni o esegui il rollback di una funzione a una versione precedente.
  • Integrazione di Eventarc: supporto nativo per gli attivatori Eventarc, portando su Cloud Functions tutte le oltre 90 origini di eventi supportate da Eventarc.
  • Supporto più ampio di CloudEvents: supporto di CloudEvents standard di settore in tutti i runtime delle lingue, che offre un'esperienza coerente per gli sviluppatori.

Per informazioni dettagliate, consulta la tabella di confronto.

Poiché Cloud Functions esegue il deployment di funzioni come servizi su Cloud Run, Cloud Functions condivide le quote e i limiti delle risorse con Cloud Run. Vedi Quote.

Tabella di confronto

Funzionalità Cloud Functions (1ª gen.) Cloud Functions
Registry delle immagini Container Registry o Artifact Registry Solo Artifact Registry
Timeout richiesta Fino a 9 minuti
  • Fino a 60 minuti per le funzioni attivate da HTTP
  • Fino a 9 minuti per le funzioni attivate da eventi
Dimensione istanza Fino a 8 GB di RAM con 2 vCPU Fino a 16 GB di RAM con 4 vCPU
Contemporaneità 1 richiesta in parallelo per istanza di funzione Fino a 1000 richieste in parallelo per istanza di funzione

Prezzi

Per informazioni sui prezzi, consulta i piani tariffari Firebase.

Se utilizzi Cloud Functions, puoi visualizzare i costi associati solo a Cloud Functions come segue:

  1. Vai alla Cloud Billing pagina Report nella console Google Cloud.
  2. Se richiesto, seleziona l'account di fatturazione associato al tuo progetto Google Cloud.
  3. Nel riquadro Filtri, in Etichette, aggiungi un filtro per etichetta con la chiave goog-managed-by e il valore cloudfunctions.

Limitazioni

Cloud Functions for Firebase (2ª gen.) non supporta gli eventi Analytics.

Anche se Cloud Functions for Firebase (2ª gen.) supporta gli eventi di blocco dell'autenticazione, non supporta lo stesso insieme di eventi Cloud Functions for Firebase di base della 1ª gen.Authentication

Tuttavia, poiché le funzioni di 1ª e 2ª generazione possono coesistere nello stesso file di origine, puoi comunque sviluppare e implementare attivatori Analytics e Authentication di base di 1ª generazione insieme alle funzioni di 2ª generazione.