בסביבה הגמישה של 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הוא מזהה הפרויקט של הפרויקט המארח של ה-VPC המשותף. Google Cloud
הגדרת הרשאות
אדמין של 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הוא מזהה הפרויקט של הפרויקט המארח של ה-VPC המשותף. Google Cloud -
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 המשותפת.