ক্লাউড ফাংশন অবস্থান

Cloud Functions হল আঞ্চলিক , যার অর্থ হল আপনার ফাংশন পরিচালনাকারী অবকাঠামো নির্দিষ্ট অঞ্চলে অবস্থিত এবং Google দ্বারা পরিচালিত হয় যাতে সেই অঞ্চলের সমস্ত অঞ্চলে অপ্রয়োজনীয়ভাবে উপলব্ধ থাকে।

কোন অঞ্চলে আপনার ফাংশন চালানো হবে তা নির্বাচন করার সময়, আপনার প্রাথমিক বিবেচনার বিষয় হওয়া উচিত লেটেন্সি এবং প্রাপ্যতা। আপনি সাধারণত আপনার ব্যবহারকারীদের কাছাকাছি অঞ্চল নির্বাচন করতে পারেন, তবে আপনার অ্যাপ যে অন্যান্য পণ্য এবং পরিষেবা ব্যবহার করে তার অবস্থানও বিবেচনা করা উচিত। একাধিক অঞ্চলে পরিষেবা ব্যবহার করা আপনার অ্যাপের লেটেন্সির পাশাপাশি মূল্য নির্ধারণকেও প্রভাবিত করতে পারে।

ডিফল্টরূপে, ফাংশনগুলি us-central1 অঞ্চলে চলে। মনে রাখবেন এটি কোনও ইভেন্ট সোর্সের অঞ্চল থেকে আলাদা হতে পারে, যেমন Cloud Storage বাকেট। এই পৃষ্ঠায় পরে জানুন যে কোনও ফাংশন কোথায় চলে সেই অঞ্চলটি কীভাবে নির্দিষ্ট করবেন

সমর্থিত অঞ্চল

এই বিভাগের তালিকাগুলিতে, energy_savings_leaf আইকনটি নির্দেশ করে যে এই অঞ্চলের বিদ্যুৎ কম কার্বন নির্গমনের সাথে উৎপাদিত হয়। আরও তথ্যের জন্য, Google ক্লাউড অঞ্চলের জন্য কার্বন মুক্ত শক্তি দেখুন।

টিয়ার ১ মূল্য নির্ধারণ

Cloud Functions নিম্নলিখিত অঞ্চলে টিয়ার ১ মূল্যের সাথে উপলব্ধ:

অঞ্চল স্থান সমর্থিত পণ্য সংস্করণ CO2 নির্গমন
africa-south1 জোহানেসবার্গ শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
asia-east1 তাইওয়ান প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
asia-east2 হংকং শুধুমাত্র প্রথম প্রজন্মের জন্য
asia-northeast1 টোকিও প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
asia-northeast2 ওসাকা প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
europe-north1 ফিনল্যান্ড শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য শক্তি_সঞ্চয়_পাতা
europe-southwest1 মাদ্রিদ শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
europe-west1 বেলজিয়াম প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম শক্তি_সঞ্চয়_পাতা
europe-west4 নেদারল্যান্ডস শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
europe-west8 মিলান শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
europe-west9 প্যারী শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য শক্তি_সঞ্চয়_পাতা
me-west1 তেল আবিব শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
europe-west2 লন্ডন শুধুমাত্র প্রথম প্রজন্মের জন্য
us-central1 আইওয়া প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম শক্তি_সঞ্চয়_পাতা
us-east1 দক্ষিণ ক্যারোলিনা প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
us-east4 উত্তর ভার্জিনিয়া প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
us-east5 কলম্বাস শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
us-south1 ডালাস শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
us-west1 ওরেগন প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম শক্তি_সঞ্চয়_পাতা

দ্বিতীয় স্তরের মূল্য নির্ধারণ

Cloud Functions নিম্নলিখিত অঞ্চলে টিয়ার 2 মূল্যের সাথে উপলব্ধ:

অঞ্চল স্থান সমর্থিত পণ্য সংস্করণ CO2 নির্গমন
asia-east2 হংকং শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
asia-northeast3 সিউল প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
asia-southeast1 সিঙ্গাপুর প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
asia-southeast2 জাকার্তা প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
asia-south1 মুম্বাই শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
asia-south2 দিল্লি, ভারত শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
australia-southeast1 সিডনি প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
australia-southeast2 মেলবোর্ন শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
europe-central2 ওয়ারশ প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
europe-west2 লন্ডন শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
europe-west3 ফ্রাঙ্কফুর্ট প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম শক্তি_সঞ্চয়_পাতা
europe-west6 জুরিখ প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম শক্তি_সঞ্চয়_পাতা
europe-west10 বার্লিন শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
europe-west12 তুরিন শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
me-central1 দোহা শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
me-central2 দাম্মাম শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
northamerica-northeast1 মন্ট্রিল প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম শক্তি_সঞ্চয়_পাতা
northamerica-northeast2 টরন্টো শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য শক্তি_সঞ্চয়_পাতা
southamerica-east1 সাও পাওলো প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম শক্তি_সঞ্চয়_পাতা
southamerica-west1 সান্তিয়াগো, চিলি শুধুমাত্র দ্বিতীয় প্রজন্মের জন্য
us-west2 লস অ্যাঞ্জেলেস প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
us-west3 সল্ট লেক সিটি প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম
us-west4 লাস ভেগাস প্রথম প্রজন্ম, দ্বিতীয় প্রজন্ম

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

একটি অঞ্চল নির্দিষ্ট করার জন্য সর্বোত্তম অনুশীলন

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

একটি ফাংশন যে অঞ্চলে চলে তা সেট করতে, ফাংশন সংজ্ঞায় দেখানো region প্যারামিটার সেট করুন:

নোড.জেএস

exports.firestoreAsia = onDocumentCreated(
  {
    document: "my-collection/{docId}",
    region: "asia-northeast1",
  },
  (event) => {},
);

পাইথন

# Before
@firestore_fn.on_document_created("my-collection/{docId}")
def firestore_trigger(event):
    pass

# After
@firestore_fn.on_document_created("my-collection/{docId}",
                                  region="asia-northeast1")
def firestore_trigger_asia(event):
    pass

আপনি region এ একাধিক কমা দ্বারা পৃথক অঞ্চল স্ট্রিং পাস করে একাধিক অঞ্চল নির্দিষ্ট করতে পারেন। এছাড়াও মনে রাখবেন যে, অনেক ব্যাকগ্রাউন্ড ট্রিগার ধরণের জন্য একটি অঞ্চল নির্দিষ্ট করার সময়, আপনাকে অঞ্চলের সাথে সঠিক ইভেন্ট ফিল্টারটিও নির্দিষ্ট করতে হবে। উপরের উদাহরণে, এটি হল Cloud Firestore document যা ইভেন্টটি নির্গত করে। Cloud Storage trigger এর জন্য ইভেন্ট ফিল্টারটি bucket হতে পারে; Pub/Sub trigger এর জন্য এটি topic হবে, ইত্যাদি।

প্রোডাকশন ট্র্যাফিক পরিচালনা করে এমন একটি ফাংশনের জন্য অঞ্চল পরিবর্তন করার বিষয়ে আরও তথ্যের জন্য একটি ফাংশনের অঞ্চল পরিবর্তন দেখুন।

HTTP এবং ক্লায়েন্ট-কলযোগ্য ফাংশন

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

কলযোগ্য ফাংশনের জন্য ক্লায়েন্ট-সাইড অবস্থান নির্বাচন

কলেবল ফাংশনের ক্ষেত্রে, ক্লায়েন্ট কলেবল সেটআপগুলিকে HTTP ফাংশনের মতো একই নির্দেশিকা অনুসরণ করা উচিত। ক্লায়েন্ট একটি অঞ্চলও নির্দিষ্ট করতে পারে এবং যদি ফাংশনটি us-central1 ছাড়া অন্য কোনও অঞ্চলে চলে তবে অবশ্যই তা করতে হবে।

ক্লায়েন্টে অঞ্চল সেট করতে, শুরু করার সময় পছন্দসই অঞ্চলটি নির্দিষ্ট করুন:

সুইফট

lazy var functions = Functions.functions(region:"europe-west1")

অবজেক্টিভ-সি

@property(strong, nonatomic) FIRFunctions *functions;
// ...
self.functions = [FIRFunctions functionsWithRegion:@"europe-west1"];

ওয়েব


var functions = firebase.app().functions('europe-west1');

অ্যান্ড্রয়েড

private FirebaseFunctions mFunctions;
// ...
mFunctions = FirebaseFunctions.getInstance("europe-west1");

সি++

firebase::functions::Functions* functions;
// ...
functions = firebase::functions::Functions::GetInstance("europe-west1");

ঐক্য

firebase.Functions.FirebaseFunctions functions;

functions = Firebase.Functions.FirebaseFunctions.GetInstance("europe-west1");

পটভূমি ফাংশন

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

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

ইভেন্ট ট্রিগারের ধরণ অনুসারে সর্বোত্তম অঞ্চলের সুপারিশগুলি পৃথক হয়:

ট্রিগারের ধরণ অঞ্চলের সুপারিশ
Cloud Firestore Cloud Firestore ইনস্ট্যান্স অবস্থানের নিকটতম অঞ্চল (পরবর্তী বিভাগটি দেখুন)
Realtime Database Realtime Database ইনস্ট্যান্সের মতো একই অঞ্চল
Cloud Storage Cloud Storage বাকেট অবস্থানের নিকটতম অঞ্চল (পরবর্তী বিভাগটি দেখুন)
অন্যান্য যদি আপনি ফাংশনের ভিতরে একটি Realtime Database ইনস্ট্যান্স, একটি Cloud Firestore ইনস্ট্যান্স, অথবা একটি Cloud Storage বাকেটের সাথে ইন্টারঅ্যাক্ট করেন, তাহলে প্রস্তাবিত অঞ্চলটি সেই রিসোর্সগুলির একটি দ্বারা ট্রিগার করা কোনও ফাংশনের মতোই হবে। অন্যথায়, us-central1 এর ডিফল্ট অঞ্চলটি ব্যবহার করুন। Firebase Hosting এর সাথে সংযুক্ত ফাংশনগুলি যেকোনো অঞ্চলে হতে পারে, তবে সুপারিশের জন্য হোস্টিং সার্ভারলেস ওভারভিউ দেখুন।

Cloud Firestore এবং Cloud Storage অবস্থানের উপর ভিত্তি করে অঞ্চল নির্বাচন করা

ফাংশনের জন্য উপলব্ধ অঞ্চলগুলি সবসময় আপনার Cloud Firestore ডাটাবেস এবং আপনার Cloud Storage বাকেটের জন্য উপলব্ধ অঞ্চলগুলির সাথে সঠিকভাবে মেলে না।

মনে রাখবেন যে যদি আপনার ফাংশন এবং আপনার রিসোর্স (ডাটাবেস ইনস্ট্যান্স বা Cloud Storage বাকেট) ভিন্ন স্থানে থাকে, তাহলে আপনি সম্ভাব্যভাবে বিলম্ব এবং বিলিং খরচ বৃদ্ধির সম্মুখীন হতে পারেন।

Cloud Firestore এবং Cloud Storage জন্য নিকটতম ফাংশন-সমর্থিত অঞ্চলগুলির একটি ম্যাপিং এখানে দেওয়া হল, যেখানে একই অঞ্চল সমর্থিত নয় :

Cloud Firestore এবং Cloud Storage জন্য অঞ্চল/বহু-অঞ্চল ফাংশনের জন্য নিকটতম অঞ্চল
nam5 অথবা us-central (বহু-অঞ্চল) us-central1
eur3 অথবা europe-west (বহু-অঞ্চল) europe-west1
europe-west4 (নেদারল্যান্ডস) europe-west1
asia-south1 (মুম্বাই) asia-east2
asia-south2 (দিল্লি) asia-east2
australia-southeast2 (মেলবোর্ন) australia-southeast1