Modalità alternative per il deployment in App Hosting

Nella maggior parte dei casi, ti consigliamo di utilizzare le implementazioni automatiche o le implementazioni attivate manualmente dalla console Firebase. Tuttavia, potresti avere bisogno di un flusso di deployment più personalizzato. App Hosting offre diverse opzioni per il deployment personalizzato.

Esegui il deployment dall'origine

Il deployment dal codice sorgente ti consente di eseguire il push del codice sorgente e della configurazione della tua applicazione direttamente su App Hosting senza richiedere una connessione GitHub persistente.

Quando esegui il deployment dal codice sorgente, App Hosting carica il codice sorgente in un bucket Google Cloud Storage, esegue il comando di build del framework in Cloud Build ed esegue il deployment degli artefatti compilati in Cloud Run e Cloud CDN. Per i deployment di origini locali viene utilizzato lo stesso processo di build dei deployment GitHub. Se nel progetto è presente un file .gitignore, i file e le cartelle elencati al suo interno vengono esclusi dal deployment.

Puoi eseguire il deployment da un'origine locale utilizzando l'interfaccia a riga di comando Firebase o la console Firebase.

Autorizzazioni IAM richieste e configurazione dell'infrastruttura

Poiché sia l'interfaccia a riga di comando Firebase sia la console Firebase utilizzano la stessa infrastruttura di backend per archiviare e creare gli archivi di origine, entrambi i metodi di deployment sono soggetti agli stessi requisiti di autorizzazione IAM.

I requisiti esatti dipendono dal fatto che tu stia eseguendo il deployment in una località (regione) specifica per la prima volta o meno. Per saperne di più sulle autorizzazioni, consulta la panoramica di Firebase IAM e le autorizzazioni specifiche di Firebase App Hosting.

Autorizzazioni per l'onboarding iniziale (primo deployment in una località)

Quando il deployment dell'origine locale viene avviato per la prima volta in una località del progetto, App Hosting deve eseguire il provisioning di un bucket GCS per archiviare i tuoi archivi e concedere l'accesso all'agente di servizio App Hosting per raggiungerli. Poiché si tratta di attività amministrative a livello di progetto, sono necessarie le autorizzazioni di Project Owner o Amministratore IAM. Un utente con un ruolo Editor o Visualizzatore di base non può eseguire questa configurazione iniziale e verrà bloccato.

Le autorizzazioni di configurazione dei prerequisiti includono:

  • Abilita l'API Storage: serviceusage.services.enable
  • Crea bucket di origine: storage.buckets.create e storage.buckets.list
  • Configura l'agente di servizio: resourcemanager.projects.setIamPolicy per concedere a App Hosting l'accesso in lettura (roles/storage.objectViewer) in modo che possa recuperare il codice caricato durante le build.

Per il deployment iniziale, il bucket GCS viene creato con un ciclo di vita di 30 giorni, dopodiché viene eliminato. Tuttavia, puoi gestire questo periodo di tempo nella console Cloud in Cloud Storage -> Bucket -> Ciclo di vita -> Regole. Consulta Gestisci i cicli di vita degli oggetti.

Autorizzazioni per i deployment successivi (dopo l'inizializzazione della località)

Una volta inizializzati il bucket di origine e le associazioni dei ruoli per una località (tramite un deployment iniziale dell'interfaccia a riga di comando o la configurazione della console), gli sviluppatori, gli editor o gli amministratori App Hosting standard possono eseguire il deployment degli aggiornamenti. Le autorizzazioni di amministrazione a livello di progetto non sono necessarie per i deployment di routine.

Le autorizzazioni di deployment attivo includono:

  • Verifica il bucket: storage.buckets.list
  • Carica archivio di origine: storage.objects.create
  • Attivazione di build e implementazione: autorizzazioni App Hosting standard (apphosting.builds.create e apphosting.rollouts.create)

Esegui il deployment dall'origine con l'interfaccia a riga di comando Firebase

La versione 14.4.0 e successive dell'interfaccia a riga di comando di Firebase ti consente di eseguire il push del codice sorgente e delle configurazioni della tua app direttamente dalla tua macchina locale a Firebase. Questo è utile se gestisci già altri deployment Firebase (come regole di sicurezza o funzioni) e vuoi eseguire il deployment dell'app web e dei servizi di backend insieme con un singolo comando dell'interfaccia a riga di comando.

Prerequisiti

  • I tuoi progetti devono essere nel piano Blaze.
  • Devi utilizzare la versione 14.4.0 di firebase-tools o una versione successiva.

Procedura di deployment

  1. Esegui firebase init apphosting nella directory del progetto locale.
  2. Quando richiesto, seleziona Usa un progetto esistente e scegli il progetto Firebase di destinazione.
  3. Seleziona un backend nuovo o esistente in cui eseguire il deployment. Questo passaggio configura i deployment App Hosting per la tua directory locale e ti chiede i dettagli di configurazione:
    • L'ID del backend su cui eseguire il deployment
    • La regione in cui eseguire il deployment, se crei un nuovo backend
    • Il percorso della directory root del codice dell'applicazione
    • Il tuo runtime Node.js preferito. La selezione di un runtime con versione consente agli aggiornamenti automatici delle immagini di base (ABIU) di applicare automaticamente le patch di sicurezza all'ambiente sottostante.
  4. App Hosting salva le tue preferenze di deployment in firebase.json, creando il file nel tuo progetto locale se non esiste già. Una volta completata l'inizializzazione, esegui firebase deploy per eseguire il deployment del codice sorgente.

Esempio di file 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"
      ]
    }
  ]
}

Esegui il deployment con la console Firebase (caricamento di file ZIP)

La console Firebase fornisce un'interfaccia grafica per eseguire il deployment delle applicazioni caricando direttamente un archivio di origine compresso. Questa è un'alternativa al flusso di connessione GitHub, per i casi in cui preferisci non utilizzare GitHub o preferisci una configurazione CI/CD diversa.

I caricamenti degli archivi possono essere eseguiti durante la creazione iniziale del backend o durante la creazione di un'implementazione manuale su un backend esistente, inclusi i backend di cui è stato eseguito il deployment originariamente utilizzando l'interfaccia a riga di comando Firebase.

Formati supportati

Lo strumento di caricamento della console convalida e accetta in modo nativo due formati di archivio compressi:

  • .zip
  • .tgz

Questi formati sono visualizzati esplicitamente nel testo descrittivo dello strumento di caricamento file.

Procedura di deployment

Opzione A: durante l'onboarding iniziale del backend
  1. Seleziona l'origine: nella procedura guidata di creazione del backend, seleziona Carica un file ZIP nel passaggio "Come vuoi importare la tua app?".
  2. Preparazione dell'onboarding: se fai clic su "Avanti", viene attivato il flusso di preparazione in background, che abilita in sequenza l'API Storage, garantisce la configurazione dei ruoli corretti e applica l'upsert al bucket. La UI mostra un'icona di caricamento con messaggi di stato dinamici: "Abilitazione dell'API in corso…", "Controllo delle autorizzazioni in corso…" e "Preparazione del bucket in corso…".
    • Gestione degli errori e misure di sicurezza: se un passaggio di preparazione non va a buon fine (ad esempio, un utente non proprietario riceve un 403 PERMISSION_DENIED a causa di autorizzazioni IAM insufficienti), la UI visualizza un avviso dedicato che ti invita a contattare un Project Owner. La navigazione con il pulsante di avanzamento è rigorosamente bloccata e il pulsante "Avanti" e il pulsante finale "Fine ed esegui il deployment" rimangono disattivati finché il problema non viene risolto.
  3. Carica i file: una volta completata la preparazione, seleziona o trascina il file di archivio nel componente di caricamento file.
  4. Configura le impostazioni: specifica la directory root dell'app (il valore predefinito è /).

  5. Fai clic su Completa ed esegui il deployment: il pulsante "Completa" autonomo è disabilitato per i caricamenti di file ZIP perché il caricamento di un archivio è un'azione una tantum e deve essere seguito immediatamente da un deployment per garantire un backend funzionale.

Opzione B: creazione di un'implementazione manuale
  1. Apri la finestra di dialogo: nella dashboard App Hosting, fai clic su Crea implementazione.
  2. Seleziona origine: seleziona Carica un file ZIP nel selettore della finestra di dialogo. Se il backend non ha una connessione GitHub esistente, l'opzione "GitHub" è disabilitata.
  3. Preparazione e caricamento: la selezione attiva lo stesso flusso di preparazione in background ("Abilitazione dell'API in corso…", "Controllo delle autorizzazioni in corso…" e "Preparazione del bucket in corso…"). Una volta completata l'operazione, trascina o seleziona il file di archivio utilizzando l'uploader, specifica la directory root dell'app e fai clic su Esegui il deployment per attivare la build e l'implementazione.

Esegui il deployment con Terraform

Se hai bisogno di un maggiore controllo sul processo di build e sull'ambiente di cui è stato eseguito il deployment, puoi eseguire il deployment utilizzando Terraform. Terraform ti consente di definire e gestire le tue risorse App Hosting utilizzando file di configurazione dichiarativi e offre la possibilità di eseguire il deployment della tua immagine container predefinita direttamente in App Hosting, invece di fare affidamento su App Hosting per la creazione dal codice sorgente.

Se non hai mai utilizzato Terraform, consulta Inizia a utilizzare Terraform e Firebase. Se hai già familiarità con Terraform, puoi iniziare con i file di configurazione di esempio e altre risorse App Hosting.

Configura una connessione GitHub per CI/CD

Puoi collegare un repository GitHub in qualsiasi momento nella scheda Deployment delle impostazioni di un backend nella console Firebase. In questo modo, puoi eseguire il deployment di un prototipo di app da un ambiente locale e poi passare a una pipeline CI/CD automatizzata quando è tutto pronto.

Esegui il deployment utilizzando strumenti AI

Ritireremo Firebase Studio il 22 marzo 2027. Anche se i tuoi backend App Hosting non sono interessati, il pulsante Pubblica in Firebase Studio verrà ritirato. Per continuare a pubblicare aggiornamenti senza modificare l'URL, esegui la migrazione del progetto. Scopri come eseguire la migrazione.