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

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

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

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

  • gcloud सीएलआई कमांड इस्तेमाल करना जो टेराफ़ॉर्म के साथ इंटरफ़ेस करने के लिए .tf फ़ाइल में दी गई इन्फ़्रास्ट्रक्चर का प्रावधान करें.

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

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

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

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

    • Firebase से पुष्टि करने की सुविधा में साइन इन करने वाली कंपनियों को चालू करना.
    • Cloud Storage बकेट या डेटाबेस इंस्टेंस बनाना और डिप्लॉय करना Firebase के सुरक्षा नियम बनाए जा सकते हैं.

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



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

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

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

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

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


पहला चरण: 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 = "~> 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
    }
    

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

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

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

आपकी टेराफ़ॉर्म कॉन्फ़िगरेशन फ़ाइल में (इस गाइड, आपकी main.tf फ़ाइल के लिए), आपको ये काम करने होंगे उस सभी इंफ़्रास्ट्रक्चर के बारे में बताएं जो आपको Tenraform बनाने के लिए चाहिए (यानी सभी जिन संसाधनों का आपको प्रावधान करना है और वे सभी सेवाएं जिन्हें आपको चालू करना है). तय सीमा में इस गाइड में, सभी लिंक की पूरी सूची देखें 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 कंसोल.



Teraform सहायता वाले Firebase के संसाधन

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


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

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

  • google_firebase_project_location — प्रोजेक्ट के डिफ़ॉल्ट Google Cloud संसाधनों के लिए जगह सेट कर सकते हैं

  • Firebase ऐप्लिकेशन

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

Firebase से पुष्टि करना

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

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

    • वह प्रोजेक्ट जिसमें Teleraform GCIP और/या Firebase से पुष्टि करने की सुविधा चालू करेगा ब्लेज़ कीमत के प्लान पर होना चाहिए (यानी कि प्रोजेक्ट में क्लाउड बिलिंग खाता). इसे प्रोग्राम के हिसाब से, अपने-आप प्रोसेस होने की सुविधा के ज़रिए किया जा सकता है सेट कर रही हूँ 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 रीयल टाइम डेटाबेस

अभी तक समर्थित नहीं:

  • Turaform की मदद से, Firebase रीयल टाइम डेटाबेस के सुरक्षा नियमों को डिप्लॉय करना (ऐसा करने का तरीका जानें इन नियमों को लागू करें दूसरे टूल का इस्तेमाल करना, जिनमें प्रोग्रामैटिक विकल्प भी शामिल हैं)

Cloud Firestore

  • google_firestore_database — Cloud Firestore इंस्टेंस बनाएं

  • google_firestore_index — Cloud Firestore के लिए बेहतर क्वेरी चालू करें

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

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


Firebase के लिए Cloud Storage


Firebase के सुरक्षा नियम (Cloud Firestore और Cloud Storage के लिए)

ध्यान दें कि Firebase रीयल टाइम डेटाबेस इसके लिए एक अलग प्रावधान सिस्टम का इस्तेमाल करता है Firebase के सुरक्षा नियम.

  • google_firebaserules_ruleset — Firebase के लिए सुरक्षा के ऐसे नियम बनाओ जो Cloud Firestore इंस्टेंस पर लागू होते हैं या Cloud Storage बकेट

  • google_firebaserules_release — Cloud Firestore इंस्टेंस के लिए, खास नियमसेट लागू करें या Cloud Storage बकेट


Firebase App Check

  • google_firebase_app_check_service_config — किसी सेवा के लिए, ऐप्लिकेशन की जांच के लिए नीति उल्लंघन ठीक करने का तरीका (एनफ़ोर्समेंट) चालू करें
  • google_firebase_app_check_app_attest_config — Apple प्लैटफ़ॉर्म ऐप्लिकेशन को App अटेस्ट प्रोवाइडर के साथ रजिस्टर करना
  • google_firebase_app_check_device_check_config — Apple प्लैटफ़ॉर्म ऐप्लिकेशन को DeviceCheck सेवा देने वाली कंपनी के साथ रजिस्टर करना
  • 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 v3 की सेवा देने वाली कंपनी की मदद से किसी वेब ऐप्लिकेशन को रजिस्टर करना
  • google_firebase_app_check_debug_token — जांच करने के लिए डीबग टोकन का इस्तेमाल करें

Firebase एक्सटेंशन



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



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