Cloud Functions إقليمي، ما يعني أنّ البنية الأساسية التي تشغّل وظيفتك موجودة في مناطق معيّنة وتُديرها Google لتكون متوفرة بشكلٍ متكرّر في جميع المناطق ضمن تلك المناطق.
عند اختيار المناطق التي تريد تشغيل دوالّك فيها، يجب أن تكون المسألتان الأساسيتان اللتان يجب مراعاتهما هما وقت الاستجابة ومدى التوفّر. يمكنك عمومًا اختيار مناطق قريبة من المستخدمين، ولكن يجب أيضًا مراعاة الموقع الجغرافي للمنتجات والخدمات الأخرى التي يستخدمها تطبيقك. يمكن أن يؤثّر استخدام الخدمات في مناطق متعدّدة في وقت استجابة تطبيقك، بالإضافة إلى الأسعار.
يتم تنفيذ الدوال تلقائيًا في منطقة us-central1
. يُرجى العِلم أنّ هذه المنطقة قد تختلف عن منطقة مصدر الحدث، مثل حزمة Cloud Storage.
اطّلِع على كيفية تحديد المنطقة التي يتم تشغيل الدالة فيها لاحقًا في هذه الصفحة.
المناطق التي تتوفّر فيها الميزة
في القوائم الواردة في هذا القسم، يشير رمز energy_savings_leaf إلى أنّ الكهرباء في هذه المنطقة يتم إنتاجها باستخدام انبعاثات كربونية منخفضة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة الطاقة الخالية من الكربون في مناطق Google Cloud.
أسعار الفئة 1
يتوفّر Cloud Functions في المناطق التالية وباستخدامأسعار الفئة 1:
المنطقة | الموقع الجغرافي | إصدارات المنتجات المتوافقة | انبعاثات ثاني أكسيد الكربون |
---|---|---|---|
asia-east1 |
تايوان | الجيل الأول والجيل الثاني | |
asia-east2 |
هونغ كونغ | الجيل الأول فقط | |
asia-northeast1 |
طوکیو | الجيل الأول والجيل الثاني | |
asia-northeast2 |
أوساكا | الجيل الأول والجيل الثاني | |
europe-north1 |
فنلندا | الجيل الثاني فقط | energy_savings_leaf |
europe-southwest1 |
مدرید | الجيل الثاني فقط | |
europe-west1 |
بلجيكا | الجيل الأول والجيل الثاني | energy_savings_leaf |
europe-west4 |
هولندا | الجيل الثاني فقط | |
europe-west8 |
ميلانو | الجيل الثاني فقط | |
europe-west9 |
باريس | الجيل الثاني فقط | energy_savings_leaf |
me-west1 |
تلاویو | الجيل الثاني فقط | |
europe-west2 |
لندن | الجيل الأول فقط | |
us-central1 |
أيوا | الجيل الأول والجيل الثاني | energy_savings_leaf |
us-east1 |
كارولاينا الجنوبية | الجيل الأول والجيل الثاني | |
us-east4 |
فيرجينيا الشمالية | الجيل الأول والجيل الثاني | |
us-east5 |
كولومبوس | الجيل الثاني فقط | |
us-south1 |
مافيريكس | الجيل الثاني فقط | |
us-west1 |
أوريغون | الجيل الأول والجيل الثاني | energy_savings_leaf |
أسعار الفئة 2
يتوفّر Cloud Functions في المناطق التالية وباستخدام أسعار الفئة 2:
المنطقة | الموقع الجغرافي | إصدارات المنتجات المتوافقة | انبعاثات ثاني أكسيد الكربون |
---|---|---|---|
asia-east2 |
هونغ كونغ | الجيل الثاني فقط | |
asia-northeast3 |
سئول | الجيل الأول والجيل الثاني | |
asia-southeast1 |
سنغافورة | الجيل الأول والجيل الثاني | |
asia-southeast2 |
جاکارتا | الجيل الأول والجيل الثاني | |
asia-south1 |
مومباي | الجيل الثاني فقط | |
asia-south2 |
دلهي، الهند | الجيل الثاني فقط | |
australia-southeast1 |
سيدني | الجيل الأول والجيل الثاني | |
australia-southeast2 |
ميلبورن | الجيل الثاني فقط | |
europe-central2 |
وارسو | الجيل الأول والجيل الثاني | |
europe-west2 |
لندن | الجيل الثاني فقط | |
europe-west3 |
فرانكفورت | الجيل الأول والجيل الثاني | energy_savings_leaf |
europe-west6 |
زوریخ | الجيل الأول والجيل الثاني | energy_savings_leaf |
europe-west10 |
دبي | الجيل الثاني فقط | |
europe-west12 |
تورينو | الجيل الثاني فقط | |
me-central1 |
الدوحة | الجيل الثاني فقط | |
me-central2 |
الدمام | الجيل الثاني فقط | |
northamerica-northeast1 |
مونتريال | الجيل الأول والجيل الثاني | energy_savings_leaf |
northamerica-northeast2 |
تورونتو | الجيل الثاني فقط | energy_savings_leaf |
southamerica-east1 |
ساو باولو | الجيل الأول والجيل الثاني | energy_savings_leaf |
southamerica-west1 |
سانتياغو، تشيلي | الجيل الثاني فقط | |
us-west2 |
لوس أنجلوس | الجيل الأول والجيل الثاني | |
us-west3 |
سالت لايك سيتي | الجيل الأول والجيل الثاني | |
us-west4 |
لاس فيغاس | الجيل الأول والجيل الثاني |
يجب أن تكون للدوالّ في منطقة معيّنة ضمن مشروع معيّن أسماء فريدة (لا تراعي التمييز بين الأحرف اللاتينية الكبيرة والصغيرة)، ولكن يمكن أن تتشارك الدوالّ في جميع المناطق أو المشاريع الاسم نفسه.
أفضل الممارسات لتحديد منطقة
يتم تنفيذ الدوال تلقائيًا في منطقة us-central1
. يُرجى العِلم أنّ هذه المنطقة قد تختلف عن منطقة مصدر الحدث، مثل حزمة Cloud Storage. إذا
كنت بحاجة إلى تحديد المنطقة التي يتم فيها تشغيل الدالة، اتّبِع
الاقتراحات الواردة في هذا القسم لكل نوع من أنواع مثبّت الدالة.
لضبط المنطقة التي يتم فيها تنفيذ الدالة، اضبط المَعلمة region
في
تعريف الدالة كما هو موضّح:
Node.js
exports.firestoreAsia = onDocumentCreated(
{
document: "my-collection/{docId}",
region: "asia-northeast1",
},
(event) => {},
);
Python
# 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
، وبالنسبة إلى عامل تشغيل Pub/Sub، سيكون topic
، وهكذا.
اطّلِع على مقالة تغيير منطقة دالة للحصول على مزيد من المعلومات عن تغيير منطقة دالة تعالج زيارات الإصدار العلني.
بروتوكول HTTP والدوالّ التي يمكن للعملاء استدعاؤها
بالنسبة إلى دوال HTTP والدوال القابلة للاستدعاء، ننصحك أولاً بتعيين الدالة على منطقة الوجهة، أو الأقرب إلى المكان الذي يتواجد فيه معظم العملاء المتوقعين، ثم تغيير الدالة الأصلية لإعادة توجيه طلب HTTP إلى الدالة الجديدة (يمكن أن يكون لها الاسم نفسه). إذا كانت عملاء دالة HTTP تتيح استخدام إعادة توجيه، يمكنك ببساطة تغيير وظيفتك الأصلية لعرض حالة إعادة توجيه HTTP (301) مع عنوان URL لوظيفتك الجديدة. إذا لم يتعامل عملاؤك مع عمليات إعادة التوجيه بشكل جيد، يمكنك إنشاء وكيل للطلب من الدالة الأصلية إلى الدالة الجديدة عن طريق بدء طلب جديد من الدالة الأصلية إلى الدالة الجديدة. الخطوة الأخيرة هي التأكد من أن جميع العملاء يستدعي الدالة الجديدة.
اختيار الموقع الجغرافي من جهة العميل للدوالّ القابلة للاستدعاء
في ما يتعلّق بالدالة القابلة للاستدعاء، يجب أن تتّبع عمليات الإعداد القابلة للاستدعاء من العميل
الإرشادات نفسها التي تنطبق على دوال HTTP. يمكن للعميل أيضًا تحديد منطقة، ويجب إجراء ذلك إذا كانت الدالة تعمل في أي منطقة غير us-central1
.
لضبط المناطق على العميل، حدِّد المنطقة المطلوبة عند الإعداد:
Swift
lazy var functions = Functions.functions(region:"europe-west1")
Objective-C
@property(strong, nonatomic) FIRFunctions *functions;
// ...
self.functions = [FIRFunctions functionsWithRegion:@"europe-west1"];
الويب
var functions = firebase.app().functions('europe-west1');
Android
private FirebaseFunctions mFunctions;
// ...
mFunctions = FirebaseFunctions.getInstance("europe-west1");
C++
firebase::functions::Functions* functions;
// ...
functions = firebase::functions::Functions::GetInstance("europe-west1");
Unity
firebase.Functions.FirebaseFunctions functions;
functions = Firebase.Functions.FirebaseFunctions.GetInstance("europe-west1");
الدوالّ التي تعمل في الخلفية
تتّبع الدوالّ التي تعمل في الخلفية بنية تسليم الأحداث لمرة واحدة على الأقل، ما يعني أنّه في بعض الحالات قد تتلقّى أحداثًا مكرّرة. لذلك، يجب تنفيذ الدوال لتكون غير مكتملة. إذا كانت الدالة تستوفي متطلّبات الاتّساق الذاتي، يمكنك إعادة نشر الدالة في المنطقة الجديدة باستخدام مشغّل الحدث نفسه وإزالة الدالة القديمة بعد التأكّد من أنّ الدالة الجديدة تتلقّى الزيارات بشكلٍ صحيح. خلال عملية النقل هذه، ستتلقّى كلتا الدالتَين أحداثًا. اطّلِع على تغيير منطقة دالة للحصول على تسلسل الأوامر المقترَح لتغيير مناطق الدوال.
إذا لم تكن الدالة غير متعدّدة المفعول حاليًا، أو إذا لم يكن مفعولها يتجاوز المنطقة، ننصحك أولاً بتنفيذ عدم تكرار المفعول قبل نقل الدالة.
تختلف اقتراحات المناطق المثلى حسب نوع عامل تشغيل الحدث:
نوع المشغّل | اقتراح المنطقة |
---|---|
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 |