Diffuser du contenu dynamique et héberger des microservices à l'aide de Firebase Hosting

Firebase Hosting s'intègre aux options de calcul sans serveur, y compris Cloud Functions for Firebase et Cloud Run. En utilisant Firebase Hosting avec ces options, vous pouvez héberger des microservices en dirigeant des requêtes HTTPS pour déclencher l'exécution de vos fonctions et applications conteneurisées dans un environnement géré et sécurisé.

Cloud Functions for Firebase : vous écrivez et déployez une fonction, qui est un code de backend qui répond à un déclencheur spécifique. Ensuite, à l'aide de Firebase Hosting, vous pouvez rediriger les requêtes HTTPS pour déclencher l'exécution de votre fonction.

Cloud Run : vous écrivez et déployez une application empaquetée dans une image de conteneur. Ensuite, à l'aide de Firebase Hosting, vous pouvez diriger les requêtes HTTPS pour déclencher l'exécution de votre application conteneurisée.

Cas d'utilisation

Comment utiliser les options d'informatique sans serveur avec Firebase Hosting ?

  • Diffuser du contenu dynamique : en plus de diffuser du contenu statique sur votre site Hosting, vous pouvez diffuser des réponses générées de manière dynamique à partir d'une fonction ou d'une application conteneurisée qui exécute une logique côté serveur.

    Par exemple, vous pouvez associer un modèle d'URL (comme /blog/<blog-post-id>) à une fonction qui utilise le paramètre d'ID de l'article de blog de l'URL pour récupérer du contenu de manière dynamique à partir de votre base de données.

  • Créer des API REST : vous pouvez créer une API de microservice à l'aide de fonctions.

    Par exemple, les fonctions peuvent gérer la fonctionnalité de connexion pour votre site Web. Bien que votre site Web soit hébergé sur /, toute requête adressée à /api est redirigée vers votre API de microservice. Pour obtenir un exemple, consultez cet exemple Open Source.

  • Mettre en cache du contenu dynamique : vous pouvez configurer la mise en cache de votre contenu dynamique sur un CDN mondial.

    Par exemple, si une fonction génère du contenu nouveau uniquement de manière périodique, vous pouvez accélérer votre application en mettant en cache le contenu généré pendant au moins une courte période. Vous pouvez également réduire les coûts d'exécution, car le contenu est diffusé à partir du CDN plutôt que via une fonction déclenchée ou une application conteneurisée.

  • Prérendez vos applications monopages : vous pouvez améliorer le référencement et optimiser le partage sur différents réseaux sociaux en créant des balises meta dynamiques. Pour en savoir plus, regardez cette vidéo ou consultez cet exemple Open Source.

Choisir une option sans serveur

Bien que Cloud Functions for Firebase et Cloud Run s'intègrent à Firebase Hosting et offrent un environnement sans serveur entièrement géré, sécurisé et à autoscaling, les deux options peuvent être utilisées pour différents cas d'utilisation et différents niveaux de configuration personnalisée.

Lorsque vous utilisez l'une des options sans serveur, il est préférable de la colocaliser avec les serveurs pour Firebase Hosting en déployant dans l'une des régions suivantes :

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

Le tableau suivant décrit quelques considérations de base pour l'utilisation de Cloud Functions for Firebase par rapport à Cloud Run. Pour obtenir la liste complète des quotas, des limites et des métriques, consultez la documentation détaillée de chaque produit (Cloud Functions for Firebase ou Cloud Run).

Considération Cloud Functions for Firebase Cloud Run
Configuration La CLI Firebase regroupe plusieurs tâches en une seule commande, de l'initialisation à la compilation et au déploiement. Les conteneurs offrent des options plus personnalisables. Les tâches de configuration, de compilation et de déploiement impliquent donc des étapes distinctes.
Environnement d'exécution Nécessite Node.js, mais vous pouvez spécifier la version de Node.js à utiliser. Lorsque vous créez votre conteneur, vous spécifiez l'environnement d'exécution.
Langues et frameworks compatibles

JavaScript et TypeScript

Les frameworks Web, comme Express.js, sont acceptés.

Tous les langages compatibles avec les Dockerfiles, y compris Go, Node.js, Python, Java et d'autres

Les frameworks Web pour chaque langue sont acceptés.

Délai avant expiration de la requête Hosting 60 secondes (voir la remarque ci-dessous) 60 secondes (voir la remarque ci-dessous)
Simultanéité 1 requête par instance de fonction
(aucune simultanéité par instance)
Jusqu'à 1 000 requêtes simultanées par instance de conteneur
Facturation Cloud Functions utilisations

Quota d'utilisation sans frais, mais un compte Cloud Billing est requis. Consultez les questions fréquentes sur Firebase.

Cloud Run d'utilisation + Container Registry d'espace de stockage

Quota d'utilisation sans frais, mais un compte Cloud Billing est requis