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

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

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

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

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

ক্লাউড ফাংশন নিম্নলিখিত অঞ্চলে টিয়ার 1 মূল্যের সাথে উপলব্ধ:

  • asia-east1 (তাইওয়ান)
  • asia-east2 (Hong Kong) শুধুমাত্র 1st gen
  • asia-northeast1 (টোকিও)
  • asia-northeast2 (ওসাকা)
  • europe-north1 (ফিনল্যান্ড) শুধুমাত্র শক্তি_সঞ্চয়_পাতা ২য় প্রজন্ম
  • europe-west1 (বেলজিয়াম) শক্তি_সঞ্চয়_পাতা
  • শুধুমাত্র europe-west2 (লন্ডন) 1st gen
  • us-central1 (Iowa) energy_savings_leaf
  • us-east1 (দক্ষিণ ক্যারোলিনা)
  • us-east4 (উত্তর ভার্জিনিয়া)
  • us-west1 (Oregon) energy_savings_leaf

ক্লাউড ফাংশন নিম্নলিখিত অঞ্চলে টিয়ার 2 মূল্যের সাথে উপলব্ধ:

  • asia-east2 (Hong Kong) শুধুমাত্র 2nd gen
  • asia-northeast3 (সিউল)
  • asia-southeast1 (সিঙ্গাপুর)
  • asia-southeast2 (জাকার্তা)
  • asia-south1 (মুম্বাই) শুধুমাত্র 2য় প্রজন্ম
  • australia-southeast1 (সিডনি)
  • australia-southeast2 (মেলবোর্ন) শুধুমাত্র 2য় প্রজন্ম
  • europe-central2 (ওয়ারশ)
  • শুধুমাত্র europe-west2 (লন্ডন) 2nd gen
  • europe-west3 (ফ্রাঙ্কফুর্ট)
  • europe-west6 (জুরিখ) শক্তি_সঞ্চয়_পাতা
  • northamerica-northeast1 (মন্ট্রিল) শক্তি_সঞ্চয়_পাতা
  • northamerica-northeast2 (টরন্টো) শুধুমাত্র শক্তি_সঞ্চয়_পাতা ২য় প্রজন্ম
  • southamerica-east1 (সাও পাওলো) শক্তি_সঞ্চয়_পাতা
  • southamerica-west1 (সান্তিয়াগো, চিলি) শুধুমাত্র 2nd gen
  • us-west2 (লস এঞ্জেলেস)
  • us-west3 (সল্ট লেক সিটি)
  • us-west4 (লাস ভেগাস)

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

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

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

যে অঞ্চলে একটি ফাংশন চলে সেটি সেট করতে, ফাংশনের সংজ্ঞায় 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 একাধিক কমা দ্বারা পৃথক অঞ্চল স্ট্রিং পাস করে একাধিক অঞ্চল নির্দিষ্ট করতে পারেন। এছাড়াও মনে রাখবেন যে, অনেক ব্যাকগ্রাউন্ড ট্রিগার প্রকারের জন্য একটি অঞ্চল নির্দিষ্ট করার সময়, আপনাকে অঞ্চলের সাথে সঠিক ইভেন্ট ফিল্টারটি নির্দিষ্ট করতে হবে। উপরের উদাহরণে, এটি হল ক্লাউড ফায়ারস্টোর document যা ইভেন্টটি নির্গত করে৷ একটি ক্লাউড স্টোরেজ ট্রিগারের জন্য ইভেন্ট ফিল্টারটি bucket হতে পারে; একটি পাব/সাব ট্রিগারের জন্য এটি 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 না হয়, অথবা এর idempotency অঞ্চলের বাইরে প্রসারিত না হয়, তাহলে আমরা সুপারিশ করি যে আপনি ফাংশনটি সরানোর আগে প্রথমে idempotency প্রয়োগ করুন৷

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

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

ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ অবস্থানের উপর ভিত্তি করে অঞ্চল নির্বাচন করা

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

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

এখানে ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজের জন্য নিকটতম ফাংশন-সমর্থিত অঞ্চলগুলির একটি ম্যাপিং রয়েছে, যেখানে একই অঞ্চল সমর্থিত নয় :

ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজের জন্য অঞ্চল/মাল্টি-অঞ্চল ফাংশন জন্য নিকটতম অঞ্চল
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