La plupart du temps, nous vous recommandons d'utiliser les déploiements automatiques ou les déploiements déclenchés manuellement depuis la console Firebase. Toutefois, vous pouvez avoir besoin d'un flux de déploiement plus personnalisé. App Hosting propose plusieurs options de déploiement personnalisé.
Déployer une fonction à partir d'une source
Le déploiement à partir de la source vous permet d'envoyer le code source et la configuration de votre application directement à App Hosting sans nécessiter de connexion GitHub persistante.
Lorsque vous déployez à partir de la source, App Hosting importe votre code source dans un bucket Google Cloud Storage, exécute la commande de compilation de votre framework dans Cloud Build, puis déploie les artefacts compilés dans Cloud Run et Cloud CDN. Le même processus de compilation est utilisé pour les déploiements de sources locales et les déploiements GitHub. Si un fichier .gitignore est présent dans votre projet, les fichiers et dossiers listés à l'intérieur sont exclus de votre déploiement.
Vous pouvez déployer à partir d'une source locale à l'aide de la CLI Firebase ou de la console Firebase.
Autorisations IAM requises et configuration de l'infrastructure
Étant donné que la CLI Firebase et la console Firebase utilisent la même infrastructure de backend pour stocker et créer vos archives sources, les mêmes exigences en termes d'autorisations IAM s'appliquent aux deux méthodes de déploiement.
Les exigences exactes dépendent de si vous déployez ou non dans un emplacement (région) spécifique pour la première fois. Pour en savoir plus sur les autorisations, consultez la présentation de Firebase IAM et les autorisations Firebase App Hosting spécifiques.
Autorisations pour l'intégration initiale (premier déploiement dans un établissement)
Lorsque le déploiement de sources locales est lancé pour la première fois dans un emplacement de projet, Hosting doit provisionner un bucket GCS pour stocker vos archives et accorder à l'agent de service Hosting l'accès à ces archives. Étant donné qu'il s'agit de tâches administratives au niveau du projet, elles nécessitent des autorisations de Propriétaire du projet ou d'administrateur IAM. Un utilisateur disposant d'un rôle de lecteur ou d'éditeur de base ne peut pas effectuer cette configuration initiale et sera bloqué.
Les autorisations de configuration requises incluent :
- Activer l'API Storage :
serviceusage.services.enable - Créer un bucket source :
storage.buckets.createetstorage.buckets.list - Configurer l'agent de service :
resourcemanager.projects.setIamPolicypour accorder l'accès en lecture Hosting (roles/storage.objectViewer) afin qu'il puisse récupérer le code importé lors des compilations.
Pour le déploiement initial, le bucket GCS est créé avec un cycle de vie de 30 jours, après quoi il est supprimé. Toutefois, vous pouvez gérer ce délai dans la console Cloud, sous Cloud Storage > Buckets > Cycle de vie > Règles. Consultez Gérer les cycles de vie des objets.
Autorisations pour les déploiements ultérieurs (une fois la position initialisée)
Une fois que le bucket source et les liaisons de rôle ont été initialisés pour un emplacement (par un déploiement initial de la CLI ou une configuration de la console), les développeurs, éditeurs ou administrateurs App Hosting réguliers peuvent déployer des mises à jour. Les autorisations d'administration au niveau du projet ne sont pas nécessaires pour les déploiements de routine.
Les autorisations de déploiement actif incluent :
- Valider le bucket :
storage.buckets.list - Importer l'archive source :
storage.objects.create - Déclencher la compilation et le déploiement : autorisations standards Hosting (
apphosting.builds.createetapphosting.rollouts.create)
Déployer à partir d'une source avec la CLI Firebase
La CLI v14.4.0 et versions ultérieures de Firebase vous permettent d'envoyer le code source et les configurations de votre application directement depuis votre machine locale vers Firebase. C'est pratique si vous gérez déjà d'autres déploiements Firebase (tels que des règles de sécurité ou des fonctions) et que vous souhaitez déployer votre application Web et vos services de backend ensemble avec une seule commande CLI.
Prérequis
- Vos projets doivent être associés à la formule Blaze.
- Vous devez exécuter firebase-tools version 14.4.0 ou ultérieure.
Procédure de déploiement
- Exécutez
firebase init apphostingdans le répertoire de votre projet en local. - Lorsque vous y êtes invité, sélectionnez Utiliser un projet existant, puis choisissez votre projet Firebase cible.
- Sélectionnez un backend nouveau ou existant sur lequel déployer votre application. Cette étape configure les déploiements Hosting pour votre répertoire local et vous invite à fournir des informations de configuration :
- ID du backend sur lequel déployer
- Région dans laquelle déployer le backend, si vous en créez un
- Chemin d'accès au répertoire racine du code de votre application
- Votre environnement d'exécution Node.js préféré. Sélectionner un environnement d'exécution avec version permet aux mises à jour automatiques des images de base d'appliquer automatiquement des correctifs de sécurité à votre environnement sous-jacent.
- App Hosting enregistre vos préférences de déploiement dans
firebase.jsonet crée le fichier dans votre projet en local s'il n'existe pas déjà. Une fois l'initialisation terminée, exécutezfirebase deploypour déployer votre code source.
Exemple de fichier firebase.json
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions"
]
}
]
}
Déployer avec la console Firebase (importation de fichier ZIP)
La console Firebase fournit une interface graphique permettant de déployer des applications en important directement une archive source compressée. Il s'agit d'une alternative au flux de connexion GitHub, pour les cas où vous préférez ne pas utiliser GitHub ou préférez une configuration CI/CD différente.
Les importations d'archives peuvent être effectuées lors de la création initiale du backend ou lors de la création d'un déploiement manuel sur un backend existant, y compris les backends initialement déployés à l'aide de la CLI Firebase.
Formats acceptés
L'outil d'importation de la console valide et accepte nativement deux formats d'archives compressées :
.zip.tgz
Ces formats sont explicitement indiqués dans le texte descriptif du programme d'importation de fichiers.
Procédure de déploiement
Option A : Lors de l'intégration initiale du backend
- Sélectionner la source : dans l'assistant de création du backend, sélectionnez Importer un fichier ZIP à l'étape "Comment souhaitez-vous importer votre application ?".
- Préparation à l'intégration : un clic sur "Suivant" déclenche le flux de préparation en arrière-plan, qui active séquentiellement l'API Storage, s'assure que les rôles appropriés sont configurés et insère ou met à jour le bucket. L'UI affiche un indicateur de chargement avec des messages d'état dynamiques : "Activation de l'API..." "Vérification des autorisations…" et "Préparation du bucket…"
- Gestion des erreurs et garde-fous : si une étape de préparation échoue (par exemple, si un utilisateur autre que le propriétaire reçoit un
403 PERMISSION_DENIEDen raison d'autorisations IAM insuffisantes), l'interface utilisateur affiche un avertissement spécifique vous invitant à contacter un propriétaire du projet. La navigation dans le sélecteur est strictement verrouillée. Les boutons "Suivant" et "Terminer et déployer" restent désactivés tant que le problème n'est pas résolu.
- Gestion des erreurs et garde-fous : si une étape de préparation échoue (par exemple, si un utilisateur autre que le propriétaire reçoit un
- Importer des fichiers : une fois la préparation terminée, sélectionnez ou faites glisser votre fichier d'archive dans le composant d'importation de fichiers.
Configurer les paramètres : spécifiez le répertoire racine de l'application (par défaut,
/).Cliquez sur Terminer et déployer : le bouton "Terminer" autonome est désactivé pour les importations de fichiers ZIP, car l'importation d'une archive est une action ponctuelle qui doit être immédiatement suivie d'un déploiement pour garantir un backend fonctionnel.
Option B : Créer un déploiement manuel
- Ouvrir la boîte de dialogue : dans le tableau de bord Hosting, cliquez sur Créer un déploiement.
- Sélectionner une source : sélectionnez Importer un fichier ZIP dans le sélecteur de la boîte de dialogue. Si le backend ne dispose pas d'une connexion GitHub existante, l'option "GitHub" est désactivée.
- Préparation et importation : la sélection déclenche le même flux de préparation en arrière-plan (Activation de l'API…, Vérification des autorisations… et Préparation du bucket…). Une fois l'opération réussie, faites glisser ou sélectionnez votre fichier d'archive à l'aide du programme d'importation, spécifiez le répertoire racine de l'application, puis cliquez sur Déployer pour déclencher la compilation et le déploiement.
Déployer à l'aide de Terraform
Si vous avez besoin de mieux contrôler le processus de compilation et l'environnement déployé, vous pouvez effectuer le déploiement à l'aide de Terraform. Terraform vous permet de définir et de gérer vos ressources App Hosting à l'aide de fichiers de configuration déclaratifs. Il vous permet également de déployer votre propre image de conteneur prédéfinie directement sur App Hosting au lieu de vous appuyer sur App Hosting pour créer à partir de votre code source.
Si vous ne connaissez pas Terraform, consultez Premiers pas avec Terraform et Firebase. Si vous connaissez déjà Terraform, vous pouvez commencer à utiliser des exemples de fichiers de configuration et d'autres ressources App Hosting.
Configurer une connexion GitHub pour CI/CD
Vous pouvez associer un dépôt GitHub à tout moment dans l'onglet Déploiement des paramètres d'un backend dans la console Firebase. Cela vous permet de déployer un prototype d'application à partir d'un environnement local, puis de passer à un pipeline CI/CD automatisé lorsque vous êtes prêt.
Déployer à l'aide d'outils d'IA
Nous allons arrêter Firebase Studio le 22 mars 2027. Bien que vos backends App Hosting ne soient pas concernés, le bouton Publier de Firebase Studio sera supprimé. Pour continuer à publier des mises à jour sans modifier votre URL, migrez votre projet. Découvrez comment migrer.