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

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

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

ענן פונקציות זמינות באזורים הבאים עם תמחור 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")

מטרה-ג

@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 . אם הפונקציה שלך כבר חסרת יכולת, תוכל לפרוס מחדש את הפונקציה באזור החדש עם אותו גורם אירוע ולהסיר את הפונקציה הישנה לאחר שתוודא שהפונקציה החדשה מקבלת תנועה נכונה. במהלך מעבר זה, שתי הפונקציות יקבלו אירועים. ראה לשנות האזור של פונקציה עבור הרצף המומלץ של פקודות לשנות אזורים עבור פונקציות.

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

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

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

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

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

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

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

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