المواقع الجغرافية لـ 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. لاحظ أيضًا أنه عند تحديد منطقة للعديد من عليك تحديد فلتر الأحداث الصحيح إلى جانب المنطقة. في المثال أعلاه، هذه هي document Cloud Firestore. التي تنبعث منها الحدث. بالنسبة إلى 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 (راجِع القسم التالي)
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