Autres moyens de déployer sur App Hosting

La plupart du temps, nous vous recommandons d'utiliser des déploiements automatiques ou des 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 de transférer le code source et la configuration de votre application directement vers App Hosting sans nécessiter de connexion GitHub persistante.

Lors du déploiement à 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 et 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 que pour les déploiements GitHub. Si un fichier .gitignore est présent dans votre projet, les fichiers et dossiers qu'il contient sont exclus de votre déploiement.

Vous pouvez effectuer un déploiement à 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 compiler vos archives sources, les mêmes exigences d'autorisation IAM s'appliquent aux deux méthodes de déploiement.

Les exigences exactes dépendent du fait que vous déployez ou non pour la première fois dans un emplacement (région) spécifique. Pour en savoir plus sur les autorisations, consultez la présentation de Firebase IAM et les autorisations spécifiques à Firebase App Hosting.

Autorisations pour l'intégration initiale (premier déploiement dans un emplacement)

Lorsque le déploiement de la source locale est lancé pour la première fois dans un emplacement de projet, App Hosting doit provisionner un bucket GCS pour stocker vos archives et accorder à l'agent de service App Hosting l'accès à ces archives. Comme il s'agit de tâches d'administration 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 base d'éditeur ou de lecteur ne peut pas effectuer cette configuration initiale et sera bloqué.

Les autorisations de configuration préalables sont les suivantes :

  • Activer l'API Storage : serviceusage.services.enable
  • Créer un bucket source : storage.buckets.create et storage.buckets.list
  • Configurer l'agent de service : resourcemanager.projects.setIamPolicy pour accorder à App Hosting un accès en lecture (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 en accédant à Cloud Storage -> Buckets -> Cycle de vie -> Règles. Consultez Gérer les cycles de vie des objets.

Autorisations pour les déploiements ultérieurs (après l'initialisation de l'emplacement)

Une fois que le bucket source et les liaisons de rôles 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 peuvent déployer des mises à jour. Les autorisations d'administration au niveau du projet ne sont pas requises pour les déploiements de routines.

Les autorisations de déploiement actif incluent :

  • Vérifier le bucket : storage.buckets.list
  • Importer l'archive source : storage.objects.create
  • Déclencher la compilation et le déploiement : autorisations App Hosting standards (apphosting.builds.create et apphosting.rollouts.create)

Déployer depuis une source avec la CLI Firebase

La CLI Firebase v14.4.0 et versions ultérieures vous permet de transférer le code source et les configurations de votre application directement depuis votre ordinateur local vers Firebase. Cette option est pratique si vous gérez déjà d'autres déploiements Firebase (comme des règles de sécurité ou des fonctions) et que vous souhaitez déployer votre application Web et vos services de backend ensemble à l'aide d'une seule commande de la CLI.

Prérequis

  • Vos projets doivent être associés au forfait Blaze.
  • Vous devez exécuter firebase-tools version 14.4.0 ou ultérieure.

Procédure de déploiement

  1. Exécutez firebase init apphosting dans le répertoire de votre projet en local.
  2. Lorsque vous y êtes invité, sélectionnez Use an existing project (Utiliser un projet existant), puis choisissez votre projet Firebase cible.
  3. Sélectionnez un backend nouveau ou existant sur lequel effectuer le déploiement. Cette étape configure les déploiements App Hosting pour votre répertoire local et vous invite à fournir des détails de configuration :
    • ID du backend sur lequel effectuer le déploiement
    • Région dans laquelle effectuer le déploiement, si vous créez un backend
    • Chemin d'accès au répertoire racine du code de votre application
    • Votre environnement d'exécution Node.js préféré. La sélection d'un environnement d'exécution avec version permet aux mises à jour automatiques des images de base (ABIU) d'appliquer automatiquement des correctifs de sécurité à votre environnement sous-jacent.
  4. App Hosting enregistre vos préférences de déploiement dans firebase.json, en créant le fichier dans votre projet local s'il n'existe pas déjà. Une fois l'initialisation terminée, exécutez firebase deploy pour 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 d'un 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 autre configuration CI/CD.

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 compatibles

L'outil d'importation de la console valide et accepte de manière native deux formats d'archive compressée :

  • .zip
  • .tgz

Ces formats sont explicitement affichés dans le texte de description de l'outil d'importation de fichiers.

Procédure de déploiement

Option A : Lors de l'intégration initiale du backend
  1. Sélectionner la source : dans l'assistant de création de backend, sélectionnez Importer un fichier ZIP à l'étape "Comment souhaitez-vous importer votre application ?".
  2. Préparation de l'intégration : cliquer sur "Suivant" déclenche le flux de préparation en arrière-plan, qui active l'API Storage de manière séquentielle, s'assure que les rôles appropriés sont configurés et effectue un upsert sur le bucket. L'interface utilisateur affiche un icône de chargement avec des messages d'état dynamiques : "Activation de l'API...", "Vérification des autorisations…" et "Préparation du bucket…".
    • Gestion des exceptions et garde-fous : si une étape de préparation échoue (par exemple, si un utilisateur qui n'est pas Propriétaire reçoit un 403 PERMISSION_DENIED en raison d'autorisations IAM insuffisantes), l'interface utilisateur affiche un avertissement dédié vous invitant à contacter un Propriétaire du projet. La navigation par étapes est strictement verrouillée, et le bouton "Suivant" ainsi que le bouton final "Terminer et déployer" restent désactivés tant que le problème n'est pas résolu.
  3. 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.
  4. Configurer les paramètres : spécifiez le répertoire racine de votre application (par défaut, /).

  5. 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
  1. Ouvrir la boîte de dialogue : dans le tableau de bord App Hosting, cliquez sur Créer un déploiement.
  2. Sélectionner une source : sélectionnez Importer un fichier ZIP dans l'assistant de la boîte de dialogue. Si le backend ne dispose pas d'une connexion GitHub existante, l'option "GitHub" est désactivée.
  3. 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 terminée, faites glisser ou sélectionnez votre fichier d'archive à l'aide de l'outil 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 débutez avec 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 le CI/CD

Vous pouvez connecter 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 mettrons fin à Firebase Studio le 22 mars 2027. Vos backends App Hosting ne seront pas affectés, mais le bouton Publier dans Firebase Studio sera supprimé. Pour continuer à publier des mises à jour sans modifier votre URL, migrez votre projet. Découvrez comment effectuer la migration.