קובץ ההגדרות dispatch.yaml

מזהה אזור

REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.

מידע נוסף על מזהי אזורים

ההגדרה dispatch.yaml מאפשרת לכם לבטל את כללי הניתוב. אתם יכולים להשתמש ב-dispatch.yaml כדי לשלוח בקשות נכנסות לשירות ספציפי (שנקרא בעבר מודולים) על סמך הנתיב או שם המארח בכתובת ה-URL.

מידע נוסף זמין במאמר איך בקשות מנותבות.

באפליקציה יכול להיות רק קובץ dispatch.yaml אחד, וכללי הניתוב בקובץ הזה חלים על כל השירותים והגרסאות של האפליקציה.

פריסת קובץ ה-dispatch

כדי לפרוס ולהחיל את הגדרות התצורה מקובץ dispatch לסביבת App Engine:

gcloud app deploy dispatch.yaml

תחביר

רכיב הבסיס בקובץ dispatch.yaml הוא dispatch:, והוא מכיל רשימה של הגדרות ניתוב שמצוינות על ידי רכיבי המשנה הבאים.

הכללים שאתם מגדירים בקובץ dispatch צריכים להשתמש בתבניות של כתובות URL מסוג HTTP שכוללות את הסימון . להפרדה בין תתי-דומיינים. אין תמיכה בכתובות URL שמוגדרות עם הסימון HTTPS ‏ "-dot-".

כללי ההפצה תלויים בסדר, ורק הכלל הראשון שתואם לכתובת URL יחול.

רכיב תיאור
service

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

url

ברכיב url, מגדירים את תבנית כתובת ה-URLpatternבתוך מרכאות,שיכולה לכלול את שם המארח ואת נתיב כתובת ה-URL,באורך של עד 100 תווים.

באלמנט service מציינים את שם השירות שרוצים שיטפל בכל הבקשות הנכנסות שתואמות לתבנית כתובת ה-URL של האלמנט url.

טיפ: אפשר לכלול תבניות glob כמו התו הכללי * ברכיב url, אבל אפשר להשתמש בתבניות האלה רק לפני שם המארח ובסוף נתיב כתובת ה-URL.

נתיבי כתובות URL שמתחילים ב-/_ah/ לא מנותבים על ידי קובץ dispatch.

דוגמה

הקובץ הבא הוא קובץ 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 תווים.

מחיקת כל כללי השליחה

כדי למחוק את כל כללי השליחה:

  1. עורכים את התוכן של הקובץ dispatch.yaml כך:

    dispatch: []
    
  2. פורסים את קובץ ה-dispatch.yaml ב-App Engine.