בסביבה הגמישה של App Engine, אפשר לציין רשת לפריסת המופעים של השירות. בדף הזה מוסבר איך להגדיר את הפרויקט כך שישתמש בסביבה הגמישה של App Engine ברשת VPC משותפת.
מידע נוסף על הגדרת רשת VPC משותפת זמין במאמר בנושא הקצאת VPC משותף.
הגדרה של סביבה גמישה ב-App Engine עם VPC משותף
פריסת מופעים של סביבה גמישה של App Engine ברשת VPC משותפת כוללת שלושה שלבים:
יצירת כלל חומת אש שמאפשר תעבורת נתונים של סביבה גמישה של App Engine ברשת ה-VPC המשותפת
מתן הרשאות מתאימות לחשבונות שירות בפרויקט השירות של ה-VPC המשותף
אם משתמשים ב-Google Cloud CLI, צריך לעדכן לגרסה האחרונה לפני שממשיכים במדריך הזה. כדי לעשות זאת, מריצים את הפקודה:
gcloud components update
מתן הרשאה לתעבורה לרשת ה-VPC המשותפת
אדמין של VPC משותף צריך ליצור כלל של חומת אש בפרויקט המארח של ה-VPC המשותף כדי לאפשר תעבורת נתונים לסביבה הגמישה של App Engine ברשת ה-VPC המשותפת. כלל חומת האש מאפשר תעבורת נתונים של בדיקות תקינות והצגת תוכן למופעים של הסביבה הגמישה.
לכלל חומת האש צריכים להיות המאפיינים הבאים:
- רשת: השם של רשת ה-VPC המשותפת
- כיוון התנועה: כניסה
- פעולה בהתאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
aef-instance - מסנן מקור: טווחי כתובות IP
- טווחים של כתובות IP של המקור:
35.191.0.0/16,130.211.0.0/22 - פרוטוקולים ויציאות: פרוטוקולים ויציאות שצוינו
- tcp: 8443, 10402
אדמין של VPC משותף יכול ליצור את כלל חומת האש באמצעות מסוף Google Cloud או Google Cloud CLI:
המסוף
כדי ליצור את הכלל בחומת האש באמצעות מסוף Google Cloud :
עוברים לדף ליצירת כלל לחומת האש.
בשדות שם ותיאור, מציינים שם ותיאור לכלל חומת האש.
ממלאים את המאפיינים הנדרשים שצוינו למעלה.
לוחצים על יצירה.
gcloud
כדי ליצור את כלל חומת האש באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:
gcloud compute firewall-rules create NETWORK_NAME-flex-firewall \ --project HOST_PROJECT_ID \ --network NETWORK_NAME \ --allow tcp:10402,tcp:8443 \ --target-tags aef-instance \ --source-ranges 35.191.0.0/16,130.211.0.0/22 \ --description 'Allows traffic to App Engine flexible environment'
where:
-
NETWORK_NAMEהוא השם של רשת ה-VPC המשותפת. -
HOST_PROJECT_IDהוא Google Cloud מזהה הפרויקט של הפרויקט המארח של ה-VPC המשותף.
הגדרת הרשאות
אדמין של VPC משותף צריך להעניק לשני חשבונות השירות הבאים את התפקיד Compute Network User כדי לאפשר לפרויקט שירות לפרוס מופעים בסביבה הגמישה של App Engine ברשת:
- סוכן שירות של Google APIs
(
PROJECT_NUM@cloudservices.gserviceaccount.com) - סוכן שירות של הסביבה הגמישה של App Engine
(
service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com)
המסוף
כדי להגדיר הרשאות באמצעות מסוף Google Cloud :
עוברים לדף ההגדרות של IAM עבור פרויקט השירות ורושמים את מספר הפרויקט.
עוברים לדף IAM של פרויקט המארח.
לוחצים על הוספה.
בשדה New members, מזינים את כתובות האימייל הבאות, מופרדות בפסיקים. מחליפים את
PROJECT_NUMבמספר הפרויקט שהתקבל בשלב 1.PROJECT_NUM@cloudservices.gserviceaccount.comservice-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
בתפריט הנפתח Select a role, בוחרים באפשרות Compute Engine > Compute Network User.
לוחצים על Save.
gcloud
מקבלים את מספר הפרויקט של פרויקט השירות שבו אפליקציית App Engine נפרסת. מריצים את הפקודה הבאה ומחליפים את
SERVICE_PROJECT_IDבמזהה הפרויקט של פרויקט השירות:export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
מקצים לסוכן השירות של Google APIs בפרויקט השירות את התפקיד
compute.networkUserבפרויקט המארח:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \ --role=roles/compute.networkUser
כאשר
HOST_PROJECT_IDהואGoogle Cloud מזהה הפרויקט של הפרויקט המארח של ה-VPC המשותף.נותנים לסוכן השירות של סביבת App Engine גמישה בפרויקט השירות את התפקיד
compute.networkUserבפרויקט המארח:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-$SERVICE_PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com \ --role=roles/compute.networkUser
הגדרה ופריסה של השירות
אחרי שמגדירים את כלל חומת האש ואת ההרשאות המתאימות, אפשר לפרוס שירות חדש או שירות קיים של סביבה גמישה של App Engine ברשת ה-VPC המשותפת.
בקובץ
app.yaml, משתמשים בשדהnameהגדרות רשת כדי לציין את השם המלא של רשת ה-VPC המשותפת:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
איפה
-
HOST_PROJECT_IDהוא Google Cloud מזהה הפרויקט של הפרויקט המארח של ה-VPC המשותף. -
NETWORK_NAMEהוא השם של רשת ה-VPC המשותפת.
כדי להגדיר את השירות כחלק מרשת משנה בשם
SUBNETWORK_NAME, צריך להגדיר גם את השדהsubnetwork_name:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME subnetwork_name: SUBNETWORK_NAME
-
פורסים את השירות:
gcloud app deploy
אימות ההגדרה
כדי לוודא שהשירות של סביבת App Engine הגמישה פועל ברשת ה-VPC המשותפת, אפשר להציג את הגדרת הגרסה בדף הגרסאות של App Engine במסוףGoogle Cloud :
עוברים לדף Versions (גרסאות) של App Engine.
בטור Config (הגדרה) בצד שמאל, לוחצים על View (תצוגה) ליד הגרסה הרצויה.
מוודאים שהשם של הרשת בהגדרה הוא השם של רשת ה-VPC המשותפת.