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

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

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

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

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

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

  • Node.js সংস্করণ 18.0 বা উচ্চতর।

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

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

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

    firebase init

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

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

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

  firebase init emulators

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

একটি ফায়ারবেস প্রকল্প বেছে নিন

সেটআপ প্রবাহে, 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
  
iOS
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 ইন্টিগ্রেশনের মাধ্যমে না। যাইহোক, প্রোডাকশন এপিআই-তে কল এখনও করা হয়, যার অর্থ আপনাকে অবশ্যই একটি বাস্তব ফায়ারবেস প্রকল্প ব্যবহার করতে হবে, একটি demo- প্রকল্প ব্যবহার করতে পারবেন না এবং Vertex API-এর খরচ বহন করা হবে।