المواقع الجغرافية لـ Cloud Functions

تكون وظائف Cloud Functions إقليمية، ما يعني أنّ البنية الأساسية التي تدير في مناطق محددة وتديرها Google متوفرة بشكل متكرر عبر جميع المناطق ضمن تلك المناطق

عند تحديد المناطق التي تريد تشغيل الدوال بها، يجب اعتبارات وقت الاستجابة والتوافر. يمكنك بشكل عام مناطق قريبة من المستخدمين، ولكنك أيضًا مراعاة موقع المنتجات والخدمات الأخرى التي يستخدمها تطبيقك. يمكن أن يؤثر استخدام الخدمات في مناطق متعدّدة ووقت استجابة التطبيق، بالإضافة إلى الأسعار.

يتم تنفيذ الدوال تلقائيًا في منطقة us-central1. لاحظ أن هذا قد يكون تختلف عن منطقة مصدر الحدث، مثل حزمة Cloud Storage. تعرَّف على كيفية تحديد المنطقة التي يتم تشغيل الدالة فيها لاحقًا في هذه الصفحة.

المناطق التي تتوفّر فيها هذه الميزة

في القوائم الواردة في هذا القسم، ستلاحظ أن ورقة_توفير_الطاقة إلى أنّ الكهرباء في هذه المنطقة يتم إنتاجها باستخدام ذات انبعاثات منخفضة الكربون. لمزيد من المعلومات، يُرجى مراجعة الطاقة الخالية من الكربون في مناطق Google Cloud

تتوفّر ميزة Cloud Functions في المناطق التالية التي تشمل أسعار "المستوى 1":

  • asia-east1 (تايوان)
  • asia-east2 (هونغ كونغ) الجيل الأول فقط
  • asia-northeast1 (طوكيو)
  • asia-northeast2 (أوساكا)
  • europe-north1 (فنلندا) ورقة_توفير_الطاقة الجيل الثاني فقط
  • europe-west1 (بلجيكا) ورقة_توفير_الطاقة
  • europe-west2 (لندن) الجيل الأول فقط
  • us-central1 (آيوا) ورقة_توفير_الطاقة
  • us-east1 (كارولينا الجنوبية)
  • us-east4 (فيرجينيا الشمالية)
  • us-west1 (أوريغون) ورقة_توفير_الطاقة

تتوفّر ميزة Cloud Functions في المناطق التالية التي تشمل أسعار "المستوى 2":

  • asia-east2 (هونغ كونغ) الجيل الثاني فقط
  • asia-northeast3 (سول)
  • asia-southeast1 (سنغافورة)
  • asia-southeast2 (جاكرتا)
  • asia-south1 (مومباي) الجيل الثاني فقط
  • australia-southeast1 (سيدني)
  • australia-southeast2 (ملبورن) الجيل الثاني فقط
  • europe-central2 (وارسو)
  • europe-west2 (لندن) الجيل الثاني فقط
  • europe-west3 (فرانكفورت)
  • europe-west6 (زيورخ) ورقة_توفير_الطاقة
  • northamerica-northeast1 (مونتريال) ورقة_توفير_الطاقة
  • northamerica-northeast2 (تورونتو) ورقة_توفير_الطاقة الجيل الثاني فقط
  • southamerica-east1 (ساو باولو) ورقة_توفير_الطاقة
  • 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؛ بالنسبة لمشغِّل النشر/الاشتراك سيكون 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 (يُرجى الاطّلاع على القسم التالي)
قاعدة بيانات الوقت الفعلي دائمًا us-central1
Cloud Storage أقرب منطقة إلى موقع حزمة Cloud Storage (راجِع القسم التالي)
غير ذلك فإذا كنت تتفاعل مع مثيل قاعدة بيانات Realtime Database، فإن Cloud Firestore أو حزمة Cloud Storage داخل الدالة، فعندئذٍ نقترح المنطقة نفسها كما لو كان لديك دالة يتم تشغيلها بواسطة إحدى تلك الدوال الموارد. في الحالات الأخرى، يمكنك استخدام المنطقة التلقائية من us-central1. يمكن أن تكون الدوال المرتبطة بـ "استضافة Firebase" في أي منطقة، ولكن يمكنك الاطّلاع على النظرة العامة للاستضافة بدون خادم للحصول على اقتراحات.

اختيار المناطق استنادًا إلى موقعَي 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