CI/CD এর জন্য ডেটা কানেক্ট এমুলেটর ব্যবহার করুন

Firebase Data Connect আপনাকে এন্ড-টু-এন্ড প্রোটোটাইপিংয়ের পাশাপাশি ক্রমাগত ইন্টিগ্রেশন এবং ক্রমাগত স্থাপনার (CI/CD) প্রবাহের জন্য একটি স্থানীয় এমুলেটর সরবরাহ করে:

  • Data Connect এমুলেটরটি একটি স্থানীয় সমন্বিত PGLite ডাটাবেস ইনস্ট্যান্সের সাথে ইন্টারঅ্যাক্ট করে যাতে আপনি সম্পূর্ণ স্থানীয় পরিবেশে প্রোটোটাইপ কোয়েরি এবং মিউটেশন তৈরি করতে এবং ক্লায়েন্ট কোড পরীক্ষা করতে পারেন।
  • Data Connect এমুলেটরটি ইন্টারেক্টিভ নয় এমন কাজের জন্যও ব্যবহার করা যেতে পারে। এটি আপনাকে স্বয়ংক্রিয় পরীক্ষা চালাতে দেয় এবং CI/CD ওয়ার্কফ্লোগুলির সাথে ব্যবহারের জন্য উপযুক্ত। যখন আপনার স্কিমাগুলি স্থিতিশীল থাকে এবং আপনি ক্লায়েন্ট-সাইড কোড প্রোটোটাইপ এবং পরীক্ষা করতে চান তখন এটি কার্যকর।

এই নির্দেশিকাটিতে কুইকস্টার্টের চেয়ে এমুলেটরের ইনস্টলেশন এবং ব্যবহার সম্পর্কে আরও বিস্তারিত আলোচনা করা হয়েছে।

Data Connect এমুলেটর ইনস্টল করুন

Data Connect এমুলেটর ব্যবহার করার জন্য Local Emulator Suite ইনস্টল করার আগে, আপনার প্রয়োজন হবে:

  • Node.js সংস্করণ ১৮.০ বা তার বেশি।

Firebase CLI ইনস্টল করুন এবং প্রকল্প ডিরেক্টরি সেট আপ করুন

  1. ইনস্টলেশন গাইড অনুসরণ করে Firebase CLI ইনস্টল করুন। নিয়মিত আপডেট করতে ভুলবেন না, কারণ Data Connect এমুলেটরটি বাগ সংশোধন এবং নতুন বৈশিষ্ট্য সহ সক্রিয়ভাবে বিকাশাধীন।

  2. যদি আপনি ইতিমধ্যেই এটি না করে থাকেন, তাহলে বর্তমান কার্যকরী ডিরেক্টরিটিকে একটি Firebase প্রকল্প হিসাবে শুরু করুন, কোন পণ্যগুলি ব্যবহার করবেন তা নির্দিষ্ট করার জন্য নিম্নলিখিত প্রম্পটগুলি অনুসরণ করুন:

    firebase init

Local Emulator Suite কনফিগারেশন সেট বা পরিবর্তন করুন

আপনি যদি Firebase VS Code এক্সটেনশন থেকে Data Connect এমুলেটরটি শুরু করে থাকেন, তাহলে প্রয়োজনে আপনার জন্য এমুলেটরটি ইনস্টল করা হয়েছে।

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

  firebase init emulators

একবার একটি এমুলেটর ইনস্টল হয়ে গেলে, আপনার Firebase CLI সংস্করণ আপডেট না করা পর্যন্ত কোনও আপডেট পরীক্ষা করা হবে না এবং কোনও অতিরিক্ত স্বয়ংক্রিয় ডাউনলোড হবে না।

একটি Firebase প্রকল্প বেছে নিন

সেটআপ ফ্লোতে, Firebase CLI আপনাকে একটি Firebase প্রকল্প বেছে নিতে বা তৈরি করতে অনুরোধ করবে। যদি আপনি Firebase কনসোলে Data Connect দিয়ে সেট আপ করা একটি বিদ্যমান প্রকল্প বেছে নেন, তাহলে আপনার বেছে নেওয়া কনফিগারেশনটি সেখানে প্রস্তাবিত হবে।

এমুলেটর সেট আপ করুন

এমুলেটরটি কনফিগার করুন

firebase init ফ্লো চালানো আপনাকে এমুলেটর সেটআপ বিকল্পগুলির মধ্যে গাইড করবে। Local Emulator Suite অন্যান্য এমুলেটরগুলির মতো, কনফিগারেশন প্যারামিটারগুলি স্থানীয় প্রকল্প ফাইলগুলিতে সংরক্ষণ করা হয়।

  • আপনার firebase.json ফাইলে এমুলেটর পোর্ট অ্যাসাইনমেন্ট রয়েছে।
    • emulators:ui কী Data Connect এমুলেটরের ক্ষেত্রে প্রযোজ্য নয়।

স্থানীয় এবং উৎপাদন Data Connect রিসোর্স নিয়ে কাজ করুন

যদি আপনি নিশ্চিত করতে চান যে উৎপাদন সংস্থানগুলি প্রভাবিত না হয়, তাহলে একটি demo- -প্রজেক্ট আইডি সেট করুন অথবা নিশ্চিত করুন যে আপনার ক্লায়েন্ট কোডটি এমুলেটরের সাথে সংযোগ করার জন্য তৈরি করা হয়েছে, যেমনটি পরবর্তী বিভাগে আলোচনা করা হয়েছে।

এমুলেটরটি শুরু করুন

যদি আপনি এমুলেটরটি ইন্টারেক্টিভ নয় এমনভাবে চালান, উদাহরণস্বরূপ CI/CD ওয়ার্কফ্লোগুলির জন্য, তাহলে exec বিকল্প দিয়ে এটি শুরু করুন।

firebase emulators:exec ./path/to/test-script.sh

যদি আপনি ক্লায়েন্ট কোডে পূর্বনির্ধারিত কোয়েরি এবং মিউটেশনগুলিকে একীভূত করেন এবং ক্লায়েন্টদের পরীক্ষা করার জন্য বিশেষভাবে এমুলেটর ব্যবহার করেন, তাহলে আপনি ইন্টারেক্টিভ কাজের জন্য start বিকল্পটি ব্যবহার করতে পারেন। আপনি VS কোড এক্সটেনশন থেকেও এমুলেটরটি শুরু করতে পারেন।

firebase emulators:start

এমুলেটরের সাথে কথা বলার জন্য আপনার ক্লায়েন্ট কোডটি ব্যবহার করুন।

Data Connect এমুলেটরের সাথে ইন্টারঅ্যাক্ট করার জন্য আপনার ইন-অ্যাপ কনফিগারেশন বা টেস্ট ক্লাস সেট আপ করুন নিম্নরূপ।

জাভাস্ক্রিপ্ট
import { initializeApp } from "firebase/app";
import { connectorConfig } from "@name-of-package";
import { connectDataConnectEmulator, getDataConnect } from 'firebase/data-connect';

// TODO: Replace the following with your app's Firebase project configuration
const firebaseConfig = {
  //...
};

const app = initializeApp(firebaseConfig);

const dataConnect = getDataConnect(app, connectorConfig);
connectDataConnectEmulator(dataConnect, "localhost", 9399);

// Make calls from your app
  
কোটলিন অ্যান্ড্রয়েড
val connector = MoviesConnector.instance

// Connect to the emulator on "10.0.2.2:9399"
connector.dataConnect.useEmulator()

// (Alternatively) if you're running your emulator on non-default port:
connector.dataConnect.useEmulator(port = 9999)

// Make calls from your app
  
আইওএস
let connector = DataConnect.dataConnect(DefaultConnectorClient.connectorConfig)

// Connect to the emulator on "127.0.0.1:9399"
connector.useEmulator()

// (alternatively) if you're running your emulator on non-default port:
connector.useEmulator(port: 9999)

// Make calls from your app
  

পরীক্ষা এবং ক্রমাগত ইন্টিগ্রেশনের জন্য এমুলেটরটি ব্যবহার করুন

কন্টেইনারাইজড Local Emulator Suite ছবি চালান

একটি সাধারণ CI সেটআপে কন্টেইনার সহ Local Emulator Suite ইনস্টলেশন এবং কনফিগারেশন করা সহজ।

কয়েকটি বিষয় লক্ষ্য করার মতো:

  • এমুলেটর বাইনারিগুলি ~/.cache/firebase/emulators/ এ ইনস্টল এবং ক্যাশে করা হয়। বারবার ডাউনলোড এড়াতে আপনি আপনার CI ক্যাশে কনফিগারেশনে এই পাথটি যোগ করতে চাইতে পারেন।
  • যদি আপনার রিপোজিটরিতে firebase.json ফাইল না থাকে, তাহলে কোন এমুলেটরগুলি শুরু করা উচিত তা নির্দিষ্ট করার জন্য আপনাকে emulators:start অথবা emulators:exec কমান্ডে একটি কমান্ড লাইন আর্গুমেন্ট যোগ করতে হবে। উদাহরণস্বরূপ, --only dataconnect

পরীক্ষার মধ্যে আপনার ডাটাবেস সাফ করুন

রানের মধ্যে আপনার পরীক্ষার পরিবেশ পুনরায় সেট করতে, Firebase সুপারিশ করে:

  • নিম্নলিখিত বিষয়গুলি পরিচালনা করার জন্য নিবেদিতপ্রাণ মিউটেশন লেখা:
    • সেটআপে, একটি স্থানীয় ডাটাবেস ইনস্ট্যান্সে প্রারম্ভিক ডেটা রাখুন।
    • টিয়ারডাউনে, পরীক্ষার পরের ডাটাবেস ইনস্ট্যান্স থেকে পরিবর্তিত ডেটা মুছে ফেলুন।

Data Connect এমুলেটর কীভাবে উৎপাদন থেকে আলাদা

Data Connect এমুলেটর সার্ভার-সাইড পণ্যের অনেক বৈশিষ্ট্য সিমুলেট করে। তবে, কিছু ব্যতিক্রম রয়েছে যা সম্পর্কে সচেতন থাকা উচিত:

  • PGLite এর সংস্করণ এবং বিস্তারিত কনফিগারেশন আপনার প্রোডাকশন ক্লাউড SQL ইনস্ট্যান্সের সংস্করণ থেকে আলাদা হতে পারে।
  • যদি আপনি Data Connect এর pgvector এবং Vertex API ইন্টিগ্রেশনের মাধ্যমে ডেভেলপ করার জন্য এমুলেটরটি ব্যবহার করেন, তাহলে Cloud Vertex API-তে কলগুলি সরাসরি করা হবে, Cloud SQL এর Vertex ইন্টিগ্রেশনের মাধ্যমে নয়। যাইহোক, প্রোডাকশন API-তে কলগুলি এখনও করা হবে, যার অর্থ আপনাকে একটি আসল Firebase প্রকল্প ব্যবহার করতে হবে, একটি demo- প্রকল্প ব্যবহার করতে পারবেন না এবং Vertex API-এর খরচ বহন করতে হবে।