ডাটাবেস পরিচালনা করুন

এই পৃষ্ঠাটি ক্লাউড ফায়ারস্টোর ডেটাবেস তৈরি, আপডেট এবং মুছে ফেলার বর্ণনা দেয়৷ আপনি প্রতি প্রকল্পে একাধিক ক্লাউড ফায়ারস্টোর ডেটাবেস তৈরি করতে পারেন। আপনি উত্পাদন এবং পরীক্ষার পরিবেশ সেট আপ করতে, গ্রাহকের ডেটা বিচ্ছিন্ন করতে এবং ডেটা আঞ্চলিককরণের জন্য একাধিক ডাটাবেস ব্যবহার করতে পারেন।

(default) ডাটাবেস

আপনার অ্যাপের একাধিক ডাটাবেসের প্রয়োজন না হলে (default) ডাটাবেস ব্যবহার করুন।

আপনি যদি একটি ডাটাবেস নির্দিষ্ট না করেন, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি এবং Google ক্লাউড CLI ডিফল্টরূপে (default) ডাটাবেসের সাথে সংযুক্ত হয়।

আপনি শুধুমাত্র (default) ডাটাবেসের সাথে বিনামূল্যে কোটা ব্যবহার করতে পারেন।

প্রয়োজনীয় ভূমিকা

ডেটাবেস তৈরি এবং পরিচালনা করতে, আপনাকে Owner বা Datastore Owner পরিচয় এবং অ্যাক্সেস ম্যানেজমেন্ট ভূমিকার প্রয়োজন। এই ভূমিকাগুলি প্রয়োজনীয় অনুমতি প্রদান করে।

প্রয়োজনীয় অনুমতি

ডাটাবেস পরিচালনা করতে, আপনাকে নিম্নলিখিত অনুমতিগুলির প্রয়োজন:

  • একটি ডাটাবেস তৈরি করুন: datastore.databases.create
  • ডাটাবেস কনফিগারেশন পড়ুন: datastore.databases.getMetadata
  • একটি ডাটাবেস কনফিগার করুন: datastore.databases.update
  • একটি ডাটাবেস মুছুন: datastore.databases.delete

একটি ডাটাবেস তৈরি করুন

একটি ডাটাবেস তৈরি করতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

কনসোল
  1. Google ক্লাউড প্ল্যাটফর্ম কনসোলে, ডেটাবেস পৃষ্ঠায় যান।

    ডাটাবেসে যান

  2. ডেটাবেস তৈরি করুন ক্লিক করুন।
  3. একটি ডাটাবেস মোড নির্বাচন করুন। অবিরত ক্লিক করুন
  4. আপনার ডাটাবেস কনফিগার করুন। একটি ডাটাবেস আইডি লিখুন। একটি অবস্থান নির্বাচন করুন. ডেটাবেস তৈরি করুন ক্লিক করুন।
জিক্লাউড

gcloud alpha firestore databases create কমান্ড ব্যবহার করুন।

gcloud alpha firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

--delete-protection হল একটি ঐচ্ছিক পতাকা যাতে মুছে ফেলার সুরক্ষা সক্রিয় করা যায়। আপনি এই সেটিংটি নিষ্ক্রিয় না করা পর্যন্ত আপনি একটি ডাটাবেস মুছে ফেলার সুরক্ষা সক্ষম করতে পারবেন না। এই সেটিং ডিফল্টরূপে অক্ষম করা হয়.

ফায়ারবেস CLI
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

--delete-protection অপসারণ সুরক্ষা সক্ষম করার জন্য একটি ঐচ্ছিক যুক্তি। আপনি এই সেটিংটি নিষ্ক্রিয় না করা পর্যন্ত আপনি একটি ডাটাবেস মুছে ফেলার সুরক্ষা সক্ষম করতে পারবেন না। এই সেটিং ডিফল্টরূপে অক্ষম করা হয়.

টেরাফর্ম
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

delete_protection_state হল একটি ঐচ্ছিক আর্গুমেন্ট যা মুছে ফেলার সুরক্ষা সক্ষম করার জন্য। আপনি এই সেটিংটি নিষ্ক্রিয় না করা পর্যন্ত আপনি একটি ডাটাবেস মুছে ফেলার সুরক্ষা সক্ষম করতে পারবেন না। এই সেটিং ডিফল্টরূপে অক্ষম করা হয়.

ডাটাবেস আইডি

বৈধ ডাটাবেস আইডি অন্তর্ভুক্ত (default) এবং আইডিগুলি যা নিম্নলিখিতগুলি মেনে চলে:

  • শুধুমাত্র অক্ষর, সংখ্যা এবং হাইফেন ( - ) অক্ষর অন্তর্ভুক্ত করে।
  • অক্ষরগুলো ছোট হাতের হতে হবে।
  • প্রথম অক্ষর একটি অক্ষর হতে হবে.
  • শেষ অক্ষরটি একটি অক্ষর বা সংখ্যা হতে হবে।
  • ন্যূনতম ৪টি অক্ষর।
  • সর্বোচ্চ ৬৩টি অক্ষর।
  • একটি UUID বা UUID অনুরূপ হতে হবে না. উদাহরণস্বরূপ, f47ac10b-58cc-0372-8567-0e02b2c3d479 এর মতো একটি আইডি ব্যবহার করবেন না।

আপনি একটি ডাটাবেস মুছে ফেললে, আপনি অবিলম্বে 5 মিনিটের পরে ডাটাবেস আইডি পুনরায় ব্যবহার করতে পারবেন না।

সুরক্ষা মুছুন

একটি ডাটাবেস দুর্ঘটনাক্রমে মুছে ফেলা রোধ করতে মুছে ফেলা সুরক্ষা ব্যবহার করুন। আপনি ডিলিট সুরক্ষা অক্ষম না করা পর্যন্ত আপনি ডিলিট সুরক্ষা সক্ষম করে একটি ডাটাবেস মুছতে পারবেন না। ডিফল্টরূপে সুরক্ষা মুছুন অক্ষম করা হয়। আপনি যখন ডাটাবেস তৈরি করেন তখন আপনি মুছে ফেলার সুরক্ষা সক্ষম করতে পারেন বা আপনি মুছে ফেলা সুরক্ষা সক্ষম করতে একটি ডাটাবেস কনফিগারেশন আপডেট করতে পারেন।

আপনার ডাটাবেসের জন্য ক্লাউড ফায়ারস্টোর নিরাপত্তা নিয়ম সেট আপ করুন

আপনার প্রতিটি ডাটাবেসে ক্লাউড ফায়ারস্টোর নিরাপত্তা বিধি স্থাপন করতে Firebase CLI ব্যবহার করুন। ক্লাউড ফায়ারস্টোর সুরক্ষা নিয়মগুলি পরিচালনা এবং স্থাপনের জন্য নির্দেশিকা পড়ুন৷

একটি ক্লায়েন্ট লাইব্রেরির সাথে একটি নামযুক্ত ডাটাবেস অ্যাক্সেস করুন

একটি নামযুক্ত ডাটাবেসের মধ্যে এমন কোনো ডাটাবেস অন্তর্ভুক্ত থাকে যার নাম নেই (default) । ডিফল্টরূপে, ফায়ারবেস SDK এবং Google API ক্লায়েন্ট লাইব্রেরিগুলি একটি প্রকল্পে (default) ক্লাউড ফায়ারস্টোর ডাটাবেসের সাথে সংযোগ করে৷ একটি নামযুক্ত ডাটাবেসের সাথে সংযুক্ত একটি ক্লায়েন্ট তৈরি করতে, যখন আপনি একটি ক্লায়েন্ট ইনস্ট্যান্টিয়েট করেন তখন ডাটাবেস আইডি সেট করুন।

তালিকা ডাটাবেস

আপনার ডাটাবেস তালিকাভুক্ত করতে নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

কনসোল

Google ক্লাউড প্ল্যাটফর্ম কনসোলে, ডেটাবেস পৃষ্ঠায় যান।

ডাটাবেসে যান

জিক্লাউড

আপনার প্রকল্পের সমস্ত ডাটাবেস তালিকাভুক্ত করতে gcloud firestore databases list কমান্ড ব্যবহার করুন।

gcloud firestore databases list

ডাটাবেস বিবরণ দেখুন

একটি একক ডাটাবেস সম্পর্কে বিশদ বিবরণ দেখতে, gcloud firestore databases describe কমান্ড ব্যবহার করুন:

জিক্লাউড
gcloud firestore databases describe --database=DATABASE_ID

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

ডাটাবেস কনফিগারেশন আপডেট করুন

একটি ডাটাবেসের কনফিগারেশন সেটিংস আপডেট করতে, gcloud alpha firestore databases update কমান্ড ব্যবহার করুন। ডিলিট সুরক্ষা সক্ষম বা অক্ষম করতে পরিবর্তন করতে এই কমান্ডটি ব্যবহার করুন।

মুছে ফেলা সুরক্ষা সেটিং আপডেট করুন

একটি ডাটাবেসে ডিলিট সুরক্ষা সক্ষম করতে, --delete-protection পতাকা সহ gcloud alpha firestore databases update কমান্ড ব্যবহার করুন। উদাহরণ স্বরূপ:

জিক্লাউড
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

একটি ডাটাবেসে ডিলিট সুরক্ষা অক্ষম করতে, --no-delete-protection পতাকা সহ gcloud alpha firestore databases update কমান্ড ব্যবহার করুন। উদাহরণ স্বরূপ:

জিক্লাউড
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

একটি ডাটাবেস মুছুন

একটি ডাটাবেস মুছে ফেলতে, কনসোল বা কমান্ড-লাইন টুল ব্যবহার করুন।

যদি ডাটাবেসে ডিলিট সুরক্ষা সেটিং সক্রিয় থাকে, তাহলে আপনাকে প্রথমে ডিলিট সুরক্ষা অক্ষম করতে হবে।

যদি ডাটাবেসে অ্যাপ ইঞ্জিন অনুসন্ধান ডেটা বা ব্লব সত্তা থাকে, তাহলে আপনাকে প্রথমে সেই ডেটা মুছে ফেলতে হবে।

একটি ডাটাবেস মুছে দিলে সেই ডাটাবেসের জন্য কোনো Eventarc ট্রিগার স্বয়ংক্রিয়ভাবে মুছে যায় না। ট্রিগারটি ইভেন্টগুলি সরবরাহ করা বন্ধ করে তবে আপনি ট্রিগারটি মুছে না দেওয়া পর্যন্ত বিদ্যমান থাকবে৷

কনসোল
  1. Google ক্লাউড প্ল্যাটফর্ম কনসোলে, ডেটাবেস পৃষ্ঠায় যান।

    ডাটাবেসে যান

  2. আপনি যে ডাটাবেসটি মুছতে চান তার জন্য টেবিল সারিতে ক্লিক করুন। মুছুন ক্লিক করুন। একটি ডায়ালগ প্রদর্শিত হবে।
  3. ডিলিট ডাটাবেসে? ডায়ালগ, পাঠ্য ক্ষেত্রে ডাটাবেস আইডি টাইপ করে মুছে ফেলা নিশ্চিত করুন। মুছুন ক্লিক করুন। কনসোল আপনাকে অপারেশন সাফল্য বা ব্যর্থতা সম্পর্কে অবহিত করে।

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

জিক্লাউড

'gcloud alpha firestore databases delete' কমান্ড ব্যবহার করুন।

gcloud alpha firestore databases delete --database=DATABASE_ID

মুছে ফেলার জন্য ডাটাবেসের ID দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

প্রতি-ডাটাবেস অ্যাক্সেস অনুমতি কনফিগার করুন

আপনি প্রতি-ডাটাবেস স্তরে অ্যাক্সেসের অনুমতিগুলি কনফিগার করতে আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট শর্তাবলী ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণগুলি এক বা একাধিক ডেটাবেসের জন্য শর্তসাপেক্ষ অ্যাক্সেস বরাদ্দ করতে Google ক্লাউড CLI ব্যবহার করে৷ আপনি GCP কনসোলে IAM শর্তগুলিও সংজ্ঞায়িত করতে পারেন।

বিদ্যমান IAM নীতিগুলি দেখুন৷

gcloud projects get-iam-policy PROJECT_ID

আপনার প্রকল্প আইডিতে PROJECT_ID সেট করুন।

একটি ডাটাবেসে অ্যাক্সেস মঞ্জুর করুন

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

নিম্নলিখিত সেট করুন:

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট Google অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, alice@example.com
  • DATABASE_ID : একটি ডাটাবেস আইডি।
  • TITLE : অভিব্যক্তির জন্য একটি ঐচ্ছিক শিরোনাম।
  • DESCRIPTION : অভিব্যক্তির একটি ঐচ্ছিক বর্ণনা।

একটি ডাটাবেস ব্যতীত সকলকে অ্যাক্সেস প্রদান করুন

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

নিম্নলিখিত সেট করুন:

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট Google অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, alice@example.com
  • DATABASE_ID : একটি ডাটাবেস আইডি।
  • TITLE : অভিব্যক্তির জন্য একটি ঐচ্ছিক শিরোনাম।
  • DESCRIPTION : অভিব্যক্তির একটি ঐচ্ছিক বর্ণনা।

প্রদত্ত সদস্য এবং ভূমিকার জন্য নীতিগুলি সরান৷

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

নিম্নলিখিত সেট করুন:

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট Google অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, alice@example.com

ক্লাউড মনিটরিং

ক্লাউড ফায়ারস্টোর মেট্রিক্স দুটি পর্যবেক্ষণ করা সংস্থানের অধীনে রিপোর্ট করা হয়েছে।

আপনি firestore.googleapis.com/Database এ দেখে ডাটাবেস স্তরে সামগ্রিক মেট্রিক্স পরিদর্শন করতে পারেন। firestore_instance এর অধীনে রিপোর্ট করা মেট্রিকগুলি প্রকল্প স্তরে একত্রিত করা হয়৷

সীমাবদ্ধতা

এরপর কি