Teraform और Firebase का इस्तेमाल शुरू करना

Firebase, Terraform के साथ काम करना शुरू कर रहा है. अगर आप किसी ऐसी टीम में हैं जो Firebase बनाने की प्रोसेस को ऑटोमेट और स्टैंडर्ड बनाना चाहती है खास संसाधनों के साथ प्रोजेक्ट और सेवाओं को चालू किया हो, फिर इनका इस्तेमाल किया जा रहा हो Firebase के साथ टेराफ़ॉर्म इस्तेमाल करना आपके लिए सही हो सकता है.

Firebase के साथ Terraform का इस्तेमाल करने के बुनियादी वर्कफ़्लो में ये शामिल हैं:

  • ऐसी टेरेस कॉन्फ़िगरेशन फ़ाइल (.tf फ़ाइल) बनाना और उसे पसंद के मुताबिक बनाना जो वह इन्फ़्रास्ट्रक्चर तय करता है जिसे आपको प्रावधान करना है (यानी, ऐसे संसाधन जिन सेवाओं को आप चालू करना चाहते हैं.

  • टेराफ़ॉर्म के साथ इंटरफ़ेस करने वाले gcloud CLI कमांड का इस्तेमाल करके .tf फ़ाइल में बताए गए इन्फ़्रास्ट्रक्चर का प्रावधान करें.

टेरेस और Firebase की मदद से क्या-क्या किया जा सकता है?

इस गाइड में सामान्य वर्कफ़्लो का उदाहरण Android ऐप्लिकेशन के साथ एक नया Firebase प्रोजेक्ट बना रहा है. हालाँकि, आपको बहुत कुछ किया जा सकता है टेराफ़ॉर्म के और भी कई वर्शन, जैसे:

  • terraform का इस्तेमाल करके मौजूदा इन्फ़्रास्ट्रक्चर मिटाएं और उसमें बदलाव करें.

  • टेराफ़ॉर्म का इस्तेमाल करके, प्रॉडक्ट के हिसाब से कॉन्फ़िगरेशन और टास्क मैनेज करना, जैसे कि:

    • साइन-इन करने की सेवा देने वाली Firebase Authentication कंपनियां चालू की जा रही हैं.
    • Cloud Storage बकेट या डेटाबेस इंस्टेंस बनाना और उनके लिए Firebase Security Rules डिप्लॉय करना.

इन सभी कामों को पूरा करने के लिए, स्टैंडर्ड टेराफ़ॉर्म कॉन्फ़िगरेशन फ़ाइलों और कमांड का इस्तेमाल किया जा सकता है टास्क. इसमें आपकी मदद करने के लिए, हमने कई सामान्य इस्तेमाल के लिए, Terraform कॉन्फ़िगरेशन फ़ाइलों का सैंपल मामले.



Firebase के साथ Turaform का इस्तेमाल करने के लिए, सामान्य वर्कफ़्लो

ज़रूरी शर्तें

इस गाइड में, Firebase के साथ Turaform का इस्तेमाल करने के बारे में जानकारी दी गई है. इसलिए, इसे टेराफ़ॉर्म के साथ बुनियादी कुशलता. पक्का करें कि आपने ये टास्क पूरे कर लिए हों इस वर्कफ़्लो को शुरू करने से पहले ज़रूरी शर्तें देखें.

  • Terraform इंस्टॉल करें टेराफ़ॉर्म के आधिकारिक ट्यूटोरियल की मदद से, इसके बारे में जानें.

  • Google Cloud CLI इंस्टॉल करें (gcloud CLI). इसका इस्तेमाल करके लॉगिन करें उपयोगकर्ता खाता या एक सेवा खाता.


पहला चरण: Terraform कॉन्फ़िगरेशन फ़ाइल बनाना और उसे पसंद के मुताबिक बनाना

टेराफ़ॉर्म कॉन्फ़िगरेशन फ़ाइल के लिए दो मुख्य सेक्शन की ज़रूरत होती है (इन सेक्शन के बारे में पूरी जानकारी दी गई है) नीचे दिया गया है):

अपना provider सेट अप करें

provider सेटअप करना ज़रूरी है, भले ही कोई भी Firebase प्रॉडक्ट या सेवा हो शामिल हैं.

  1. अपने डिवाइस में, कोई टेरेस कॉन्फ़िगरेशन फ़ाइल बनाएं (जैसे, main.tf फ़ाइल) डायरेक्ट्री.

    इस गाइड में, आपको provider, दोनों के बारे में बताने के लिए इस कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करना होगा सेटअप और वह सभी इन्फ़्रास्ट्रक्चर शामिल हैं जिसे आपकोterraform को बनाना है. ध्यान दें, हालांकि, आपके पास प्रोवाइडर सेटअप को शामिल करने के विकल्प होते हैं.

  2. main.tf फ़ाइल के सबसे ऊपर, यह provider सेटअप शामिल करें.

    यह बीटा वर्शन में रिलीज़ है, इसलिए आपको google-beta की सेवा देने वाली कंपनी का इस्तेमाल करना होगा टेराफ़ॉर्म के साथ Firebase का इस्तेमाल करके. प्रोडक्शन में इस्तेमाल करते समय सावधानी बरतें.

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

    ज़्यादा जानने के लिए, प्रोजेक्ट से जुड़े अलग-अलग टाइप के एट्रिब्यूट (इसमें यह जानकारी भी शामिल है कि इस गाइड में "कोटे की जांच वाला प्रोजेक्ट" क्या है) का इस्तेमाल करते समय Firebase के साथ टेराफ़ॉर्म.

  3. अपनी कॉन्फ़िगरेशन फ़ाइल को पूरा करने के लिए अगले सेक्शन पर जाएं और बताएं कि आपको कौनसा इन्फ़्रास्ट्रक्चर बनाना है.

यह बताएं कि resource ब्लॉक का इस्तेमाल करके कौनसा इन्फ़्रास्ट्रक्चर बनाना है

आपकी टेराफ़ॉर्म कॉन्फ़िगरेशन फ़ाइल में (इस गाइड, आपकी main.tf फ़ाइल के लिए), आपको ये काम करने होंगे उन सभी इंफ़्रास्ट्रक्चर के बारे में बताएं जिन्हें आपको Teleraform की मदद से बनाना है (यानी कि सभी आपके लिए उपलब्ध संसाधन और वे सभी सेवाएं जिन्हें आपको चालू करना है). तय सीमा में इस गाइड में, सभी लिंक की पूरी सूची देखें Terraform के साथ काम करने वाले Firebase के संसाधन.

  1. अपनी main.tf फ़ाइल खोलें.

  2. provider के सेटअप में, resource के लिए यह कॉन्फ़िगरेशन शामिल करें ब्लॉक.

    इस बुनियादी उदाहरण से एक नया Firebase प्रोजेक्ट बनता है और यह एक नया Firebase प्रोजेक्ट बनाता है उस प्रोजेक्ट में मौजूद Firebase का Android ऐप्लिकेशन.

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


दूसरा चरण: बताए गए इन्फ़्रास्ट्रक्चर को बनाने के लिए, Terraform कमांड चलाना

संसाधनों का प्रावधान करने और अपने main.tf में बताई गई सेवाएं चालू करने के लिए फ़ाइल अपलोड करने के लिए, उसी डायरेक्ट्री से इन कमांड को चलाएं जो आपकी main.tf फ़ाइल है. इन निर्देशों के बारे में ज़्यादा जानने के लिए, टेराफ़ॉर्म से जुड़े दस्तावेज़.

  1. अगर आप पहली बार डायरेक्ट्री के तौर पर, आपको कॉन्फ़िगरेशन डायरेक्ट्री शुरू करनी होगी और Google टेराफ़ॉर्म कंपनी है. इसके लिए, नीचे दिया गया निर्देश देखें:

    terraform init
  2. अपनी main.tf फ़ाइल में बताए गए इन्फ़्रास्ट्रक्चर को बनाने के लिए, यह कमांड चलाएं:

    terraform apply
  3. पुष्टि करें कि सब कुछ उम्मीद के मुताबिक प्रोवाइड या चालू किया गया है:

    • विकल्प 1: निम्न आदेश:

      terraform show
    • दूसरा विकल्प: यहां अपना Firebase प्रोजेक्ट देखें Firebase कंसोल.



Terraform के साथ काम करने वाले Firebase संसाधन

Firebase और Google के इन संसाधनों में Terraform की सुविधा काम करती है. और हम हम ज़्यादा संसाधन जोड़ते हैं! इसलिए, अगर आपको वह संसाधन नहीं दिखता है जिसे आपको Terraform की मदद से मैनेज करना है, तो जल्द ही देखें कि वह उपलब्ध है या नहीं. इसके अलावा, GitHub repo में समस्या दर्ज करके भी इसका अनुरोध किया जा सकता है.


Firebase प्रोजेक्ट और ऐप्लिकेशन मैनेजमेंट

  • google_firebase_project — किसी मौजूदा Google Cloud प्रोजेक्ट पर Firebase की सेवाएं चालू करना

  • Firebase ऐप्लिकेशन

    • google_firebase_apple_app — Firebase और Apple प्लैटफ़ॉर्म का ऐप्लिकेशन बनाना या मैनेज करना
    • google_firebase_android_app — Firebase Android ऐप्लिकेशन बनाना या मैनेज करना
    • google_firebase_web_app — Firebase वेब ऐप्लिकेशन बनाना या मैनेज करना

Firebase Authentication

  • google_identity_platform_configGoogle Cloud Identity Platform (GCIP) चालू करें (जो Firebase Authentication के लिए बैकएंड है) और प्रोजेक्ट-लेवल पर पुष्टि करने की सेटिंग उपलब्ध कराएं

    • Tenraform के ज़रिए Firebase Authentication को कॉन्फ़िगर करने के लिए, GCIP को चालू करना ज़रूरी है. कंपनी या ब्रैंड तो Firebase Authentication सेट अप करने के तरीके के लिए, .tf फ़ाइल का सैंपल.

    • वह प्रोजेक्ट जिसमें Turaform GCIP और/या Firebase Authentication को चालू करेगा ब्लेज़ कीमत के प्लान पर होना चाहिए (यानी कि प्रोजेक्ट में Cloud Billing खाता जुड़ा हुआ है). इसे प्रोग्राम के हिसाब से, अपने-आप प्रोसेस होने की सुविधा के ज़रिए किया जा सकता है सेट कर रही हूँ billing_account विशेषता google_project संसाधन में शामिल करें.

    • इस संसाधन से कई और कॉन्फ़िगरेशन भी चालू किए जा सकते हैं. जैसे, स्थानीय साइन-इन के तरीके, जैसे कि पहचान छिपाकर ईमेल/पासवर्ड, और फ़ोन की पुष्टि करने की सुविधा. और अनुमति वाले डोमेन को ब्लॉक करने वाले फ़ंक्शन और अनुमति वाले डोमेन.

  • google_identity_platform_default_supported_idp_config — Google, Facebook या Apple जैसे सामान्य फ़ेडरेटेड आइडेंटिटी प्रोवाइडर कॉन्फ़िगर करना

  • identity_platform_oauth_idp_config — किसी भी OAuth आइडेंटिटी प्रोवाइडर (आईडीपी) सोर्स को कॉन्फ़िगर करना

  • google_identity_platform_inbound_saml_config — एसएएमएल इंटिग्रेशन कॉन्फ़िगर करें

फ़िलहाल, यह सुविधा इन डिवाइसों पर काम नहीं करती:

  • Turaform के ज़रिए बहु-स्तरीय पुष्टि (MFA) को कॉन्फ़िगर करना

Firebase Realtime Database

फ़िलहाल, यह सुविधा इन डिवाइसों पर काम नहीं करती:

  • टेराफ़ॉर्म के ज़रिए Firebase Realtime Database Security Rules को डिप्लॉय किया जा रहा है (इसका तरीका जानें इन Rules को डिप्लॉय करें दूसरे टूल का इस्तेमाल करना, जिनमें प्रोग्रामैटिक विकल्प भी शामिल हैं)

Cloud Firestore

  • google_firestore_databaseCloud Firestore इंस्टेंस बनाएं

  • google_firestore_indexCloud Firestore के लिए कुशल क्वेरी चालू करें

  • google_firestore_document — किसी कलेक्शन में मौजूद किसी दस्तावेज़ के साथ Cloud Firestore इंस्टेंस को सीड करना

    अहम जानकारी: इस सीड (इनपुट के तौर पर रैंडम संख्या) में असली उपयोगकर्ता या प्रोडक्शन डेटा का इस्तेमाल न करें दस्तावेज़.


Cloud Storage for Firebase


Firebase Security Rules (Cloud Firestore और Cloud Storage के लिए)

ध्यान दें कि Firebase Realtime Database इसके लिए एक अलग प्रावधान सिस्टम का इस्तेमाल करता है Firebase Security Rules.

  • google_firebaserules_rulesetFirebase Security Rules को परिभाषित करें, जो Cloud Firestore इंस्टेंस पर लागू होता हो या Cloud Storage बकेट

  • google_firebaserules_releaseCloud Firestore इंस्टेंस या Cloud Storage बकेट में खास नियमों को डिप्लॉय करना


Firebase App Check

  • google_firebase_app_check_service_config — किसी सेवा के लिए, App Check पर नीति उल्लंघन ठीक करने का तरीका (एनफ़ोर्समेंट) चालू करें
  • google_firebase_app_check_app_attest_config — ऐप्लिकेशन की पुष्टि करने वाली सेवा देने वाली कंपनी के साथ, Apple के प्लैटफ़ॉर्म के लिए बनाए गए ऐप्लिकेशन को रजिस्टर करना
  • google_firebase_app_check_device_check_config — DeviceCheck की सेवा देने वाली कंपनी के साथ, Apple के प्लैटफ़ॉर्म के लिए बनाए गए ऐप्लिकेशन को रजिस्टर करना
  • google_firebase_app_check_play_integrity_config — Play Integrity सेवा देने वाली कंपनी के साथ कोई Android ऐप्लिकेशन रजिस्टर करना
  • google_firebase_app_check_recaptcha_enterprise_config — reCAPTCHA Enterprise की सेवा देने वाली कंपनी के साथ वेब ऐप्लिकेशन रजिस्टर करना
  • google_firebase_app_check_recaptcha_v3_config — reCAPTCHA वर्शन 3 की सेवा देने वाली कंपनी के साथ वेब ऐप्लिकेशन रजिस्टर करना
  • google_firebase_app_check_debug_token — जांच करने के लिए डीबग टोकन का इस्तेमाल करें

Firebase Extensions



इस्तेमाल के सामान्य उदाहरणों के लिए, Tenraform कॉन्फ़िगरेशन फ़ाइलों का सैंपल



समस्या का हल और अक्सर पूछे जाने वाले सवाल