Associez Cloud Run à Firebase Hosting pour générer et diffuser votre contenu dynamique ou créer des API REST en tant que microservices.
En utilisant Nuage Run , vous pouvez déployer une application packagée dans une image contenant. Ensuite, en utilisant Firebase Hosting, vous pouvez diriger les requêtes HTTPS pour déclencher votre application conteneurisée.
- Cloud Run prend en charge plusieurs langues (y compris Go, Node.js, Python et Java), vous donnant la possibilité d'utiliser le langage de programmation et le cadre de votre choix.
- Cloud Exécuter automatiquement et échelles horizontalement l' image de votre conteneur pour traiter les demandes reçues, puis vers le bas lorsque la demande échelles diminue.
- Vous ne payez pour la CPU, la mémoire et la mise en réseau lors de la manipulation de consumés demande.
Par exemple , les cas d'utilisation et des échantillons pour Cloud Run intégré avec Firebase hébergement, visitez notre aperçu serverless .
Ce guide vous montre comment :
- Écrire une simple application Hello World
- Conteneuriser une application et l'importer dans Container Registry
- Déployer l'image du conteneur sur Cloud Run
- Demandes d'hébergement direct à votre application conteneurisée
Notez que pour améliorer les performances de servir le contenu dynamique, vous pouvez éventuellement affiner vos paramètres de cache .
Avant que tu commences
Avant d' utiliser Run - Cloud, vous devez remplir certaines tâches initiales, y compris la création d'un compte de facturation Cloud permettant l'API cloud Run, et l' installation du gcloud
outil de ligne de commande.
Configurer la facturation de votre projet
Cloud Run offre quota d'utilisation gratuit , mais vous devez quand même avoir un compte de facturation Cloud associé à votre projet Firebase à utiliser ou essayer Cloud Run.
Activer l'API et installer le SDK
Activez l'API Cloud Run dans la console des API Google :
Ouvrez la page Cloud API Run dans la console API Google.
Lorsque vous y êtes invité, sélectionnez votre projet Firebase.
Cliquez sur Activer sur la page Cloud API Run.
Installer et initialiser le SDK Cloud.
Vérifiez que le
gcloud
outil est configuré pour le bon projet:gcloud config list
Étape 1: Écrivez l'application échantillon
Notez que le Cloud Run prend en charge de nombreuses autres langues en plus des langues indiquées dans l'exemple suivant.
Aller
Créer un nouveau répertoire nommé
helloworld-go
, puis changer le répertoire en elle:mkdir helloworld-go
cd helloworld-go
Créer un nouveau fichier nommé
helloworld.go
, puis ajoutez le code suivant:Ce code crée un serveur Web de base qui écoute sur le port défini par le
PORT
variable d'environnement.
Votre application est terminée et prête à être conteneurisée et importée dans Container Registry.
Node.js
Créer un nouveau répertoire nommé
helloworld-nodejs
, puis changer le répertoire en elle:mkdir helloworld-nodejs
cd helloworld-nodejs
Créer un
package.json
fichier avec le contenu suivant:Créer un nouveau fichier nommé
index.js
, puis ajoutez le code suivant:Ce code crée un serveur Web de base qui écoute sur le port défini par le
PORT
variable d'environnement.
Votre application est terminée et prête à être conteneurisée et importée dans Container Registry.
Python
Créer un nouveau répertoire nommé
helloworld-python
, puis changer le répertoire en elle:mkdir helloworld-python
cd helloworld-python
Créer un nouveau fichier nommé
app.py
, puis ajoutez le code suivant:Ce code crée un serveur Web de base qui écoute sur le port défini par le
PORT
variable d'environnement.
Votre application est terminée et prête à être conteneurisée et importée dans Container Registry.
Java
Installer Java SE 8 ou plus JDK et CURL .
Notez que nous n'avons besoin de le faire que pour créer le nouveau projet Web à l'étape suivante. Le Dockerfile, qui est décrit plus loin, chargera toutes les dépendances dans le conteneur.
Depuis la console, créez un nouveau projet Web vide à l'aide des commandes cURL puis décompressez :
curl https://start.spring.io/starter.zip \ -d dependencies=web \ -d name=helloworld \ -d artifactId=helloworld \ -o helloworld.zip
unzip helloworld.zip
Cela crée un projet SpringBoot.
Mettre à jour la
SpringBootApplication
classe danssrc/main/java/com/example/helloworld/HelloworldApplication.java
en ajoutant un@RestController
pour gérer la/
cartographie et également ajouter un@Value
champ pour l'TARGET
variable d' environnement:Ce code crée un serveur Web de base qui écoute sur le port défini par le
PORT
variable d'environnement.
Votre application est terminée et prête à être conteneurisée et importée dans Container Registry.
Étape 2: conteneuriser une application et la télécharger Container Registre
Conteneuriser l'application exemple en créant un nouveau fichier nommé
Dockerfile
dans le même répertoire que les fichiers source. Copiez le contenu suivant dans votre fichier.Aller
Node.js
Python
Java
Créez votre image de conteneur à l'aide de Cloud Build en exécutant la commande suivante à partir du répertoire contenant votre Dockerfile :
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
En cas de succès, vous verrez un message SUCCESS contenant le nom de l'image
(gcr.io/ PROJECT_ID /helloworld
).
L'image du conteneur est désormais stockée dans Container Registry et peut être réutilisée si vous le souhaitez.
Notez que, au lieu de construction Cloud, vous pouvez utiliser une version installée localement Docker pour construire votre conteneur localement .
Étape 3: Déploiement de l'image du conteneur Cloud Run
Déployez à l'aide de la commande suivante :
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
Lorsque vous y êtes invité :
- Sélectionnez une région (par exemple
us-central1
) - Confirmez le nom du service (par exemple,
helloworld
) - Répondez
Y
pour permettre invocations non authentifiées
- Sélectionnez une région (par exemple
Attendez quelques instants que le déploiement se termine. En cas de succès, la ligne de commande affiche l'URL du service. Par exemple:
https://helloworld- RANDOM_HASH -us-central1.a.run.appVisitez votre conteneur déployé en ouvrant l'URL du service dans un navigateur Web.
L'étape suivante vous guide à travers la façon d'accéder à cette application conteneurisées à partir d' une URL d' hébergement Firebase afin qu'il puisse générer du contenu dynamique pour votre site hébergé Firebase.
Étape 4: demandes d'hébergement direct à votre application conteneurisées
Avec des règles de réécriture , vous pouvez diriger les demandes qui correspondent à des modèles spécifiques à une seule destination.
L'exemple suivant montre comment toutes les requêtes de la page /helloworld
sur votre site d' hébergement pour déclencher le démarrage et le fonctionnement de votre helloworld
instance de conteneur.
Sois sûr que:
Vous avez la dernière version de la CLI Firebase .
Vous avez initialisé Firebase Hosting.
Pour obtenir des instructions détaillées sur l' installation de la CLI et l' initialisation d' hébergement, consultez le Get Started pour l' hébergement .
Ouvrez votre
firebase.json
fichier .Ajoutez ce qui suit
rewrite
configuration sous l'hosting
section:"hosting": { // ... // Add the "rewrites" attribute within "hosting" "rewrites": [ { "source": "/helloworld", "run": { "serviceId": "helloworld", // "service name" (from when you deployed the container image) "region": "us-central1" // optional (if omitted, default is us-central1) } } ] }
Déployez votre configuration d'hébergement sur votre site en exécutant la commande suivante depuis la racine de votre répertoire de projet :
firebase deploy
Votre conteneur est désormais accessible via les URL suivantes :
Vos sous-domaines Firebase :
PROJECT_ID .web.app/
etPROJECT_ID .firebaseapp.com/
Tous les connectés domaines personnalisés :
CUSTOM_DOMAIN /
Visitez la page de configuration d' hébergement pour plus de détails sur les règles de réécriture . Vous pouvez également en apprendre davantage sur l' ordre de priorité des réponses pour différentes configurations d' hébergement.
Tester localement
Pendant le développement, vous pouvez exécuter et tester votre image de conteneur localement. Pour obtenir des instructions détaillées, consultez la documentation Run - Cloud .
Prochaines étapes
Mettre en place la mise en cache de votre contenu dynamique sur un CDN mondial.
Interagir avec d' autres services Firebase à l' aide du Firebase Administrateur SDK .
Pour en savoir plus à propos de Cloud Run, y compris en détail des guides pratiques pour la mise en place, la gestion et la configuration des conteneurs.
Passez en revue les prix et les quotas et limites pour Cloud Run.