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


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

,

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

    ফায়ারবেস সহ টেরাফর্ম ব্যবহার করার সময় বিভিন্ন ধরণের প্রকল্প-সম্পর্কিত বৈশিষ্ট্য (এই গাইডকে "কোটা-চেক প্রকল্প" বলে) সম্পর্কে আরও জানুন।

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

resource ব্লকগুলি ব্যবহার করে কী অবকাঠামো তৈরি করতে হবে তা নির্দিষ্ট করুন

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

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

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

    এই প্রাথমিক উদাহরণটি একটি নতুন ফায়ারবেস প্রকল্প তৈরি করে এবং তারপরে সেই প্রকল্পের মধ্যে একটি ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করে।

    # 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: নির্দিষ্ট অবকাঠামো তৈরি করতে টেরাফর্ম কমান্ডগুলি চালান

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

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

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

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

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

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



টেরফর্ম সমর্থন সহ ফায়ারবেস রিসোর্স

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


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

  • google_firebase_project - একটি বিদ্যমান Google Cloud প্রকল্পে ফায়ারবেস পরিষেবাগুলি সক্ষম করুন

  • ফায়ারবেস অ্যাপস

    • google_firebase_apple_app - একটি ফায়ারবেস অ্যাপল প্ল্যাটফর্ম অ্যাপ্লিকেশন তৈরি বা পরিচালনা করুন
    • google_firebase_android_app - একটি ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি বা পরিচালনা করুন
    • google_firebase_web_app - একটি ফায়ারবেস ওয়েব অ্যাপ্লিকেশন তৈরি বা পরিচালনা করুন

Firebase Authentication

  • google_identity_platform_config - Google Cloud Identity Platform (জিসিআইপি) সক্ষম করুন (যা Firebase Authentication ব্যাকএন্ড) এবং প্রকল্প-স্তরের প্রমাণীকরণ সেটিংস সরবরাহ করুন

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

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

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

  • google_identity_platform_default_supported_idp_config - গুগল, ফেসবুক বা অ্যাপলের মতো সাধারণ ফেডারেটেড পরিচয় সরবরাহকারীদের কনফিগার করুন

  • identity_platform_oauth_idp_config - স্বেচ্ছাসেবী ওআউথ আইডেন্টিটি সরবরাহকারী (আইডিপি) উত্সগুলি কনফিগার করুন

  • google_identity_platform_inbound_saml_config - এসএএমএল সংহতকরণ কনফিগার করুন

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

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

Firebase Realtime Database

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

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

Cloud Firestore

  • google_firestore_database - একটি Cloud Firestore উদাহরণ তৈরি করুন

  • google_firestore_index - Cloud 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_ruleset - Firebase Security Rules সংজ্ঞায়িত করুন যা Cloud Firestore উদাহরণ বা Cloud Storage বালতিতে প্রযোজ্য

  • google_firebaserules_release - Cloud Firestore উদাহরণ বা Cloud Storage বালতিতে নির্দিষ্ট বিধিগুলি স্থাপন করুন


Firebase App Check

  • google_firebase_app_check_service_config - কোনও পরিষেবার জন্য App Check প্রয়োগকারী সক্ষম করুন
  • google_firebase_app_check_app_attest_config - অ্যাপটি সরবরাহকারী সরবরাহকারীর সাথে একটি অ্যাপল প্ল্যাটফর্ম অ্যাপ্লিকেশন নিবন্ধন করুন
  • google_firebase_app_check_device_check_config - ডিভাইসেক সরবরাহকারীর সাথে একটি অ্যাপল প্ল্যাটফর্ম অ্যাপ্লিকেশন নিবন্ধ করুন
  • google_firebase_app_check_play_integrity_config - প্লে ইন্টিগ্রিটি প্রোভাইডার সহ একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন নিবন্ধন করুন
  • google_firebase_app_check_recaptcha_enterprise_config - রেকাপ্টকা এন্টারপ্রাইজ সরবরাহকারীর সাথে একটি ওয়েব অ্যাপ্লিকেশন নিবন্ধন করুন
  • google_firebase_app_check_recaptcha_v3_config রিকাপ্টকা_ভি 3_কনফিগ - রেকাপ্টচা ভি 3 সরবরাহকারীর সাথে একটি ওয়েব অ্যাপ্লিকেশন নিবন্ধন করুন
  • google_firebase_app_check_debug_token - পরীক্ষার জন্য ডিবাগ টোকেন ব্যবহার করুন

Firebase Extensions



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



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