Servi contenuti dinamici e ospita microservizi utilizzando Firebase Hosting

Firebase Hosting si integra con opzioni di elaborazione serverless, tra cui Cloud Functions for Firebase e Cloud Run. Utilizzando Firebase Hosting con queste opzioni, puoi ospitare microservizi indirizzando le richieste HTTPS per attivare le funzioni e le app containerizzate da eseguire in un ambiente gestito e sicuro.

Cloud Functions for Firebase : scrivi e distribuisci una funzione, ovvero un codice backend che risponde a un trigger specifico. Quindi, utilizzando Firebase Hosting, puoi indirizzare le richieste HTTPS per attivare l'esecuzione della tua funzione.

Cloud Run : scrivi e distribuisci un'applicazione confezionata in un'immagine del contenitore. Quindi, utilizzando Firebase Hosting, puoi indirizzare le richieste HTTPS per attivare l'esecuzione dell'app inserita in un contenitore.

Casi d'uso

Come puoi utilizzare le opzioni di elaborazione serverless con Firebase Hosting?

  • Offri contenuto dinamico : oltre a offrire contenuto statico sul tuo sito di hosting, puoi offrire risposte generate dinamicamente da una funzione o da un'app containerizzata che esegue la logica lato server.

    Ad esempio, puoi puntare un pattern URL (come /blog/<blog-post-id> ) a una funzione che utilizza il parametro ID post del blog dell'URL per recuperare dinamicamente i contenuti dal tuo database.

  • Crea API REST : puoi creare un'API di microservizi utilizzando le funzioni.

    Ad esempio, le funzioni possono gestire la funzionalità di accesso per il tuo sito web. Mentre il tuo sito web è ospitato su / , qualsiasi richiesta a /api viene reindirizzata all'API del tuo microservizio. Per un esempio, dai un'occhiata a questo esempio open source .

  • Memorizza nella cache i contenuti dinamici : puoi configurare la memorizzazione nella cache dei tuoi contenuti dinamici su una CDN globale.

    Ad esempio, se una funzione genera nuovi contenuti solo periodicamente, puoi velocizzare la tua app memorizzando nella cache il contenuto generato almeno per un breve periodo di tempo. Puoi anche potenzialmente ridurre i costi di esecuzione perché il contenuto viene servito dalla CDN anziché tramite una funzione attivata o un'app containerizzata.

  • Prerenderizzare le tue app a pagina singola : puoi migliorare il SEO e ottimizzare la condivisione su vari social network creando meta tag dinamici. Per saperne di più, guarda questo video o dai un'occhiata a questo esempio open source .

Scelta di un'opzione serverless

Sebbene sia Cloud Functions for Firebase che Cloud Run si integrino con Firebase Hosting e offrano un ambiente serverless completamente gestito, con scalabilità automatica e sicuro, le due opzioni possono essere sfruttate per diversi casi d'uso e il livello desiderato di configurazione personalizzata.

Quando si utilizza una delle opzioni serverless, è meglio co-localizzarla con i server per Firebase Hosting distribuendola in una delle seguenti regioni:

  • us-west1
  • us-central1
  • us-east1
  • europe-west1
  • asia-east1

La tabella seguente descrive alcune considerazioni di base sull'utilizzo di Cloud Functions for Firebase rispetto a Cloud Run. Per un elenco completo di quote, limiti e parametri, fai riferimento alla documentazione dettagliata di ciascun prodotto ( Cloud Functions for Firebase o Cloud Run ).

Considerazione Funzioni cloud per Firebase Corsa sulle nuvole
Impostare La CLI di Firebase raggruppa più attività in singoli comandi, dall'inizializzazione alla creazione e alla distribuzione. I contenitori offrono opzioni più personalizzabili, quindi le attività di configurazione, creazione e distribuzione comportano passaggi distinti.
Ambiente di esecuzione Richiede Node.js, ma puoi specificare quale versione di Node.js utilizzare. Quando crei il tuo contenitore , specifichi l'ambiente di runtime.
Supporto per linguaggi e framework

JavaScript e TypeScript

Sono supportati i framework Web, come Express.js.

Qualsiasi linguaggio supportato da Dockerfiles, inclusi Go, Node.js, Python, Java e altri

Sono supportati i framework Web per ogni lingua.

Timeout per la richiesta di hosting 60 secondi (vedi nota sotto) 60 secondi (vedi nota sotto)
Concorrenza 1 richiesta per istanza di funzione
(nessuna concorrenza per istanza)
Fino a 1.000 richieste simultanee per istanza di container
Fatturazione Utilizzo delle funzioni cloud

Quota di utilizzo gratuita, ma è richiesto un account di fatturazione Cloud . Consulta le domande frequenti su Firebase .

Utilizzo di Cloud Run + archiviazione Container Registry

Quota di utilizzo gratuita, ma è richiesto un account di fatturazione Cloud