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/apiviene 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
metadinamici. 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-west1us-central1us-east1europe-west1asia-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 |