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 redirigeant les requêtes HTTPS pour déclencher l'exécution de vos fonctions et de vos 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 backend qui répond à un déclencheur spécifique. Ensuite, à l'aide de Firebase Hosting, vous pouvez diriger des 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 pouvez-vous 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 diriger un modèle d'URL (comme /blog/<blog-post-id>) vers une fonction qui utilise le paramètre d'ID de post de blog de l'URL pour récupérer dynamiquement le contenu 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 de votre site Web. Lorsque votre site Web est hébergé sur /, toute requête envoyée à /api est redirigée vers votre API de microservice. Pour en savoir plus, consultez cet exemple Open Source.

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

    Par exemple, si une fonction ne génère de nouveaux contenus que périodiquement, 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échargez 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é, évolutif et sécurisé, les deux options peuvent être exploitées pour différents cas d'utilisation et le niveau de configuration personnalisé souhaité.

Lorsque vous utilisez l'une des options sans serveur, il est préférable de la colocaliser avec les serveurs pour Firebase Hosting en la 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 utiliser 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 plus d'options personnalisables. Par conséquent, les tâches de configuration, de compilation et de déploiement impliquent 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.

Tout langage compatible avec les fichiers Dockerfiles, y compris Go, Node.js, Python, Java et d'autres

Les frameworks Web pour chaque langue sont compatibles.

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
(pas de simultanéité par instance)
Jusqu'à 1 000 requêtes simultanées par instance de conteneur
Facturation Utilisation de Cloud Functions

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

Utilisation de Cloud Run + Espace de stockage Container Registry

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