Inizia a utilizzare Terraform e Firebase

Firebase inizierà a supportare Terraform. Se fai parte di un team che vuole automatizzare e standardizzare la creazione di Firebase per i quali è stato eseguito il provisioning di risorse specifiche e servizi abilitati, quindi l'uso Terraform con Firebase può fare al caso tuo.

Il flusso di lavoro di base per l'utilizzo di Terraform con Firebase include quanto segue:

  • Creazione e personalizzazione di un file di configurazione Terraform (un file .tf), che specifica l'infrastruttura di cui eseguire il provisioning, ovvero vuoi eseguire il provisioning e i servizi che vuoi abilitare).

  • L'utilizzo dei comandi gcloud CLI che si interfacciano con Terraform per eseguire il provisioning dell'infrastruttura specificata nel file .tf.

di Gemini Advanced.

Che cosa puoi fare con Terraform e Firebase?

L'esempio di flusso di lavoro generalizzato in questa guida sta creando un nuovo progetto Firebase con un'app per Android. ma puoi fare molte cose con Terraform, ad esempio:

  • Eliminare e modificare l'infrastruttura esistente utilizzando Terraform.

  • Gestisci la configurazione e le attività specifiche del prodotto utilizzando Terraform, ad esempio:

    • Abilitazione di Firebase Authentication provider di accesso.
    • Creazione di Cloud Storage bucket o istanze di database e deployment Firebase Security Rules per loro.

Per eseguire tutte queste operazioni, puoi usare i file e i comandi di configurazione standard di Terraform attività di machine learning. Per aiutarti, ti abbiamo fornito file di configurazione Terraform di esempio per diversi usi comuni d'uso diversi.



Flusso di lavoro generalizzato per l'utilizzo di Terraform con Firebase

Prerequisiti

Questa guida è un'introduzione all'utilizzo di Terraform con Firebase, pertanto presuppone una conoscenza di base di Terraform. Assicurati di aver completato quanto segue prerequisiti prima di iniziare questo flusso di lavoro.

  • Installa Terraform e acquisire familiarità con Terraform grazie ai tutorial ufficiali.

  • Installa Google Cloud CLI (gcloud CLI). Accedi tramite un account utente o un account di servizio.


Passaggio 1: crea e personalizza un file di configurazione Terraform

Un file di configurazione Terraform richiede due sezioni principali (descritte in dettaglio di seguito):

Configurare provider

È necessaria una configurazione di provider, indipendentemente dai prodotti o servizi Firebase coinvolti.

  1. Crea un file di configurazione Terraform (come un file main.tf) nella tua regione .

    In questa guida, utilizzerai questo file di configurazione per specificare provider e tutta l'infrastruttura che vuoi che Terraform crei. Tieni presente che hai però delle opzioni per includere la configurazione del provider.

  2. Includi la seguente configurazione di provider nella parte superiore del file main.tf.

    Devi utilizzare il provider google-beta perché si tratta di una versione beta dell'utilizzo di Firebase con Terraform. Presta attenzione se utilizzi l'app in versione di produzione.

    # Terraform configuration to set up providers by version.
    terraform {
      required_providers {
        google-beta = {
          source  = "hashicorp/google-beta"
          version = "~> 5.0"
        }
      }
    }
    
    # Configures the provider to use the resource block's specified project for quota checks.
    provider "google-beta" {
      user_project_override = true
    }
    
    # Configures the provider to not use the resource block's specified project for quota checks.
    # This provider should only be used during project creation and initializing services.
    provider "google-beta" {
      alias = "no_user_project_override"
      user_project_override = false
    }

    Scopri di più sulle diversi tipi di attributi relativi al progetto (incluso ciò che questa guida chiama "progetto di controllo delle quote") quando utilizzi Terraform con Firebase.

  3. Vai alla sezione successiva per completare il file di configurazione e specificare l'infrastruttura da creare.

Specifica quale infrastruttura creare utilizzando i blocchi resource

Nel file di configurazione Terraform (per questa guida, il file main.tf), devi: e specificare tutta l'infrastruttura da creare con Terraform (ovvero tutte le le risorse di cui vuoi eseguire il provisioning e tutti i servizi che vuoi abilitare). Nel questa guida, troverai un elenco completo di tutti Risorse Firebase che supportano Terraform.

  1. Apri il file main.tf.

  2. Nella configurazione di provider, includi la seguente configurazione di resource isolati.

    Questo esempio di base crea un nuovo progetto Firebase e poi un'app Firebase per Android all'interno del progetto.

    # Terraform configuration to set up providers by version.
    ...
    
    # Configures the provider to use the resource block's specified project for quota checks.
    ...
    
    # Configures the provider to not use the resource block's specified project for quota checks.
    ...
    
    # Creates a new Google Cloud project.
    resource "google_project" "default" {
      provider   = google-beta.no_user_project_override
    
      name       = "Project Display Name"
      project_id = "project-id-for-new-project"
      # Required for any service that requires the Blaze pricing plan
      # (like Firebase Authentication with GCIP)
      billing_account = "000000-000000-000000"
    
      # Required for the project to display in any list of Firebase projects.
      labels = {
        "firebase" = "enabled"
      }
    }
    
    # Enables required APIs.
    resource "google_project_service" "default" {
      provider = google-beta.no_user_project_override
      project  = google_project.default.project_id
      for_each = toset([
        "cloudbilling.googleapis.com",
        "cloudresourcemanager.googleapis.com",
        "firebase.googleapis.com",
        # Enabling the ServiceUsage API allows the new project to be quota checked from now on.
        "serviceusage.googleapis.com",
      ])
      service = each.key
    
      # Don't disable the service if the resource block is removed by accident.
      disable_on_destroy = false
    }
    
    # Enables Firebase services for the new project created above.
    resource "google_firebase_project" "default" {
      provider = google-beta
      project  = google_project.default.project_id
    
      # Waits for the required APIs to be enabled.
      depends_on = [
        google_project_service.default
      ]
    }
    
    # Creates a Firebase Android App in the new project created above.
    resource "google_firebase_android_app" "default" {
      provider = google-beta
    
      project      = google_project.default.project_id
      display_name = "My Awesome Android app"
      package_name = "awesome.package.name"
    
      # Wait for Firebase to be enabled in the Google Cloud project before creating this App.
      depends_on = [
        google_firebase_project.default,
      ]
    }


Passaggio 2: esegui i comandi Terraform per creare l'infrastruttura specificata

Per eseguire il provisioning delle risorse e abilitare i servizi specificati in main.tf esegui i comandi seguenti dalla stessa directory del file main.tf. Per informazioni dettagliate su questi comandi, consulta Documentazione di Terraform.

  1. Se è la prima volta che esegui comandi Terraform nella è necessario inizializzare la directory di configurazione e installare il provider Google Terraform. Per farlo, esegui questo comando:

    terraform init
  2. Crea l'infrastruttura specificata nel file main.tf eseguendo il seguente comando:

    terraform apply
  3. Verifica che sia stato eseguito il provisioning o l'abilitazione di tutto come previsto:

    • Opzione 1: visualizza la configurazione stampata nel terminale eseguendo il seguente comando:

      terraform show
    • Opzione 2: visualizza il tuo progetto Firebase in Console Firebase.



Risorse Firebase con supporto Terraform

Le seguenti risorse Firebase e Google sono supportate da Terraform. e continuiamo ad aggiungere altre risorse. Pertanto, se non vedi la risorsa gestire con Terraform, ricontrolla a breve per verificare se è disponibile o richiedilo entro il giorno la segnalazione di un problema nel repository GitHub.


Gestione delle app e dei progetti Firebase

  • google_firebase_project: attiva i servizi Firebase in un progetto Google Cloud esistente

  • App Firebase

    di Gemini Advanced.

Firebase Authentication

Non ancora supportati:

  • Configurare l'autenticazione a più fattori (MFA) tramite Terraform

Firebase Realtime Database

Non ancora supportati:

  • Deployment di Firebase Realtime Database Security Rules tramite Terraform (scopri come esegui il deployment di Rules utilizzando altri strumenti, incluse le opzioni di pubblicità programmatica)

Cloud Firestore

  • google_firestore_database - crea un'istanza Cloud Firestore

  • google_firestore_index - abilita query efficienti per Cloud Firestore

  • google_firestore_document - avvia un'istanza Cloud Firestore con un documento specifico in una raccolta

    Importante: non utilizzare dati reali di utenti finali o di produzione in questo seed documento.

di Gemini Advanced. di Gemini Advanced.

Cloud Storage for Firebase

di Gemini Advanced. di Gemini Advanced.

Firebase Security Rules (per Cloud Firestore e Cloud Storage)

Tieni presente che Firebase Realtime Database utilizza un sistema di provisioning diverso per Firebase Security Rules.

  • google_firebaserules_ruleset: definisci i Firebase Security Rules da applicare all'istanza Cloud Firestore o a un Cloud Storage bucket

  • google_firebaserules_release - eseguire il deployment di set di regole specifici nell'istanza Cloud Firestore o Cloud Storage bucket


Firebase App Check


Firebase Extensions



File di configurazione Terraform di esempio per casi d'uso comuni



Risoluzione dei problemi e domande frequenti