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 |