Terraform ve Firebase'i kullanmaya başlayın

Firebase Terraform'u desteklemeye başlıyor. Belirli kaynakların sağlandığı ve hizmetlerin etkinleştirildiği Firebase projeleri oluşturmayı otomatikleştirmek ve standartlaştırmak isteyen bir ekipteyseniz Terraform'u Firebase ile birlikte kullanmak sizin için uygun olabilir.

Terraform'u Firebase ile kullanmaya yönelik temel iş akışı aşağıdakileri içerir:

  • Sağlamak istediğiniz altyapıyı (yani, sağlamak istediğiniz kaynaklar ve etkinleştirmek istediğiniz hizmetler) belirten bir Terraform yapılandırma dosyası (bir .tf dosyası) oluşturma ve özelleştirme.

  • .tf dosyasında belirtilen altyapıyı sağlamak için Terraform ile arayüz oluşturan gCloud CLI komutlarını kullanma.

Terraform ve Firebase ile neler yapabilirsiniz?

Bu kılavuzdaki örnek genelleştirilmiş iş akışı, Android uygulamasıyla yeni bir Firebase projesi oluşturmaktır. Ancak Terraform ile çok daha fazlasını yapabilirsiniz:

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

  • Terraform'u kullanarak aşağıdakiler gibi ürüne özel yapılandırmayı ve görevleri yönetin:

    • Firebase Authentication oturum açma sağlayıcılarını etkinleştirme.
    • Cloud Storage paketleri veya veritabanı örnekleri oluşturma ve bunlar için Firebase Güvenlik Kurallarını dağıtma.

Tüm bu görevleri gerçekleştirmek için standart Terraform yapılandırma dosyalarını ve komutlarını kullanabilirsiniz. Bu konuda size yardımcı olmak amacıyla, çeşitli yaygın kullanım durumları için örnek Terraform yapılandırma dosyaları sağladık.



Terraform'u Firebase ile kullanmaya yönelik genelleştirilmiş iş akışı

Önkoşullar

Bu kılavuz, Terraform'u Firebase ile kullanmaya giriş niteliğinde olduğundan Terraform'da temel yeterlilik varsayılmaktadır. Bu iş akışına başlamadan önce aşağıdaki önkoşulları tamamladığınızdan emin olun.

  • Terraform'u yükleyin ve resmi eğitimlerini kullanarak Terraform'u öğrenin.

  • Google Cloud CLI'yi (gCloud CLI) yükleyin . Bir kullanıcı hesabı veya hizmet hesabı kullanarak oturum açın.


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

Bir Terraform yapılandırma dosyası iki ana bölüme ihtiyaç duyar (bunlar aşağıda ayrıntılı olarak açıklanmıştır):

provider ayarlayın

Hangi Firebase ürün veya hizmetlerinin dahil olduğuna bakılmaksızın bir provider kurulumu gereklidir.

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

    Bu kılavuzda, bu yapılandırma dosyasını hem provider kurulumunu hem de Terraform'un oluşturmasını istediğiniz tüm altyapıyı belirtmek için kullanacaksınız. Ancak sağlayıcı kurulumunu nasıl ekleyeceğinizle ilgili seçeneklerinizin olduğunu unutmayın.

  2. main.tf dosyasının en üstüne aşağıdaki provider kurulumunu ekleyin.

    Bu, Firebase'i Terraform ile kullanmanın beta sürümü olduğundan google-beta sağlayıcısını kullanmanız gerekir. Ü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
    }
    

    Terraform'u Firebase ile kullanırken projeyle ilgili farklı türde özellikler (bu kılavuzda "kota kontrolü projesi" olarak adlandırılanlar dahil) hakkında daha fazla bilgi edinin.

  3. Yapılandırma dosyanızı tamamlamak ve hangi altyapının oluşturulacağını belirtmek için bir sonraki bölüme geçin.

resource bloklarını kullanarak hangi altyapının oluşturulacağını belirtin

Terraform yapılandırma dosyanızda (bu kılavuz için main.tf dosyanız), Terraform'un oluşturmasını istediğiniz tüm altyapıyı (yani sağlamak istediğiniz tüm kaynakları ve etkinleştirmek istediğiniz tüm hizmetleri) belirtmeniz gerekir. Bu kılavuzda Terraform'u destekleyen tüm Firebase kaynaklarının tam listesini bulabilirsiniz.

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

  2. provider kurulumunun altına aşağıdaki resource blokları yapılandırmasını ekleyin.

    Bu temel örnek, yeni bir Firebase projesi oluşturur ve ardından bu proje içinde bir Firebase Android Uygulaması oluşturur.

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


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

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

  1. Dizinde Terraform komutlarını ilk kez çalıştırıyorsanız, yapılandırma dizinini başlatmanız ve Google Terraform sağlayıcısını yüklemeniz gerekir. Bunu aşağıdaki komutu çalıştırarak yapın:

    terraform init
  2. Aşağıdaki komutu çalıştırarak main.tf dosyanızda belirtilen altyapıyı oluşturun:

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

    • Seçenek 1: Aşağıdaki komutu çalıştırarak terminalinizde yazdırılan konfigürasyona bakın:

      terraform show
    • 2. Seçenek: Firebase projenizi Firebase konsolunda görüntüleyin.



Terraform destekli Firebase kaynakları

Aşağıdaki Firebase ve Google kaynaklarında Terraform desteği bulunmaktadır. Ve sürekli olarak daha fazla kaynak ekliyoruz! Dolayısıyla, Terraform ile yönetmek istediğiniz kaynağı göremiyorsanız, kullanılabilir olup olmadığını görmek için kısa süre sonra tekrar kontrol edin veya GitHub deposunda bir sorun bildirerek talepte bulunun.


Firebase proje ve uygulama yönetimi

  • google_firebase_project — mevcut bir Google Cloud projesinde Firebase hizmetlerini etkinleştirin

  • google_firebase_project_location — projenin varsayılan Google Cloud kaynaklarının konumunu ayarlar

  • Firebase Uygulamaları


Firebase Kimlik Doğrulaması

Henüz desteklenmiyor:

  • Terraform aracılığıyla çok faktörlü kimlik doğrulamayı (MFA) yapılandırma

Firebase Gerçek Zamanlı Veritabanı

Henüz desteklenmiyor:

  • Firebase Gerçek Zamanlı Veritabanı Güvenliği Kurallarını Terraform aracılığıyla dağıtma (programatik seçenekler de dahil olmak üzere diğer araçları kullanarak bu Kuralları nasıl dağıtacağınızı öğrenin)

Bulut Firestore

  • google_firestore_database — Cloud Firestore örneği oluşturun

  • google_firestore_index — Cloud Firestore için verimli sorguları etkinleştirin

  • google_firestore_document - bir koleksiyondaki belirli bir belgeyle Cloud Firestore örneğini tohumlayın

    Önemli: Bu başlangıç ​​belgesinde gerçek son kullanıcı veya üretim verilerini kullanmayın.


Firebase için Bulut Depolama


Firebase Güvenlik Kuralları (Cloud Firestore ve Cloud Storage için)

Firebase Gerçek Zamanlı Veritabanının, Firebase Güvenlik Kuralları için farklı bir temel hazırlık sistemi kullandığını unutmayın.

  • google_firebaserules_ruleset — Cloud Firestore örneği veya Cloud Storage grubu için geçerli olan Firebase Güvenlik Kurallarını tanımlayın

  • google_firebaserules_release — Cloud Firestore örneğine veya bir Cloud Storage paketine belirli kural kümelerini dağıtın


Firebase Uygulama Kontrolü


Firebase Uzantıları



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



Sorun Giderme ve SSS