Catch up on everthing we announced at this year's Firebase Summit. Learn more

আপনার অ্যাপ্লিকেশনটিকে ক্লাউড ফাংশনস এমুলেটরের সাথে সংযুক্ত করুন

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

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

Firebase স্থানীয় এমুলেটর স্যুট একটি একক Firebase প্রকল্পের জন্য পণ্য অনুকরণ করে।

ব্যবহারের প্রকল্পের নির্বাচন করতে, আগে আপনি, emulators শুরু CLI রান firebase use আপনার কাজের ডিরেক্টরির মধ্যে। অথবা, আপনি পাস করতে পারেন --project প্রতিটি এমুলেটর কমান্ড পতাকা।

স্থানীয় এমুলেটর সুইট বাস্তব Firebase প্রকল্প এবং ডেমো প্রকল্পের এমুলেশন সমর্থন করে।

প্রকল্পের ধরন বৈশিষ্ট্য এমুলেটরগুলির সাথে ব্যবহার করুন
রিয়াল

একটি আসল ফায়ারবেস প্রজেক্ট হল আপনি তৈরি এবং কনফিগার করেছেন (সম্ভবত Firebase কনসোলের মাধ্যমে)।

বাস্তব প্রজেক্টে লাইভ রিসোর্স থাকে, যেমন ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন বা অন্য কোনো রিসোর্স যা আপনি সেই Firebase প্রোজেক্টের জন্য সেট আপ করেন।

বাস্তব ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনি যেকোন বা সমস্ত সমর্থিত পণ্যের জন্য এমুলেটর চালাতে পারেন।

কোনো পণ্য আপনি এমুলেট নি, সেগুলির জন্য আপনার অ্যাপ্লিকেশান এবং কোড লাইভ রিসোর্স (ডাটাবেস ইনস্ট্যান্স, সঞ্চয় বালতি, ফাংশন, ইত্যাদি) সাথে ইন্টারঅ্যাক্ট হবে।

ডেমো

একটি ডেমো Firebase প্রকল্পের কোনো সত্যিকারের Firebase কনফিগারেশন এবং কোনো লাইভ সম্পদ আছে। এই প্রকল্পগুলি সাধারণত কোডল্যাব বা অন্যান্য টিউটোরিয়ালের মাধ্যমে অ্যাক্সেস করা হয়।

ডেমো প্রকল্পগুলির জন্য প্রকল্প ID উপস্থিত রয়েছে demo- উপসর্গ।

যখন ডেমো Firebase প্রকল্প, আপনার অ্যাপ্লিকেশান এবং শুধুমাত্র emulators মাধ্যমে কোডের ইন্টারঅ্যাক্ট সঙ্গে কাজ। যদি আপনার অ্যাপটি এমন একটি সংস্থানের সাথে ইন্টারঅ্যাক্ট করার চেষ্টা করে যার জন্য একটি এমুলেটর চলছে না, সেই কোডটি ব্যর্থ হবে৷

আমরা আপনাকে যেখানেই সম্ভব ডেমো প্রকল্প ব্যবহার করার পরামর্শ দিই। সুবিধার মধ্যে রয়েছে:

  • সহজ সেটআপ, যেহেতু আপনি ফায়ারবেস প্রজেক্ট তৈরি না করেই এমুলেটর চালাতে পারবেন
  • শক্তিশালী নিরাপত্তা, যেহেতু আপনার কোড ভুলবশত নন-ইমুলেটেড (উৎপাদন) সংস্থানগুলিকে আমন্ত্রণ জানায়, তবে ডেটা পরিবর্তন, ব্যবহার এবং বিলিং এর কোন সুযোগ নেই
  • ভাল অফলাইন সমর্থন, যেহেতু আপনার SDK কনফিগারেশন ডাউনলোড করতে ইন্টারনেট অ্যাক্সেস করার প্রয়োজন নেই৷

এমুলেটরদের সাথে কথা বলার জন্য আপনার অ্যাপটিকে ইনস্ট্রুমেন্ট করুন

কলযোগ্য ফাংশনগুলির জন্য আপনার অ্যাপকে ইনস্ট্রুমেন্ট করুন

আপনার প্রোটোটাইপ এবং পরীক্ষা কার্যক্রম জড়িত এমন callable ব্যাকএন্ড ফাংশন , ভালো Firebase এমুলেটর জন্য মেঘ কার্যাবলী সঙ্গে কনফিগার মিথষ্ক্রিয়া:

অ্যান্ড্রয়েড
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseFunctions functions = FirebaseFunctions.getInstance();
        functions.useEmulator("10.0.2.2", 5001);
সুইফট
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")

ওয়েব সংস্করণ 9

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

ওয়েব সংস্করণ 8

firebase.functions().useEmulator("localhost", 5001);

এইচটিটিপিএস ফাংশন ইমুলেশনের জন্য আপনার অ্যাপকে ইনস্ট্রুমেন্ট করুন

আপনার কোডের প্রতিটি HTTPS ফাংশন নিম্নলিখিত URL বিন্যাস ব্যবহার করে স্থানীয় এমুলেটর থেকে পরিবেশন করা হবে:

http:// $HOST : $PORT / $PROJECT / $REGION / $NAME

উদাহরণস্বরূপ একটি সহজ helloWorld ডিফল্ট হোস্ট বন্দর এবং অঞ্চলের সঙ্গে ফাংশন সার্ভ করা হবে:

https://localhost:5001/ $PROJECT /us-central1/helloWorld

ব্যাকগ্রাউন্ড-ট্রিগার করা ফাংশন ইমুলেশনের জন্য আপনার অ্যাপকে ইনস্ট্রুমেন্ট করুন

ক্লাউড ফাংশন এমুলেটর নিম্নলিখিত উত্স থেকে ব্যাকগ্রাউন্ড-ট্রিগার করা ফাংশন সমর্থন করে:

  • রিয়েলটাইম ডাটাবেস এমুলেটর
  • ক্লাউড ফায়ারস্টোর এমুলেটর
  • প্রমাণীকরণ এমুলেটর
  • পাব/সাব এমুলেটর

ব্যাকগ্রাউন্ড ইভেন্ট ট্রিগার করতে, আপনার প্ল্যাটফর্মের জন্য SDK ব্যবহার করে এমুলেটরগুলির সাথে আপনার অ্যাপ বা পরীক্ষার কোড সংযুক্ত করুন।

ক্লাউড ফাংশন পরীক্ষা করার জন্য অন্য কোন সরঞ্জাম বিদ্যমান?

ক্লাউড ফাংশন এমুলেটর অন্যান্য প্রোটোটাইপ এবং পরীক্ষার সরঞ্জাম দ্বারা পরিপূরক:

  • ক্লাউড ফাংশন শেল, যা ইন্টারেক্টিভ, পুনরাবৃত্তিমূলক ফাংশন প্রোটোটাইপিং এবং বিকাশের জন্য অনুমতি দেয়। শেলটি বিকাশের জন্য একটি REPL-শৈলী ইন্টারফেস সহ ক্লাউড ফাংশন এমুলেটর নিয়োগ করে। ক্লাউড ফায়ারস্টোর বা রিয়েলটাইম ডেটাবেস এমুলেটরগুলির সাথে কোনও একীকরণ সরবরাহ করা হয় না। শেল ব্যবহার করে, আপনি ডেটা উপহাস করেন এবং স্থানীয় এমুলেটর স্যুট বর্তমানে সমর্থন করে না এমন পণ্যগুলির সাথে ইন্টারঅ্যাকশন অনুকরণ করতে ফাংশন কলগুলি সম্পাদন করেন: ক্লাউড স্টোরেজ, পাব/সাব, অ্যানালিটিক্স, রিমোট কনফিগ, স্টোরেজ, অথ এবং ক্র্যাশলিটিক্স।
  • ক্লাউড ফাংশনের জন্য Firebase টেস্ট SDK, ফাংশন ডেভেলপমেন্টের জন্য মোচা ফ্রেমওয়ার্ক সহ একটি Node.js। কার্যত, ক্লাউড ফাংশন টেস্ট SDK ক্লাউড ফাংশন শেলের উপরে অটোমেশন প্রদান করে।

ক্লাউড কার্যাবলী সম্পর্কে এ শেল এবং ক্লাউড কার্যাবলী টেস্ট SDK এর ক্ষেত্রে আপনি আরও জানতে পারেন টেস্ট ফাংশন ইন্টারেক্টিভ এবং ইউনিট ক্লাউড কার্যাবলী পরীক্ষার

কিভাবে ক্লাউড ফাংশন এমুলেটর উৎপাদন থেকে আলাদা

ক্লাউড ফাংশন এমুলেটর বেশিরভাগ ব্যবহারের ক্ষেত্রে উত্পাদন পরিবেশের মোটামুটি কাছাকাছি। আমরা নোড রানটাইমের মধ্যে সবকিছু যতটা সম্ভব উৎপাদনের কাছাকাছি তা নিশ্চিত করার জন্য ব্যাপক কাজ করেছি। যাইহোক, এমুলেটর সম্পূর্ণ কন্টেইনারাইজড প্রোডাকশন এনভায়রনমেন্টের অনুকরণ করে না, তাই যখন আপনার ফাংশন কোড বাস্তবসম্মতভাবে কার্যকর হবে, তখন আপনার পরিবেশের অন্যান্য দিকগুলি (যেমন স্থানীয় ফাইল, ফাংশন ক্র্যাশ হওয়ার পরে আচরণ ইত্যাদি) ভিন্ন হবে।

ক্লাউড আইএএম

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

মেমরি এবং প্রসেসরের সীমাবদ্ধতা

এমুলেটর আপনার ফাংশনের জন্য মেমরি বা প্রসেসর সীমাবদ্ধতা প্রয়োগ করে না। যাইহোক, এমুলেটর আউট মাধ্যমে ফাংশন সমর্থন সময়জ্ঞান নেই timeoutSeconds যুক্তি রানটাইম।

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

স্থানীয় এবং উত্পাদন পরিবেশে পার্থক্য জন্য পরিকল্পনা

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

সচেতন থাকুন যে ফাংশন বিকাশের জন্য আপনার স্থানীয় পরিবেশ Google উত্পাদন পরিবেশ থেকে আলাদা হতে পারে:

  • অ্যাপ্লিকেশন আপনি স্থানীয়ভাবে ইনস্টল (থেকে যেমন করে ImageMagick প্রকাশনা পরিবেশ অনুকরণ এই টিউটোরিয়াল ) উত্পাদন থেকে আচরণ ভিন্ন হতে পারে, বিশেষ করে যদি আপনি একটি ভিন্ন সংস্করণ প্রয়োজন হয় বা একটি নন-লিনাক্স পরিবেশে বিকাশ। আপনার ফাংশন স্থাপনার পাশাপাশি অনুপস্থিত প্রোগ্রামের আপনার নিজস্ব বাইনারি কপি স্থাপন করার কথা বিবেচনা করুন।

  • একইভাবে, বিল্ট-ইন ইউটিলিটি (যেমন, মত শেল কমান্ড ls , mkdir ), উৎপাদন পাওয়া সংস্করণ থেকে ভিন্ন হতে পারে বিশেষ করে যদি আপনি একটি অ-লিনাক্স পরিবেশে বিকাশ করছি (যেমন, MacOS)। আপনি নেটিভ কমান্ডের জন্য নোড-অনলি বিকল্পগুলি ব্যবহার করে বা আপনার স্থাপনার সাথে বান্ডিল করার জন্য লিনাক্স বাইনারি তৈরি করে এই সমস্যাটি পরিচালনা করতে পারেন।

পুনরায় চেষ্টা করা হচ্ছে

ক্লাউড ফাংশন এমুলেটর ব্যর্থ হলে ফাংশন পুনরায় চেষ্টা করা সমর্থন করে না।

তারপর কি?