מזהה אזור
REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.
התג dispatch.yaml מאפשר לכם לבטל את כללי הניתוב.
אתם יכולים להשתמש ב-dispatch.yaml כדי לשלוח בקשות נכנסות לשירות ספציפי (שנקרא בעבר מודולים) על סמך הנתיב או שם המארח בכתובת ה-URL.
מידע נוסף זמין במאמר איך בקשות מנותבות.
באפליקציה יכול להיות רק קובץ dispatch.yaml אחד, וכללי הניתוב בקובץ הזה חלים על כל השירותים והגרסאות של האפליקציה.
כללי הניתוב חלים גם על כתובות URL שמשמשות בקובץ cron.
פריסת קובץ ה-dispatch
לפני שפורסים את קובץ ה-dispatch, צריך לוודא שכל השירותים שמוגדרים בקובץ הזה כבר נפרסו ב-App Engine. כדי לפרוס את הקובץ dispatch.yaml, מריצים את הפקודה gcloud app deploy מהספרייה שמכילה את הקובץ dispatch.yaml:
gcloud app deploy dispatch.yaml
מידע נוסף על פקודות הפריסה זמין במאמר פריסת אפליקציה.
תחביר
רכיב הבסיס בקובץ dispatch.yaml הוא dispatch:, והוא מכיל רשימה של הגדרות ניתוב שמצוינות על ידי רכיבי המשנה הבאים.
הכללים שאתם מגדירים בקובץ dispatch צריכים להשתמש בתבניות של כתובות URL מסוג HTTP שכוללות את הסימון . להפרדה בין תתי-דומיינים. אין תמיכה בכתובות URL שמוגדרות עם הסימון HTTPS "-dot-".
כללי ההפצה תלויים בסדר, ורק הכלל הראשון שתואם לכתובת URL יחול.
| רכיב | תיאור |
|---|---|
service |
ההגדרה הזו מציינת את שם השירות שיטפל בבקשות שתואמות לתבנית |
url |
ברכיב
באלמנט
טיפ: אפשר לכלול תבניות glob כמו התו הכללי
נתיבי כתובות URL שמתחילים ב- |
דוגמה
הקובץ הבא הוא קובץ dispatch לדוגמה שמנתב בקשות אל https://simple-sample.uc.r.appspot.com ובקשות כמו https://simple-sample.uc.r.appspot.com/favicon.ico אל השירות default. כל התוכן הסטטי מוגש משירות default. בקשות ממכשירים ניידים כמו https://simple-sample.uc.r.appspot.com/mobile/ מנותבות לקצה קדמי לנייד, ובקשות של עובדים כמו https://simple-sample.uc.r.appspot.com/work/ מנותבות לבק-אנד סטטי.
דוגמה:
dispatch:
# Default service serves the typical web resources and all static resources.
- url: "*/favicon.ico"
service: default
# Default service serves simple hostname request.
- url: "simple-sample.uc.r.appspot.com/"
service: default
# Send all mobile traffic to the mobile frontend.
- url: "*/mobile/*"
service: mobile-frontend
# Send all work to the one static backend.
- url: "*/work/*"
service: static-backend
אם אתם מעדיפים כללי ניתוב כלליים שתואמים להרבה בקשות אפשריות, אתם יכולים להגדיר כללים עם היקפים רחבים יותר.
דוגמה:
# Send any path that begins with “simple-sample.uc.r.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.uc.r.appspot.com/mobile*"
service: mobile-frontend
# Send any domain/sub-domain with a path that starts with “work” to the static backend service.
- url: "*/work*"
service: static-backend
אפשר גם לכתוב ביטויים מחמירים יותר.
דוגמה:
# Matches the path "/fun", but not "/fun2" or "/fun/other"
- url: "*/fun"
service: mobile-frontend
# Matches the hostname 'customer1.myapp.com', but not '1.customer1.myapp.com.
- url: "customer1.myapp.com/*"
service: static-backend
אתם יכולים ליצור כללים להפניה מחדש של בקשות נכנסות לדומיין לשירות. הכללים הבאים מנתבים בקשות נכנסות מ-customer1.myapp.com לשירות ברירת המחדל, ובקשות נכנסות מתתי-דומיינים לשירות סטטי של קצה עורפי.
דוגמה:
# Matches the domain name 'customer1.myapp.com' and directs all the request to default service
- url: "customer1.myapp.com/*"
service: default
# Matches all the subdomains of 'customer1.myapp.com' and directs all the request to static-backend service
- url: "*.customer1.myapp.com/*"
service: static-backend
מגבלות
קובץ dispatch יכול להכיל עד 20 כללי ניתוב. כשמציינים את מחרוזת ה-URL, שם המארח והנתיב לא יכולים להיות ארוכים מ-100 תווים.
מחיקת כל כללי השליחה
כדי למחוק את כל כללי השליחה:
עורכים את התוכן של הקובץ
dispatch.yamlכך:dispatch: []פורסים את קובץ ה-
dispatch.yamlב-App Engine.