Terraform ve Firebase'i kullanmaya başlayın

Firebase, Google'ın Terraform olarak değiştirin. Firebase oluşturmayı otomatikleştirmek ve standartlaştırmak isteyen bir ekipteyseniz temel hazırlığı yapılmış ve hizmetlerin etkinleştirilmiş olduğu projelerde, Firebase'li Terraform, sizin için uygun olabilir.

Terraform'u Firebase ile kullanmak için temel iş akışı şunları içerir:

  • Terraform yapılandırma dosyasını (.tf dosyası) oluşturmak ve sağlamak istediğiniz altyapıyı (yani, oluşturduğunuz istediğiniz hizmetleri ve istediğiniz hizmetleri girin).

  • Şu işlemleri gerçekleştirmek için Terraform ile arayüz oluşturan gcloud CLI komutlarını kullanarak: .tf dosyasında belirtilen altyapının sağlanmasını sağlar.

ziyaret edin.

Terraform ve Firebase ile neler yapabilirsiniz?

Bu kılavuzdaki genel iş akışı örneği bir Android uygulamasıyla yeni bir Firebase projesi oluşturuyor. Ama çok fazla şey yapabilirsiniz. daha fazla bilgi edinebilirsiniz. Örneğin:

  • Terraform'u kullanarak mevcut altyapıyı silin ve değiştirin.

  • Terraform kullanarak ürüne özel yapılandırma ve görevleri yönetin. Örneğin:

    • Firebase Authentication oturum açma sağlayıcı etkinleştiriliyor.
    • Cloud Storage paket veya veritabanı örneği oluşturma ve dağıtma Onlar için Firebase Security Rules.

Tüm bunları yapmak için standart Terraform yapılandırma dosyalarını ve komutlarını kullanabilirsiniz görevlerden biridir. Size bu konuda yardımcı olmak için örnek Terraform yapılandırma dosyaları (çeşitli yaygın kullanımlar için) durumlarda işe yarar.



Firebase ile Terraform'u kullanmak için genel iş akışı

Ön koşullar

Bu kılavuz, Terraform'u Firebase ile kullanmaya giriş amaçlı olduğundan temel uzmanlık bilgisine sahip olacaksınız. Aşağıdakileri tamamladığınızdan emin olun: önkoşullarını karşılayıp karşılamadığını kontrol edin.

  • Terraform'u yükleme ve resmi eğitimlerine katılarak Terraform hakkında bilgi edinin.

  • Google Cloud CLI uygulamasını yükleyin (gcloud CLI). Şununla giriş yap: kullanıcı hesabı veya hizmet hesabı


1. Adım: Terraform yapılandırma dosyası oluşturun ve özelleştirin

Terraform yapılandırma dosyasının iki ana bölümü olmalıdır (bu bölümler, aşağıda bulabilirsiniz):

provider cihazınızı ayarlayın

Hangi Firebase ürün veya hizmetlerinden bağımsız olarak provider kurulumu gereklidir dahil edilir.

  1. Yerel sunucunuzda Terraform yapılandırma dosyası (main.tf dosyası gibi) oluşturun dizin.

    Bu kılavuzda, provider kurulumunu ve Terraform'un oluşturmasını istediğiniz tüm altyapıyı içerir. Not, ancak sağlayıcı kurulumunu ekleme seçenekleriniz vardır.

  2. main.tf dosyasının üst kısmına aşağıdaki provider kurulumunu ekleyin.

    Bu, şu uygulamanın beta sürümü olduğundan google-beta sağlayıcısını kullanmalısınız: daha fazla bilgi edineceksiniz. Üretimde kullanırken dikkatli olun.

    # Terraform configuration to set up providers by version.
    terraform {
      required_providers {
        google-beta = {
          source  = "hashicorp/google-beta"
          version = "~> 4.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
    }
    

    Şu konu hakkında daha fazla bilgi edinin: projeyle ilgili farklı özellik türlerini (bu kılavuzun "kota kontrolü projesi" olarak adlandırdığı öğeler dahil) Firebase ile Terraform.

  3. Yapılandırma dosyanızı tamamlamak ve pek çok yolu vardır.

resource blokları kullanarak oluşturulacak altyapıyı belirtin

Terraform yapılandırma dosyanızda (bu kılavuz için, main.tf dosyanız) şunları yapmanız gerekir: Terraform'un oluşturmasını istediğiniz tüm altyapıyı belirtin (yani, kaynaklar ve etkinleştirmek istediğiniz tüm hizmetler). İçinde aşağıda açıklandığı gibi, tüm web sitesi Terraform'u destekleyen Firebase kaynakları.

  1. main.tf dosyanızı açın.

  2. provider kurulumuna aşağıdaki resource yapılandırmasını ekleyin engeller.

    Bu temel örnek, yeni bir Firebase projesi oluşturur ve ardından Firebase Android uygulaması.

    # 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,
      ]
    }
    


2. Adım: Belirtilen altyapıyı oluşturmak için Terraform komutlarını çalıştırın

main.tf belgenizde belirtilen kaynakları sağlamak ve hizmetleri etkinleştirmek için main.tf dosyanızla aynı dizinde aşağıdaki komutları çalıştırın. Bu komutlar hakkında ayrıntılı bilgi için Terraform dokümanları.

  1. dizinini başlatmak ve yüklemek için Google Terraform sağlayıcısıdır. Bu işlemi aşağıdaki komutu çalıştırarak yapabilirsiniz:

    terraform init
  2. Şu komutu çalıştırarak main.tf dosyanızda belirtilen altyapıyı oluşturun: şu komutu kullanın:

    terraform apply
  3. Her şeyin beklendiği gibi sağlandığını veya etkinleştirildiğini onaylayın:

    • 1. Seçenek: Şu komutu çalıştırarak terminalinizde yazdırılan yapılandırmayı görün: şu komutu kullanın:

      terraform show
    • 2. Seçenek: Firebase projenizi Firebase konsolunuza gidin.



Terraform destekli Firebase kaynakları

Aşağıdaki Firebase ve Google kaynaklarında Terraform desteği sunulmaktadır. İlk olarak sürekli yeni kaynaklar eklemeye devam ediyoruz. Bu nedenle, oluşturduğunuz kaynağı yönetmek istiyorsanız kısa süre sonra tekrar kontrol edin. şu tarihe kadar talep edebilirsiniz: GitHub deposunda sorun kaydı oluşturun.


Firebase proje ve uygulama yönetimi

  • google_firebase_project: mevcut bir Google Cloud projesinde Firebase hizmetlerini etkinleştir

  • google_firebase_project_location: projenin varsayılan Google Cloud kaynakları için konumu ayarlayın

  • Firebase Uygulamaları

    ziyaret edin.

Firebase Authentication

  • google_identity_platform_config: Google Cloud Identity Platform öğesini (GCIP) (Firebase Authentication için arka ucu) etkinleştirin ve proje düzeyinde kimlik doğrulama ayarları sunun

    • Firebase Authentication hizmetini Terraform üzerinden yapılandırmak için GCIP'nin etkinleştirilmesi gerekir. Marka mutlaka Firebase Authentication ayarlarını yapmak için örnek .tf dosyası.

    • Terraform'un GCIP'yi ve/veya Firebase Authentication'yi etkinleştireceği proje Blaze fiyatlandırma planı kapsamında olmalıdır (yani projenin ilişkilendirilmiş Cloud Billing hesabı). Bunu programlı bir şekilde yapabilirsiniz: ayarlamak billing_account özelliğini google_project kaynağında kullanabilirsiniz.

    • Bu kaynakla daha fazla yapılandırma (ör. yerel oturum açma yöntemleri, anonim, e-posta/şifre ve telefon doğrulaması gibi engelleme işlevlerine ve yetkilendirilmiş alan adlarına sahip olması gerekir.

  • google_identity_platform_default_supported_idp_config: Google, Facebook veya Apple gibi yaygın birleşik Kimlik Sağlayıcıları yapılandırma

  • identity_platform_oauth_idp_config: rastgele OAuth Kimlik Sağlayıcı (IdP) kaynaklarını yapılandırma

  • google_identity_platform_inbound_saml_config: SAML entegrasyonlarını yapılandırma

Henüz desteklenmiyor:

  • Terraform aracılığıyla çok öğeli kimlik doğrulamasını (MFA) yapılandırma

Firebase Realtime Database

Henüz desteklenmiyor:

  • Terraform üzerinden Firebase Realtime Database Security Rules dağıtma (nasıl yapılacağını öğrenin) bu Rules öğelerini dağıt (programatik seçenekler dahil) diğer araçları kullanarak)

Cloud Firestore

  • google_firestore_database: Cloud Firestore örneği oluştur

  • google_firestore_index: Cloud Firestore için etkili sorguları etkinleştirin

  • google_firestore_document: bir koleksiyonda belirli bir dokümanla Cloud Firestore örneği oluşturma

    Önemli: Bu başlangıç noktasında gerçek son kullanıcı veya üretim verilerini kullanmayın. uygulayacaksınız.

ziyaret edin. ziyaret edin.

Cloud Storage for Firebase

ziyaret edin. ziyaret edin.

Firebase Security Rules (Cloud Firestore ve Cloud Storage için)

Firebase Realtime Database uygulamasının, Firebase Security Rules.

  • google_firebaserules_ruleset: Cloud Firestore örneği için geçerli olan Firebase Security Rules veya Cloud Storage paket

  • google_firebaserules_release: Cloud Firestore örneğine belirli kural kümelerini dağıtabilir veya Cloud Storage paket


Firebase App Check


Firebase Extensions



Yaygın kullanım alanları için örnek Terraform yapılandırma dosyaları



Sorun giderme ve SSS