מזהה אזור
REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.
בקטע הזה מוסבר איך להשתמש בהגדרות של Ingress כדי להגביל את הגישה לרשת לאפליקציית App Engine. ברמת הרשת, כברירת מחדל, כל משאב באינטרנט יכול להגיע לאפליקציית App Engine בכתובת ה-URL של appspot או בדומיין מותאם אישית שהוגדר ב-App Engine. לדוגמה, כתובת ה-URL appspot.com יכולה להיות בפורמט הבא:
SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com.
אפשר לשנות את הגדרת ברירת המחדל הזו על ידי הגדרת הגדרה שונה לכניסה. כל נתיבי הכניסה, כולל כתובת ה-URL appspot.com שמוגדרת כברירת מחדל, כפופים להגדרת הכניסה. Ingress מוגדר ברמת השירות.
הגדרות זמינות של תעבורת נתונים נכנסת (ingress)
אלה ההגדרות שזמינות:
| הגדרה | תיאור |
|---|---|
| פנימי |
הכי מגביל. מאפשר בקשות ממשאבים שמצורפים לרשתות ה-VPC של הפרויקט, כמו:
appspot.com.
בקשות ממקורות אחרים, כולל האינטרנט, לא יכולות להגיע לשירות שלכם בכתובת ה-URL appspot.com או בדומיינים מותאמים אישית. אין תמיכה בשימוש בכמה דיירים, כלומר בכמה דומיינים מהימנים באותו פרויקט.
|
| איזון עומסים פנימי ו-Cloud Load Balancing | התרת בקשות מהמקורות הבאים:
appspot.com עוקפות את מאזן העומסים החיצוני של אפליקציות, ולכן ההגדרה הזו מונעת מבקשות חיצוניות להגיע לכתובת ה-URL appspot.com.
|
| הכול |
הכי פחות מגביל. מאפשרת את כל הבקשות, כולל בקשות ישירות מהאינטרנט לכתובת האתר appspot.com.
|
גישה לשירותים פנימיים
צריך להתחשב בשיקולים הבאים:
בבקשות מ-VPC משותף, התנועה נחשבת פנימית רק אם אפליקציית App Engine נפרסה בפרויקט המארח של ה-VPC המשותף. אם אפליקציית App Engine נפרסת בפרויקט שירות של VPC משותף, רק תנועה מרשתות שנמצאות בבעלות הפרויקט של האפליקציה היא פנימית. כל שאר התנועה, כולל תנועה מרשתות VPC משותפות אחרות, היא חיצונית.
כשניגשים לשירותים פנימיים, קוראים להם כרגיל באמצעות כתובות ה-URL הציבוריות שלהם, כתובת ה-URL שמוגדרת כברירת מחדל
appspot.comאו דומיין מותאם אישית שהוגדר ב-App Engine.אם הבקשות מגיעות ממכונות וירטואליות של Compute Engine או ממשאבים אחרים שפועלים בתוך רשת VPC באותו פרויקט, לא נדרשת הגדרה נוספת.
בקשות ממשאבים ברשתות VPC באותו פרויקט מסווגות כפנימיות, גם אם למשאב שממנו הן מגיעות יש כתובת IP ציבורית.
בקשות ממשאבים מקומיים שמחוברים לרשת ה-VPC דרך Cloud VPN נחשבות ל-
internal.
- לגבי בקשות משירותים אחרים של App Engine או מפונקציות Cloud Run באותו פרויקט, צריך לקשר את השירות או הפונקציה לרשת VPC ולנתב את כל התעבורה היוצאת (egress) דרך המחבר, כמו שמתואר במאמר קישור לרשת VPC משותפת.
הצגת הגדרות של תעבורת נתונים נכנסת (ingress)
המסוף
עוברים לדף App Engine Services (שירותי App Engine).
מאתרים את העמודה Ingress. לכל שירות, הערך בעמודה הזו מציג את הגדרת ה-Ingress כאחת מהאפשרויות הבאות: All (ברירת מחדל), Internal + Load Balancing או Internal.
gcloud
כדי להציג את הגדרת הכניסה לשירות באמצעות ה-CLI של gcloud:
gcloud app services describe SERVICE
מחליפים את SERVICE בשם השירות.
לדוגמה, כדי לראות את הגדרות ה-Ingress ומידע נוסף על הפעלת שירות ברירת המחדל:
gcloud app services describe default
עריכת הגדרות של תעבורת נתונים נכנסת (ingress)
המסוף
עוברים לדף App Engine Services (שירותי App Engine).
בוחרים את השירות שרוצים לערוך.
לוחצים על עריכת הגדרות הכניסה.
בוחרים את הגדרת הכניסה הרצויה מהתפריט ולוחצים על שמירה.
gcloud
כדי לעדכן את הגדרת הכניסה לשירות באמצעות ה-CLI של gcloud:
gcloud app services update SERVICE --ingress=INGRESS
מחליפים את:
- SERVICE: השם של השירות.
- INGRESS: שליטה בתעבורת נתונים נכנסת (ingress) שרוצים להחיל. אחד מהערכים
all,internal-onlyאוinternal-and-cloud-load-balancing.
לדוגמה:
כדי לעדכן את שירות ברירת המחדל של אפליקציית App Engine כך שיקבל תנועה רק מ-Cloud Load Balancing ומרשתות VPC שנמצאות באותו פרויקט:
gcloud app services update default --ingress=internal-and-cloud-load-balancing
כדי לעדכן שירות בשם internal-requests כך שיקבל תנועה רק מרשתות VPC שנמצאות באותו פרויקט:
gcloud app services update internal-requests --ingress=internal-only
הגדרות של תעבורת נתונים יוצאת (egress)
אם משתמשים ב-Serverless VPC Access, אפשר לציין את הגדרת היציאה לשירות App Engine.
כברירת מחדל, רק בקשות לכתובות IP פנימיות ולשמות DNS פנימיים מנותבות דרך מחבר של Serverless VPC Access. אפשר לציין את הגדרת תעבורת הנתונים היוצאת של השירות בקובץ app.yaml.
הגדרות תעבורת הנתונים היוצאת (egress) אינן תואמות לשירות אחזור של כתובות אתרים.
שימוש בספרייה urlfetch מתעלם מהגדרות היציאה, והבקשות לא ינותבו דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless.
כדי להגדיר את התנהגות היציאה של שירות App Engine:
מוסיפים את המאפיין
egress_settingלשדהvpc_access_connectorבקובץapp.yamlשל השירות:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
מחליפים את:
-
PROJECT_IDבמזהה הפרויקט ב- Google Cloud -
REGIONעם האזור שבו נמצא המחבר -
CONNECTOR_NAMEבשם המחבר -
EGRESS_SETTINGעם אחת מהאפשרויות הבאות:private-ranges-onlyברירת מחדל. רק בקשות לטווחים של כתובות IP מסוג RFC 1918 ו-RFC 6598 או לשמות DNS פנימיים מנותבות לרשת ה-VPC. כל הבקשות האחרות מנותבות ישירות לאינטרנט.all-trafficכל הבקשות היוצאות מהשירות מנותבות לרשת ה-VPC. הבקשות כפופות לכללי חומת האש, ה-DNS והניתוב של רשת ה-VPC. שימו לב: ניתוב כל הבקשות היוצאות לרשת ה-VPC מגדיל את כמות התעבורה היוצאת שמטופלת על ידי המחבר של חיבור לרשת (VPC) מאפליקציית serverless, ועלול לגרור חיובים.
-
פורסים את השירות:
gcloud app deploy