Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

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

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

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

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

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

פונקציות ענן זמינות באזורים הבאים עם תמחור שכבה 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 (ג'קרטה)
  • asia-northeast3 (סיאול)

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

שיטות עבודה מומלצות לשינוי אזור

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

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

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

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

HTTP ופונקציות הניתנות להתקשרות עם הלקוח

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

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

לגבי הפונקציה הניתנת להתקשרות, הגדרות הניתנות להתקשרות על ידי הלקוח צריכות לפעול לפי אותן הנחיות כמו פונקציות 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");

פונקציות רקע

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

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

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

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

בחירת אזורים על סמך מיקומי 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
asia-south1 (מומביי) asia-east2