Gestisci contenuti dinamici e ospita microservizi con Firebase Hosting

Firebase Hosting si integra con le opzioni di serverless computing, tra cui Cloud Functions for Firebase e Cloud Run. Se utilizzi Firebase Hosting con queste opzioni, puoi ospitare microservizi indirizzando le richieste HTTPS per attivare l'esecuzione delle funzioni e delle app containerizzate in un ambiente gestito e sicuro.

Cloud Functions for Firebase: scrivi ed esegui il deployment di una funzione, ovvero codice backend che risponde a un trigger specifico. Poi, utilizzando Firebase Hosting, puoi indirizzare le richieste HTTPS per attivare l'esecuzione della funzione to run.

Cloud Run: scrivi ed esegui il deployment di un' applicazione pacchettizzata in un'immagine container. Poi, utilizzando Firebase Hosting, puoi indirizzare le richieste HTTPS per attivare l'esecuzione dell'app containerizzata.

Casi d'uso

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

  • Pubblicare contenuti dinamici : oltre a pubblicare contenuti statici sul sito Hosting, puoi pubblicare risposte generate dinamicamente da una funzione o un'app containerizzata che esegue la logica lato server.

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

  • Creare 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 all'indirizzo /, qualsiasi richiesta a /api viene reindirizzata all'API di microservizi. Per un esempio, consulta questo esempio open source.

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

    Ad esempio, se una funzione genera nuovi contenuti solo periodicamente, puoi velocizzare l'app memorizzando nella cache i contenuti generati per almeno un breve periodo di tempo. Inoltre, puoi potenzialmente ridurre i costi di esecuzione perché i contenuti vengono pubblicati dalla CDN anziché tramite una funzione attivata o un'app containerizzata.

  • Eseguire il prerendering delle app a pagina singola : puoi migliorare la SEO e ottimizzare la condivisione su varie reti social creando tag meta dinamici. Per saperne di più, guarda questo video o consulta questo esempio open source.

Scelta di un'opzione serverless

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

Quando utilizzi una delle due opzioni serverless, è consigliabile collocarla insieme ai server per Firebase Hosting eseguendo il deployment in una delle seguenti regioni:

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

La tabella seguente descrive alcune considerazioni di base per l'utilizzo di Cloud Functions for Firebase rispetto a Cloud Run. Per un elenco completo di quote, limiti e metriche, consulta la documentazione dettagliata di ogni prodotto (Cloud Functions for Firebase o Cloud Run).

Considerazione Cloud Functions for Firebase Cloud Run
Configurazione La CLI Firebase raggruppa più attività in singoli comandi, dall' inizializzazione alla creazione e al deployment. I container offrono opzioni più personalizzabili, quindi le attività di configurazione, creazione e deployment prevedono passaggi discreti.
Ambiente di runtime Richiede Node.js, ma puoi specificare quale versione di Node.js da utilizzare. Quando crei il container, devi specificare l'ambiente di runtime.
Supporto di linguaggi e framework

JavaScript e TypeScript

Sono supportati i framework web, come Express.js.

Qualsiasi linguaggio supportato dai Dockerfile, tra cui Go, Node.js, Python, Java e altri

Sono supportati i framework web per ogni linguaggio.

Timeout per la richiesta Hosting 60 secondi (vedi la nota di seguito) 60 secondi (vedi la nota di seguito)
Concorrenza 1 richiesta per istanza di funzione
(nessuna concorrenza per istanza)
Fino a 1000 richieste in parallelo per istanza di container
Fatturazione Cloud Functions utilizzo

Quota di utilizzo senza costi, ma è necessario un Cloud Billing account. Consulta le Domande frequenti su Firebase.

Cloud Run utilizzo + Container Registry spazio di archiviazione

Quota di utilizzo senza costi, ma è necessario un Cloud Billing account