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

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

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

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

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

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

টিয়ার 1 মূল্য

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

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

টায়ার 2 মূল্য

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

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

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

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

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

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

Node.js

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 ট্রিগারের জন্য ইভেন্ট ফিল্টারটি bucket হতে পারে; একটি পাব/সাব ট্রিগারের জন্য এটি topic হবে, এবং তাই।

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

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

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

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

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

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

সুইফট

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

উদ্দেশ্য-C

@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 না হয়, অথবা এর idempotency অঞ্চলের বাইরে প্রসারিত না হয়, তাহলে আমরা সুপারিশ করি যে আপনি ফাংশনটি সরানোর আগে প্রথমে idempotency প্রয়োগ করুন৷

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

ট্রিগার প্রকার অঞ্চল সুপারিশ
Cloud Firestore Cloud Firestore ইনস্ট্যান্স অবস্থানের নিকটতম অঞ্চল (পরবর্তী বিভাগটি দেখুন)
Realtime Database সর্বদা us-central1
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