Modalità alternative per il deployment in App Hosting

Nella maggior parte dei casi, ti consigliamo di utilizzare i rollout automatici o quelli attivati 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 dall'origine ti consente di eseguire il push del codice sorgente e della configurazione dell'applicazione direttamente a App Hosting senza richiedere una connessione GitHub persistente.

Quando esegui il deployment dall'origine, App Hosting carica il codice sorgente in un Google Cloud Storage bucket, 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 origine locale viene utilizzato lo stesso processo di compilazione dei deployment di 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'Firebaseinterfaccia a riga di comando o la Firebaseconsole.

Autorizzazioni IAM richieste e configurazione dell'infrastruttura

Poiché sia l0/} CLI sia la Firebase console utilizzano la stessa infrastruttura di backend per archiviare e creare gli archivi di origine, gli stessi requisiti di autorizzazione IAM si applicano a entrambi i metodi di deployment.Firebase

I requisiti esatti dipendono dal fatto che tu stia eseguendo o meno il deployment in una località (regione) specifica per la prima volta. Per ulteriori informazioni 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 di origine locale viene avviato per la prima volta in una località del progetto, Hosting deve eseguire il provisioning di un bucket GCS per archiviare gli archivi e concedere all'Hosting agente di servizio l'accesso per raggiungerli. Poiché si tratta di attività amministrative a livello di progetto, richiedono le autorizzazioni di proprietario del progetto o amministratore IAM. Un utente con un ruolo di 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 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 Gestire 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 di ruoli per una località (tramite un deployment iniziale dell'interfaccia a riga di comando o una configurazione della console), gli sviluppatori, editor o App Hosting amministratori regolari possono eseguire il deployment degli aggiornamenti. Le autorizzazioni di amministrazione a livello di progetto non sono richieste per i deployment di routine.

Le autorizzazioni di deployment attive includono:

  • Verifica il bucket: storage.buckets.list
  • Carica l'archivio di origine: storage.objects.create
  • Attiva la build e il rollout: autorizzazioni Hosting standard (apphosting.builds.create e apphosting.rollouts.create)

Esegui il deployment dall'origine con la CLI Firebase

Firebase CLI v14.4.0 e versioni successive ti consente di eseguire il push del codice sorgente e delle configurazioni dell'app direttamente dalla macchina locale a Firebase. Questa operazione è utile se gestisci già altri deployment di Firebase (ad esempio regole di sicurezza o funzioni) e vuoi eseguire il deployment della tua app web e dei servizi di backend insieme a un singolo comando dell'interfaccia a riga di comando.

Prerequisiti

  • I tuoi progetti devono essere nel piano Blaze.
  • Devi eseguire firebase-tools versione 14.4.0 o successive.

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 su cui eseguire il deployment. Questo passaggio configura i deployment Hosting per la directory locale e ti chiede i dettagli di configurazione:
    • L'ID del backend su cui eseguire il deployment
    • La regione su cui eseguire il deployment, se crei un nuovo backend
    • Il percorso della directory principale del codice dell'applicazione
    • Il runtime Node.js che preferisci. La selezione di un runtime con versione consente gli aggiornamenti automatici delle immagini di base (ABIU) per applicare automaticamente le patch di sicurezza all'ambiente sottostante.
  4. App Hosting salva le preferenze di deployment in firebase.json, creando il file nel progetto locale se non esiste già. Una volta completata correttamente l'inizializzazione, esegui firebase deploy per eseguire il deployment del codice sorgente.

Esempio di 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 ZIP)

La Firebase console fornisce un'interfaccia grafica per eseguire il deployment delle applicazioni caricando direttamente un archivio di origine compresso. Questa operazione funge da alternativa al flusso di connessione GitHub, nei 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 quando crei un rollout manuale su un backend esistente, inclusi i backend di cui è stato eseguito il deployment originariamente utilizzando la Firebase CLI.

Formati supportati

Il programma di caricamento della console convalida e accetta in modo nativo due formati di archivio compressi:

  • .zip
  • .tgz

Questi formati vengono visualizzati in modo esplicito nel testo della descrizione del programma di caricamento dei 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 durante il passaggio "Come vuoi importare la tua app?".
  2. Preparazione dell'onboarding: facendo clic su "Avanti" si attiva il flusso di preparazione in background, che abilita in sequenza l'API Storage, garantisce la configurazione dei ruoli corretti e esegue l'upsert del bucket. L'interfaccia utente mostra un indicatore 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 errore 403 PERMISSION_DENIED a causa di autorizzazioni IAM insufficienti), l'interfaccia utente mostra un avviso dedicato che ti invita a contattare un proprietario del progetto. La navigazione tramite stepper è 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 correttamente la preparazione, seleziona o trascina il file di archivio nel componente di caricamento dei file.
  4. Configura le impostazioni: specifica la directory principale dell'app (il valore predefinito è /).

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

Opzione B: creazione di un rollout manuale
  1. Apri la finestra di dialogo: nella dashboard Hosting, fai clic su Crea rollout.
  2. Seleziona l'origine: seleziona Carica un file ZIP nello stepper della finestra di dialogo. Se il backend non ha una connessione GitHub esistente, l'opzione "GitHub" è disattivata.
  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 correttamente, trascina o seleziona il file di archivio utilizzando il programma di caricamento, specifica la directory principale dell'app e fai clic su Esegui il deployment per attivare la build e il rollout.

Esegui il deployment con Terraform

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

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

Configura una connessione GitHub per CI/CD

Puoi collegare un repository GitHub in qualsiasi momento nella scheda Deployment delle impostazioni di un backend nella Firebase console. 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 gli strumenti AI

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