Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

מיקומי פונקציות ענן

פונקציות ענן היא אזורים, כלומר את התשתית שמריצה הפונקציה קלאוד שלך ממוקמת באזורים ספציפיים מנוהלת על ידי גוגל יהיה זמין באופן מיותר פני כול אזורים בתוך אזורים אלו .

כשאתה בוחר באילו אזורים להפעיל את הפונקציות שלך, השיקולים העיקריים שלך צריכים להיות חביון וזמינות. אתה יכול בדרך כלל לבחור אזורים לסגור למשתמשים שלך, אבל אתה צריך גם לשקול את המיקום של מוצרים ושירותים אחרים , כי שימושי האפליקציה שלך. שימוש בשירותי פני אזורים רבים יכולים להשפיע חביון של האפליקציה שלך, כמו גם תמחור .

ענן פונקציות זמינות באזורים הבאים עם תמחור Tier 1 :

  • us-central1 (Iowa)
  • us-east1 (דרום קרוליינה)
  • us-east4 (צפון וירג'יניה)
  • europe-west1 (בלגיה)
  • europe-west2 (לונדון)
  • asia-east1 (טייוואן)
  • asia-east2 (הונג קונג)
  • asia-northeast1 (טוקיו)
  • asia-northeast2 (Osaka)

ענן פונקציות זמינות באזורים הבאים עם תמחור Tier 2 :

  • us-west2 (לוס אנג'לס)
  • us-west3 (סולט לייק סיטי)
  • us-west4 (לאס וגאס)
  • northamerica-northeast1 (מונטריאול)
  • southamerica-east1 (סאו פאולו)
  • europe-west3 (פרנקפורט)
  • europe-west6 (ציריך)
  • europe-central2 (ורשה)
  • australia-southeast1 (סידני)
  • asia-south1 (מומבאי)
  • asia-southeast1 (סינגפור)
  • asia-southeast2 (Jakarta)
  • asia-northeast3 (סיאול)

הפונקציות באזור נתון בפרויקט נתון חייבות להיות בעלות שמות ייחודיים (ללא רגישות רישיות), אך פונקציות באזורים או בפרויקטים עשויים לחלוק את אותו שם.

שיטות מומלצות לשינוי אזור

כברירת מחדל, פונקציות לרוץ us-central1 באזור. שים לב שזה עשוי להיות שונה מהאזור של מקור אירוע, כגון דלי אחסון בענן. אם עליך לשנות את האזור שבו פועלת פונקציה, עקוב אחר ההמלצות בסעיף זה עבור כל סוג הפעלת פונקציות.

כדי להגדיר את האזור שבו פועל פונקציה, להגדיר את region פרמטר בהגדרת הפונקציה כמוצג:

exports.myStorageFunction = functions
    .region('europe-west1')
    .storage
    .object()
    .onFinalize((object) => {
      // ...
    });

אתה יכול לציין אזורים מרובים על ידי העברת מחרוזות באזור מרובים מופרדים בפסיקים functions.region() . ראה לשנות האזור של פונקציה לקבלת מידע נוסף על נהלים מומלצים.

פונקציות HTTP ופונקציות שניתן להתקשר אליהן

עבור HTTP ופונקציות ניתנות להתקשרות, אנו ממליצים שתגדיר תחילה את הפונקציה שלך לאזור היעד, או הקרוב ביותר למקום בו נמצאים רוב הלקוחות הצפויים, ולאחר מכן שנה את הפונקציה המקורית שלך כדי להפנות את בקשת ה- HTTP שלה לפונקציה החדשה (הם יכולים להיות זהים שֵׁם). אם לקוחות של פונקציית HTTP שלך תומכים בהפניות מחדש, תוכל פשוט לשנות את הפונקציה המקורית שלך כדי להחזיר סטטוס להפניה HTTP (301) יחד עם כתובת האתר של הפונקציה החדשה שלך. אם הלקוחות שלך אינו מטפלים הפניות היטב, אתה יכול proxy הבקשה מפונקציית המקורי לפונקציה החדשה ידי ייזום בקשה חדשה מפונקציית המקורית לפונקציה החדשה. השלב האחרון הוא לוודא שכל הלקוחות מתקשרים לפונקציה החדשה.

בחירת מיקום בצד הלקוח עבור פונקציות ניתנות להתקשרות

בנוגע לפונקציה הניתנת להתקשרות, הגדרות להתקשרות של לקוחות צריכות לפעול לפי אותן הנחיות כמו פונקציות HTTP. הלקוח יכול גם לציין אזור, וצריך לעשות זאת אם הפונקציה פועלת בכל אזור אחר מאשר us-central1 .

כדי להגדיר אזורים בלקוח, ציין את האזור הרצוי בעת האתחול:

מָהִיר

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');

דְמוּי אָדָם

private FirebaseFunctions mFunctions;
// ...
mFunctions = FirebaseFunctions.getInstance("europe-west1");

C ++

firebase::functions::Functions* functions;
// ...
functions = firebase::functions::Functions::GetInstance("europe-west1");

אַחְדוּת

firebase.Functions.FirebaseFunctions functions;

functions = Firebase.Functions.FirebaseFunctions.GetInstance("europe-west1");

פונקציות רקע

פונקציות רקע מאמצות סמנטית למסירת אירועים לפחות פעם אחת, כלומר, בנסיבות מסוימות הן עשויות לקבל אירועים כפולים. אז, אתה צריך ליישם פונקציות להיות idempotent . אם הפונקציה שלך כבר חסרת משמעות, תוכל לפרוס מחדש את הפונקציה באזור החדש עם אותו טריגר לאירוע ולהסיר את הפונקציה הישנה לאחר שתוודא שהפונקציה החדשה מקבלת תנועה כראוי. במהלך מעבר זה, שתי הפונקציות יקבלו אירועים. ראה לשנות האזור של פונקציה עבור הרצף המומלץ של פקודות לשנות אזורים עבור פונקציות.

אם הפונקציה שלך כרגע לא חסרת פוטנציאל או שהעוצמה שלה אינה חורגת מהאזור, אז אנו ממליצים שתיישם תחילה את idempotency לפני שתעביר את הפונקציה.

המלצות אזור אופטימלי משתנות בהתאם לסוג ההפעלה של אירועים:

סוג ההדק המלצת אזור
Cloud Firestore האזור הקרוב ביותר למיקום מופע Cloud Firestore (ראה סעיף הבא)
מסד נתונים בזמן אמת תמיד us-central1
אחסון בענן האזור הקרוב ביותר למיקום הדלי של אחסון ענן (ראה סעיף הבא)
אחרים אם אתה מקיים אינטראקציה עם מופע מסד נתונים בזמן אמת, מופע של Cloud Firestore או דלי אחסון בענן בתוך הפונקציה, אז האזור המומלץ זהה לאלו שהייתה לך פונקציה המופעלת על ידי אחד מהמשאבים האלה. אחרת, להשתמש באזור ברירת המחדל של us-central1 . שים לב גם הפונקציות מחוברות Firebase אירוח חייבות להיות ממוקמות us-central1 .

בחירת אזורים המבוססים על מיקומי Cloud Firestore ו- Cloud Storage

האזורים הזמינים לפונקציות לא תמיד תואמים במדויק את האזורים הזמינים למסד הנתונים שלך ב- Cloud Firestore ולדליים שלך לאחסון ענן.

הערה שאם הפונקציה שלך (למשל מסד הנתונים או אחסון הענן הדלי) המשאב שלך נמצאת במקומות שונים, אז אתה עלול ניסיון מוגבר חביון עלויות חיוב .

הנה מיפוי של פונקציות נתמכות האזורים הקרובים עבור ענן Firestore ו אחסון בענן עבור מקרים בם באותו האזור לא נתמך:

אזור/אזור רב עבור Cloud Firestore ואחסון ענן האזור הקרוב ביותר לפונקציות
nam5 או us-central (-באזור מרובה) us-central1
eur3 או europe-west (-באזור מרובה) europe-west1
asia-south1 (מומבאי) asia-east2