Nella maggior parte dei casi, ti consigliamo di utilizzare implementazioni automatiche o implementazioni attivate manualmente dalla console Firebase. Tuttavia, potresti avere bisogno di un flusso di implementazione più personalizzato. App Hosting offre diverse opzioni per l'implementazione personalizzata.
Esegui il deployment dall'origine
Il deployment dall'origine consente di eseguire il push del codice sorgente e della configurazione dell'applicazione direttamente su App Hosting senza richiedere una connessione GitHub permanente.
Quando esegui il deployment dall'origine, 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. Lo stesso processo di compilazione viene utilizzato per i deployment di origine locali e per i deployment GitHub. Se nel progetto è presente un file .gitignore, i file e le cartelle elencati al suo interno vengono esclusi dalla distribuzione.
Puoi eseguire il deployment da un'origine locale utilizzando l'interfaccia a riga di comando Firebase o la console Firebase.
Configurazione dell'infrastruttura e autorizzazioni IAM richieste
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, gli stessi requisiti di autorizzazione IAM si applicano a entrambi i metodi di deployment.
I requisiti esatti dipendono dal fatto che tu stia o meno eseguendo il deployment in una località (regione) specifica per la prima volta. 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 nella posizione di un progetto, Hosting deve eseguire il provisioning di un bucket GCS per archiviare gli archivi e concedere all'agente di servizio Hosting 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.createestorage.buckets.list - Configura l'agente di servizio:
resourcemanager.projects.setIamPolicyper concedere l'accesso in lettura (roles/storage.objectViewer) a Hosting 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 posizione)
Una volta inizializzati il bucket di origine e le associazioni di ruoli per una località (tramite una distribuzione iniziale della CLI o la configurazione della console), gli sviluppatori, gli editor o App Hostinggli amministratori regolari possono eseguire il deployment degli aggiornamenti. Le autorizzazioni di amministrazione a livello di progetto non sono necessarie per le implementazioni di routine.
Le autorizzazioni di deployment attive includono:
- Verifica bucket:
storage.buckets.list - Carica archivio sorgente:
storage.objects.create - Attivare la build e il lancio: autorizzazioni standard Hosting (
apphosting.builds.createeapphosting.rollouts.create)
Esegui il deployment dall'origine con l'interfaccia a riga di comando Firebase
Firebase La CLI v14.4.0 e versioni successive ti consente di eseguire il push del codice sorgente e delle configurazioni della tua app direttamente dalla tua macchina locale a Firebase. Questa soluzione è comoda se gestisci già altri deployment Firebase (come regole di sicurezza o funzioni) e vuoi eseguire il deployment della tua app web e dei servizi di backend insieme a un unico comando CLI.
Prerequisiti
- I tuoi progetti devono essere nel piano Blaze.
- Devi utilizzare firebase-tools versione 14.4.0 o successive.
Procedura di deployment
- Esegui
firebase init apphostingnella directory del progetto locale. - Quando richiesto, seleziona Utilizza un progetto esistente e scegli il progetto Firebase di destinazione.
- 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 di cui eseguire il deployment
- La regione in 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 controllo delle versioni consente aggiornamenti automatici delle immagini di base (ABIU) per applicare automaticamente patch di sicurezza all'ambiente sottostante.
- 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, eseguifirebase deployper 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 di file ZIP)
La console Firebase fornisce un'interfaccia grafica per il deployment delle applicazioni caricando direttamente un archivio di origine compresso. Questa operazione funge da alternativa al flusso di connessione GitHub, per i casi in cui preferisci non utilizzare GitHub o preferisci una configurazione CI/CD diversa.
I caricamenti di archivi possono essere eseguiti durante la creazione iniziale del backend o quando crei un lancio manuale su un backend esistente, inclusi i backend originariamente implementati utilizzando la CLI Firebase.
Formati supportati
Il programma di caricamento della console convalida e accetta in modo nativo due formati di archivio compresso:
.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
- Seleziona origine: nella procedura guidata di creazione del backend, seleziona Carica un file zip nel passaggio "Come vuoi importare l'app?".
- Preparazione dell'onboarding: facendo 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 inserisce o aggiorna il bucket. L'interfaccia utente mostra un indicatore di caricamento
con messaggi di stato dinamici: "Abilitazione dell'API in corso…" "Controllo
autorizzazioni…" e "Preparazione bucket…".
- Gestione degli errori e misure di protezione: se un passaggio di preparazione non va a buon fine (ad esempio, un utente non proprietario riceve un
403 PERMISSION_DENIEDa causa di autorizzazioni IAM insufficienti), l'interfaccia utente mostra un avviso dedicato che ti invita a contattare un proprietario del progetto. La navigazione a passi è bloccata e i pulsanti "Avanti" e "Fine e implementa" rimangono disattivati finché il problema non viene risolto.
- Gestione degli errori e misure di protezione: se un passaggio di preparazione non va a buon fine (ad esempio, un utente non proprietario riceve un
- Carica file: una volta completata correttamente la preparazione, seleziona o trascina il file di archivio nel componente di caricamento dei file.
Configura impostazioni: specifica la directory principale dell'app (il valore predefinito è
/).Fai clic su Fine ed esegui il deployment: il pulsante autonomo "Fine" è disattivato per i caricamenti di file zip perché il caricamento di un archivio è un'azione una tantum e deve essere seguita immediatamente da un deployment per garantire un backend funzionale.
Opzione B: creazione di un lancio manuale
- Apri finestra di dialogo: nella dashboard Hosting, fai clic su Crea implementazione.
- Seleziona origine: seleziona Carica un file ZIP nel selettore della finestra di dialogo. Se il backend non dispone di una connessione GitHub esistente, l'opzione "GitHub" è disattivata.
- Preparazione e caricamento: la selezione attiva lo stesso flusso di preparazione in background ("Abilitazione dell'API…", "Controllo delle autorizzazioni…" e "Preparazione del bucket…"). Una volta completata l'operazione, 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 l'implementazione.
Esegui il deployment con Terraform
Se hai bisogno di un maggiore controllo sul processo di compilazione e sull'ambiente di deployment, puoi eseguire il deployment utilizzando Terraform. Terraform ti consente di definire e gestire le risorse di App Hosting utilizzando file di configurazione dichiarativi e offre la possibilità di eseguire il deployment della tua immagine container predefinita direttamente su App Hosting anziché fare affidamento su App Hosting per la compilazione 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.
Configurare una connessione GitHub per CI/CD
Puoi connettere un repository GitHub in qualsiasi momento nella scheda Deployment delle impostazioni di un backend nella console Firebase. In questo modo, puoi implementare 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
Il 22 marzo 2027 ritireremo Firebase Studio. Sebbene i backend App Hosting non siano 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.