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 d'une source vous permet d'envoyer le code source et la configuration de votre application directement à App Hosting sans nécessiter de connexion GitHub persistante.

Lors du déploiement à partir d'une source, App Hosting importe votre code source dans un Google Cloud Storage bucket, 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 et 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 Firebase CLI ou de la Firebase console.

Autorisations IAM et configuration de l'infrastructure requises

Étant donné que la CLI Firebase et la console Firebase utilisent la même infrastructure backend pour stocker et compiler vos archives sources, les mêmes exigences en matière d'autorisations IAM s'appliquent aux deux méthodes de déploiement.

Les exigences exactes varient selon que vous effectuez ou non un déploiement vers 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 spécifiques de Firebase App Hosting.

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

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. Comme 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 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 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 cette période 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 l'emplacement initialisé)

Une fois le bucket source et les liaisons de rôle initialisés pour un emplacement (par un déploiement CLI initial ou une configuration de la console), les développeurs, éditeurs ou App Hosting administrateurs réguliers peuvent déployer des mises à jour. Les autorisations d'administration au niveau du projet ne sont pas requises pour les déploiements de routine.

Les autorisations de déploiement actives incluent les suivantes :

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

Déployer une fonction à partir d'une source avec la CLI Firebase

Firebase CLI version 14.4.0 et ultérieure vous permet d'envoyer le code source et les configurations de votre application directement de votre machine locale vers Firebase. Cette méthode 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 backend avec une seule commande 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 dans lequel effectuer le déploiement. Cette étape configure les déploiements Hosting pour votre répertoire local et vous invite à fournir des informations de configuration :
    • ID du backend dans 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
    • Environnement d'exécution Node.js de votre choix. La sélection d'un environnement d'exécution versionné permet aux mises à jour automatiques des images de base 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, créant le fichier dans votre projet en 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 de fichiers ZIP)

La Firebase console fournit une interface graphique permettant de déployer des applications en important directement une archive source compressée. Cette méthode remplace le flux de connexion GitHub dans les cas où vous préférez ne pas utiliser GitHub ou 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 Firebase CLI.

Formats acceptés

Le programme d'importation de la console valide et accepte nativement deux formats d'archive compressée :

  • .zip
  • .tgz

Ces formats sont explicitement affichés dans le texte de description du programme 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 Upload a zip à l'étape "Comment souhaitez-vous importer votre application ?".
  2. Préparation de l'intégration : cliquez sur "Next" (Suivant) pour déclencher 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'interface utilisateur affiche un indicateur de chargement avec des messages d'état dynamiques : "Enabling API..." "Checking permissions..." (Vérification des autorisations en cours...) et "Preparing bucket..." (Préparation du bucket en cours...).
    • 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 message 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 "Next" (Suivant) ainsi que le bouton final "Finish and Deploy" (Terminer et déployer) restent désactivés jusqu'à ce que le problème soit 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 Finish and Deploy (Terminer et déployer) : le bouton autonome "Finish" (Terminer) 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 le bon fonctionnement du backend.

Option B : Créer un déploiement manuel
  1. Ouvrir la boîte de dialogue : dans le tableau de bord Hosting, cliquez sur Create rollout (Créer un déploiement).
  2. Sélectionner la source : sélectionnez Upload a zip (Importer un fichier ZIP) dans l'assistant de la boîte de dialogue. Si le backend n'est pas associé à 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 ("Enabling API..." (Activation de l'API en cours...), "Checking permissions..." (Vérification des autorisations en cours...), and "Preparing bucket..." (Préparation du bucket en cours...)). Une fois l'opération terminée, 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 Deploy pour déclencher la compilation et le déploiement.

Déployer à l'aide de Terraform

Si vous avez besoin d'un meilleur contrôle sur 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 App Hosting ressources à l'aide de fichiers de configuration déclaratifs, et vous offre la possibilité de déployer votre propre image de conteneur prédéfinie directement dans App Hosting au lieu de vous appuyer sur App Hosting pour compiler à 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 par utiliser des exemples de fichiers de configuration et d'autres App Hosting ressources.

Configurer une connexion GitHub pour CI/CD

Vous avez la possibilité de connecter un dépôt GitHub à tout moment dans l'onglet Deployment (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 App Hosting backends ne seront pas affectés, mais le bouton Publish (Publier) de Firebase Studio sera supprimé. Pour continuer à publier des mises à jour sans modifier votre URL, migrez votre projet. Découvrez comment effectuer la migration.