מיקומי פונקציות Cloud Run (דור ראשון)

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

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

בהמשך מפורטים האזורים שבהם אפשר להשתמש בפונקציות Cloud Run. הגרסאות השונות של פונקציות Cloud Run זמינות באזורים שונים.

תמחור ברמה 1

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

אזור מיקום פליטות CO2
asia-east1 טייוואן
asia-east2 הונג קונג
asia-northeast1 טוקיו
asia-northeast2 אוסקה
europe-west1 בלגיה סמל של עלה רמה נמוכה של CO2
europe-west2 לונדון
us-central1 איווה סמל של עלה רמה נמוכה של CO2
us-east1 דרום קרוליינה
us-east4 צפון וירג'יניה
us-west1 אורגון סמל של עלה רמה נמוכה של CO2

תמחור ברמה 2

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

אזור מיקום פליטות CO2
asia-northeast3 סיאול
asia-southeast1 סינגפור
asia-southeast2 ג'קארטה
asia-south1 מומבאי
australia-southeast1 סידני
europe-central2 ורשה
europe-west3 פרנקפורט
europe-west6 ציריך סמל של עלה רמה נמוכה של CO2
northamerica-northeast1 אמריקה/מונטריאול סמל של עלה רמה נמוכה של CO2
southamerica-east1 סאו פאולו סמל של עלה רמה נמוכה של CO2
us-west2 לוס-אנג׳לס
us-west3 סולט לייק סיטי
us-west4 לאס וגאס

בחירת האזור

אפשר לבחור אזור לפונקציה במהלך הפריסה.

gcloud

אם אתם משתמשים ב-Google Cloud CLI, אתם יכולים לציין את האזור באמצעות הדגל --region:

gcloud functions deploy --no-gen2 FUNCTION_NAME --region=REGION ...

כאשר REGION הוא אחד מהאזורים שמפורטים למעלה.

המסוף

אם אתם משתמשים במסוף Google Cloud , אתם יכולים לבחור את האזור כשאתם יוצרים ופורסים פונקציה.

  1. במסוף Google Cloud , נכנסים לדף סקירה כללית של פונקציות Cloud Run.

    כניסה לדף הסקירה הכללית של פונקציות Cloud Run

    מוודאים שהפרויקט שבו הפעלתם את פונקציות Cloud Run נבחר.

  2. לוחצים על יצירת פונקציה.

  3. בשדה אזור, בוחרים אזור.

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

לפונקציות באזור מסוים בפרויקט מסוים צריכים להיות שמות ייחודיים (תלויי-רישיות), אבל פונקציות באזורים שונים או בפרויקטים שונים יכולות לחלוק את אותו שם.

הגדרת אזור ברירת מחדל

אפשר להגדיר אזור ברירת מחדל באמצעות Google Cloud CLI באופן הבא:

gcloud config set functions/region REGION

לדוגמה:

gcloud config set functions/region europe-west1

המיקום של נתונים

פונקציות Cloud Run מספקות הבטחה למיקום נתונים בהיקף הביצוע של הפונקציה (תאימות להיקף א' – ביצוע הפונקציה), שבה פונקציה נתונה מספקת מיקום נתונים להפעלת הפונקציה או לביצוע שלה.

התאימות הזו רלוונטית גם לפונקציות HTTP וגם לפונקציות מבוססות-אירועים. בפונקציות מבוססות-אירועים, פונקציות Cloud Run תואמות לדרישות של שמירת נתונים במדינה מסוימת מהרגע שבו המוצר במעלה הזרם (המוצר שמפעיל את הטריגר) מעביר את האירוע לפונקציות Cloud Run. לכן, חשוב לוודא שהמוצר במעלה הזרם (כמו Cloud Storage או Pub/Sub) עומד בדרישות של שמירת נתונים.

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

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

פונקציות HTTP

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

פונקציות מבוססות-אירועים

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

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