Terraform এবং Firebase দিয়ে শুরু করুন

Firebase Terraform সমর্থন করতে শুরু করেছে। আপনি যদি এমন একটি দলে থাকেন যা নির্দিষ্ট সংস্থান এবং পরিষেবাগুলি সক্ষম করে Firebase প্রকল্পগুলিকে স্বয়ংক্রিয় এবং মানসম্মত করতে চায়, তাহলে Firebase-এর সাথে Terraform ব্যবহার করা আপনার জন্য উপযুক্ত হতে পারে।

Firebase-এর সাথে Terraform ব্যবহার করার জন্য মৌলিক কর্মপ্রবাহের মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:

  • একটি Terraform কনফিগারেশন ফাইল (একটি .tf ফাইল) তৈরি এবং কাস্টমাইজ করা যা আপনি যে পরিকাঠামোর ব্যবস্থা করতে চান তা নির্দিষ্ট করে (অর্থাৎ, আপনি যে সংস্থানগুলি সরবরাহ করতে চান এবং যে পরিষেবাগুলি আপনি সক্ষম করতে চান)।

  • gcloud CLI কমান্ডগুলি ব্যবহার করে যা Terraform-এর সাথে ইন্টারফেস করে .tf ফাইলে নির্দিষ্ট পরিকাঠামোর ব্যবস্থা করতে।

আপনি Terraform এবং Firebase দিয়ে কি করতে পারেন?

এই নির্দেশিকায় সাধারণীকৃত কর্মপ্রবাহের উদাহরণ হল একটি Android অ্যাপ সহ একটি নতুন ফায়ারবেস প্রকল্প তৈরি করা। কিন্তু আপনি Terraform এর সাথে আরও অনেক কিছু করতে পারেন, যেমন:

  • টেরাফর্ম ব্যবহার করে বিদ্যমান পরিকাঠামো মুছুন এবং সংশোধন করুন।

  • টেরাফর্ম ব্যবহার করে পণ্য-নির্দিষ্ট কনফিগারেশন এবং কাজগুলি পরিচালনা করুন, যেমন:

    • Firebase Authentication সাইন-ইন প্রদানকারী সক্রিয় করা হচ্ছে।
    • Cloud Storage বালতি বা ডাটাবেস দৃষ্টান্ত তৈরি করা এবং তাদের জন্য Firebase Security Rules স্থাপন করা।

আপনি এই সমস্ত কাজগুলি সম্পন্ন করতে স্ট্যান্ডার্ড Terraform কনফিগারেশন ফাইল এবং কমান্ড ব্যবহার করতে পারেন। এবং এটিতে আপনাকে সাহায্য করার জন্য, আমরা বেশ কয়েকটি সাধারণ ব্যবহারের ক্ষেত্রে নমুনা Terraform কনফিগারেশন ফাইল সরবরাহ করেছি।



Firebase এর সাথে Terraform ব্যবহার করার জন্য সাধারণ কর্মপ্রবাহ

পূর্বশর্ত

এই নির্দেশিকাটি Firebase-এর সাথে Terraform ব্যবহার করার একটি ভূমিকা, তাই এটি Terraform-এর সাথে মৌলিক দক্ষতা অনুমান করে। এই ওয়ার্কফ্লো শুরু করার আগে আপনি নিম্নলিখিত পূর্বশর্তগুলি সম্পূর্ণ করেছেন তা নিশ্চিত করুন৷

  • Terraform ইনস্টল করুন এবং তাদের অফিসিয়াল টিউটোরিয়াল ব্যবহার করে Terraform এর সাথে নিজেকে পরিচিত করুন।

  • Google Cloud CLI ( gcloud CLI ) ইনস্টল করুন। একটি ব্যবহারকারী অ্যাকাউন্ট বা একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করে লগইন করুন৷


ধাপ 1: একটি Terraform কনফিগারেশন ফাইল তৈরি এবং কাস্টমাইজ করুন

একটি Terraform কনফিগারেশন ফাইলের দুটি প্রধান বিভাগ প্রয়োজন (যা নীচে বিশদে বর্ণনা করা হয়েছে):

আপনার provider সেট আপ করুন

Firebase পণ্য বা পরিষেবাগুলি যেই জড়িত থাকুক না কেন একটি provider সেটআপ প্রয়োজন৷

  1. আপনার স্থানীয় ডিরেক্টরিতে একটি Terraform কনফিগার ফাইল (যেমন main.tf ফাইল) তৈরি করুন।

    এই নির্দেশিকায়, আপনি এই কনফিগারেশন ফাইলটি উভয় provider সেটআপ এবং সমস্ত অবকাঠামো নির্দিষ্ট করতে ব্যবহার করবেন যা আপনি Terraform তৈরি করতে চান। নোট করুন, যদিও, আপনার কাছে কীভাবে প্রদানকারী সেটআপ অন্তর্ভুক্ত করবেন তার বিকল্প রয়েছে।

  2. main.tf ফাইলের শীর্ষে নিম্নলিখিত provider সেটআপটি অন্তর্ভুক্ত করুন।

    আপনাকে অবশ্যই google-beta প্রদানকারী ব্যবহার করতে হবে কারণ এটি Terraform এর সাথে 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-এর সাথে Terraform ব্যবহার করার সময় বিভিন্ন ধরনের প্রকল্প-সম্পর্কিত বৈশিষ্ট্য (এই নির্দেশিকাটিকে "কোটা-চেক প্রকল্প" বলা হয়) সহ) সম্পর্কে আরও জানুন।

  3. আপনার কনফিগার ফাইলটি সম্পূর্ণ করতে পরবর্তী বিভাগে চালিয়ে যান এবং কোন পরিকাঠামো তৈরি করতে হবে তা নির্দিষ্ট করুন।

resource ব্লক ব্যবহার করে কোন পরিকাঠামো তৈরি করতে হবে তা উল্লেখ করুন

আপনার Terraform কনফিগারেশন ফাইলে (এই নির্দেশিকাটির জন্য, আপনার main.tf ফাইল), আপনাকে টেরাফর্ম তৈরি করতে চান এমন সমস্ত অবকাঠামো নির্দিষ্ট করতে হবে (অর্থাৎ আপনি যে সমস্ত সংস্থানগুলি সরবরাহ করতে চান এবং আপনি যে সমস্ত পরিষেবা সক্ষম করতে চান)। এই নির্দেশিকাটিতে, সমস্ত Firebase সংস্থানগুলির একটি সম্পূর্ণ তালিকা খুঁজুন যা Terraform সমর্থন করে

  1. আপনার main.tf ফাইল খুলুন।

  2. provider সেটআপের অধীনে, resource ব্লকের নিম্নলিখিত কনফিগারেশন অন্তর্ভুক্ত করুন।

    এই মৌলিক উদাহরণটি একটি নতুন 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,
      ]
    }
    


ধাপ 2: নির্দিষ্ট পরিকাঠামো তৈরি করতে Terraform কমান্ড চালান

সম্পদের ব্যবস্থা করতে এবং আপনার main.tf ফাইলে নির্দিষ্ট করা পরিষেবাগুলি সক্রিয় করতে, আপনার main.tf ফাইলের মতো একই ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডগুলি চালান। এই কমান্ড সম্পর্কে বিস্তারিত তথ্যের জন্য, Terraform ডকুমেন্টেশন দেখুন।

  1. যদি এই প্রথমবার হয় যে আপনি ডিরেক্টরিতে Terraform কমান্ডগুলি চালাচ্ছেন, তাহলে আপনাকে কনফিগারেশন ডিরেক্টরি শুরু করতে হবে এবং Google Terraform প্রদানকারী ইনস্টল করতে হবে। নিম্নলিখিত কমান্ডটি চালানোর মাধ্যমে এটি করুন:

    terraform init
  2. নিম্নলিখিত কমান্ডটি চালিয়ে আপনার main.tf ফাইলে নির্দিষ্ট পরিকাঠামো তৈরি করুন:

    terraform apply
  3. নিশ্চিত করুন যে সবকিছু প্রত্যাশিত হিসাবে প্রবিধান বা সক্ষম করা হয়েছে:

    • বিকল্প 1: নিম্নলিখিত কমান্ডটি চালিয়ে আপনার টার্মিনালে মুদ্রিত কনফিগারেশন দেখুন:

      terraform show
    • বিকল্প 2: Firebase কনসোলে আপনার Firebase প্রকল্প দেখুন।



Terraform সমর্থন সহ Firebase সম্পদ

নিম্নলিখিত ফায়ারবেস এবং Google সংস্থানগুলিতে Terraform সমর্থন রয়েছে৷ এবং আমরা সব সময় আরো সম্পদ যোগ করছি! সুতরাং আপনি যদি Terraform এর সাথে যে সংস্থানটি পরিচালনা করতে চান তা দেখতে না পান, তাহলে এটি উপলব্ধ কিনা তা দেখতে শীঘ্রই ফিরে দেখুন বা GitHub রেপোতে একটি সমস্যা ফাইল করে এটির অনুরোধ করুন।


ফায়ারবেস প্রকল্প এবং অ্যাপ পরিচালনা

  • google_firebase_project — একটি বিদ্যমান Google Cloud প্রকল্পে 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 জন্য ব্যাকএন্ড) এবং প্রকল্প-স্তরের প্রমাণীকরণ সেটিংস প্রদান করে

    • Terraform এর মাধ্যমে Firebase Authentication কনফিগার করার জন্য GCIP সক্ষম করা প্রয়োজন। কিভাবে Firebase Authentication সেট আপ করতে হয় তার জন্য নমুনা .tf ফাইলটি পর্যালোচনা করতে ভুলবেন না।

    • যে প্রজেক্টে Terraform GCIP এবং/অথবা Firebase Authentication সক্ষম করবে তা অবশ্যই Blaze প্রাইসিং প্ল্যানে থাকতে হবে (অর্থাৎ, প্রজেক্টের একটি সংশ্লিষ্ট Cloud Billing অ্যাকাউন্ট থাকতে হবে)। আপনি google_project রিসোর্সে billing_account অ্যাট্রিবিউট সেট করে প্রোগ্রাম্যাটিকভাবে এটি করতে পারেন।

    • এই সংস্থানটি আরও কনফিগারেশন সক্ষম করে, যেমন স্থানীয় সাইন-ইন পদ্ধতি, যেমন বেনামী, ইমেল/পাসওয়ার্ড এবং ফোন প্রমাণীকরণ, সেইসাথে ব্লকিং ফাংশন এবং অনুমোদিত ডোমেন।

  • google_identity_platform_default_supported_idp_config — Google, Facebook বা Apple এর মত সাধারণ ফেডারেটেড আইডেন্টিটি প্রোভাইডার কনফিগার করুন

  • identity_platform_oauth_idp_config — নির্বিচারে OAuth আইডেন্টিটি প্রোভাইডার (আইডিপি) উত্স কনফিগার করুন

  • google_identity_platform_inbound_saml_config — SAML ইন্টিগ্রেশন কনফিগার করুন

এখনও সমর্থিত নয়:

  • Terraform এর মাধ্যমে মাল্টি-ফ্যাক্টর প্রমাণীকরণ (MFA) কনফিগার করা হচ্ছে

Firebase Realtime Database

এখনও সমর্থিত নয়:

  • টেরাফর্মের মাধ্যমে Firebase Realtime Database Security Rules স্থাপন করা (প্রোগ্রাম্যাটিক বিকল্পগুলি সহ অন্যান্য টুলিং ব্যবহার করে এই Rules কীভাবে স্থাপন করতে হয় তা শিখুন)

Cloud Firestore

  • google_firestore_database — একটি Cloud Firestore ইনস্ট্যান্স তৈরি করুন

  • google_firestore_indexCloud Firestore জন্য দক্ষ কোয়েরি সক্ষম করুন

  • google_firestore_document — একটি সংগ্রহে একটি নির্দিষ্ট নথির সাথে একটি Cloud Firestore উদাহরণ তৈরি করুন

    গুরুত্বপূর্ণ: এই বীজ নথিতে প্রকৃত ব্যবহারকারী বা উৎপাদন ডেটা ব্যবহার করবেন না।


Cloud Storage for Firebase

  • google_firebase_storage_bucket — একটি বিদ্যমান Cloud Storage বালতি ফায়ারবেস SDK, প্রমাণীকরণ এবং Firebase Security Rules জন্য অ্যাক্সেসযোগ্য করুন

  • google_storage_bucket_object — একটি Cloud Storage বালতিতে একটি বস্তু যোগ করুন

    গুরুত্বপূর্ণ: এই ফাইলে প্রকৃত ব্যবহারকারী বা উৎপাদন ডেটা ব্যবহার করবেন না।


Firebase Security Rules ( Cloud Firestore এবং Cloud Storage জন্য)

মনে রাখবেন যে Firebase Realtime Database তার Firebase Security Rules জন্য একটি ভিন্ন বিধান ব্যবস্থা ব্যবহার করে।

  • google_firebaserules_rulesetFirebase Security Rules সংজ্ঞায়িত করুন যা একটি Cloud Firestore ইনস্ট্যান্স বা একটি Cloud Storage বালতিতে প্রযোজ্য

  • google_firebaserules_release — একটি Cloud Firestore ইনস্ট্যান্স বা একটি Cloud Storage বালতিতে নির্দিষ্ট নিয়ম সেটগুলি স্থাপন করুন


Firebase App Check


Firebase Extensions



সাধারণ ব্যবহারের ক্ষেত্রে নমুনা Terraform কনফিগারেশন ফাইল



সমস্যা সমাধান এবং FAQ