בדף הזה מוסבר איך להשתמש בהגדרות של תעבורת נתונים נכנסת כדי להגביל את הגישה של הרשת לשירותים ולמכונותשל Cloud Run.
ברמת הרשת, אפשר להגיע לנקודת הקצה שלאו של המכונה של שירות Cloud Run מנתיבי תעבורת הנתונים הנכנסת הבאים ברשת:
- כתובות URL שמוגדרות כברירת מחדל ב-
run.app, שאפשר להשבית - כל מיפוי דומיינים שהוגדר
- כל מאזן עומסים חיצוני או פנימי של אפליקציות (ALB) שהוגדר
כל נתיבי תעבורת הנתונים הנכנסת ברשת כפופים להגדרת תעבורת הנתונים הנכנסת של המשאב. נתיבי ברירת המחדל לתעבורת נתונים נכנסת והגדרת ברירת המחדל לתעבורת נתונים נכנסת מאפשרים לכל משאב באינטרנט להגיע למשאב שלכם ב-Cloud Run. אתם יכולים להשתמש באילוץ בהתאמה אישית כדי להגביל את הגדרות התעבורה הנכנסת בארגון או בקבוצה של פרויקטים. אימות IAM עדיין חל על בקשות שמגיעות לנקודות הקצה של השירות או של המכונה מכל אחד מנתיבי הכניסה לרשת שצוינו למעלה. כדי לנהל את הגישה בגישה שכבתית, צריך להשתמש גם בהגדרות של תעבורת הנתונים הנכנסת ברשת וגם באימות של IAM.
משתמשים בתגי רשת כדי להגביל את הגישה של ה-VM של המחבר למשאבי VPC.
הגדרות זמינות של תעבורת נתונים נכנסת ברשת
אלה ההגדרות הזמינות:
| הגדרה | תיאור |
|---|---|
| פנימי |
הכי מגביל. מאפשרת בקשות מהמקורות הבאים:
run.app.
בקשות ממקורות אחרים, כולל מהאינטרנט, לא יכולות להגיע לשירות או למכונה בכתובת ה-URL של run.app, בכתובת ה-URL המותאמת אישית או בדומיין המותאם אישית. |
| מאזני עומסים פנימיים ומאזני עומסים ב-Cloud | ההגדרה הזו מאפשרת בקשות מהמשאבים הבאים:
הערה: כדי להפעיל את ההגדרה הזו ב-CLI של gcloud, משתמשים ב- internal-and-cloud-load-balancing.
כדי להפעיל את ההגדרה הזו במסוף Google Cloud , בוחרים באפשרות Internal > Allow traffic from external Application Load Balancers.
|
| הכול |
הכי פחות מגביל. מאפשרת את כל הבקשות, כולל בקשות ישירות מהאינטרנט לכתובת ה-URL של run.app.
|
גישה לשירותים פנימיים
שיקולים נוספים:
כשניגשים לשירותים פנימיים, קוראים להם כרגיל באמצעות כתובת ה-URL שלהם, כתובת ה-URL שמוגדרת כברירת מחדל ב-
run.app, כתובת URL מותאמת אישית או דומיין מותאם אישית שמוגדר ב-Cloud Run.בבקשות ממכונות וירטואליות של Compute Engine, לא נדרשת הגדרה נוספת למכונות שיש להן כתובות IP חיצוניות או שמשתמשות ב-Cloud NAT. אחרת, עיינו במאמר קבלת בקשות מרשתות VPC.
כששולחים קריאה מ-Cloud Run או מ-App Engine לשירות Cloud Run שמוגדר כ-"Internal" או כ-"Internal and Cloud Load Balancers", תעבורת הנתונים צריכה לעבור דרך רשת VPC שנחשבת פנימית. למידע נוסף, קראו את המאמר קבלת בקשות משירותי Cloud Run אחרים או מ-App Engine.
בקשות ממשאבים ברשתות VPC באותו פרויקט הן "פנימיות", גם אם למשאב שממנו הן מגיעות יש כתובת IP חיצונית.
בקשות ממשאבים מקומיים שמחוברים לרשת ה-VPC באמצעות Cloud VPN ו-Cloud Interconnect הן "פנימיות".
הגדרת תעבורת נתונים נכנסת (ingress)
בקטעים הבאים מוסבר איך להגדיר תעבורת נתונים נכנסת לשירותים ולמכונותשל Cloud Run.
הגדרת תעבורת נתונים נכנסת לשירותי Cloud Run
אפשר להגדיר תעבורת נתונים נכנסת לשירות Cloud Run באמצעות מסוףGoogle Cloud , Google Cloud CLI, YAML או Terraform.
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
אם מגדירים שירות חדש, לוחצים על Deploy container כדי להציג את הטופס Create service. ממלאים את דף ההגדרות הראשוניות של השירות.
אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על הכרטיסייה Networking.
בוחרים את תעבורת הנתונים הנכנסת (ingress) שרוצים לאפשר.
כדי ליצור שירות חדש, לוחצים על יצירה. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים.
gcloud
אם אתם פורסים שירות חדש, צריך לפרוס אותו עם הדגל
--ingress:gcloud run deploy SERVICE \ --image IMAGE_URL \ --ingress INGRESS
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: שם השירות. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, המאגר REPO_NAME כבר צריך להיות קיים. הפורמט של כתובת ה-URL הואLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. -
INGRESS: אחת מהגדרות התעבורה הנכנסת הזמינות:allinternalinternal-and-cloud-load-balancing
-
אם אתם משנים את תעבורת הנתונים הנכנסת של שירות קיים:
gcloud run services update SERVICE \ --ingress INGRESS
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: שם השירות -
INGRESS: אחת מהגדרות התעבורה הנכנסת הזמינות:allinternalinternal-and-cloud-load-balancing
-
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את ההערה
run.googleapis.com/ingress::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/ingress: INGRESS spec: template: metadata: name: REVISION
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: השם של שירות Cloud Run. -
INGRESS: אחת מהגדרות התעבורה הנכנסת הזמינות:allinternalinternal-and-cloud-load-balancing
-
REVISION: שם גרסה חדש או מחיקה של השם (אם הוא קיים). אם אתם מספקים שם חדש לגרסה, הוא חייב לעמוד בקריטריונים הבאים:- מתחיל ב-
SERVICE- - מכיל רק אותיות קטנות, מספרים ו-
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
-
מחליפים את השירות בהגדרות החדשות שלו באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את הקוד הבא למשאבgoogle_cloud_run_v2_service בתצורה של Terraform:הגדרת תעבורת נתונים נכנסת (ingress) למכונות של Cloud Run
אפשר להגדיר תעבורת נתונים נכנסת למכונה של Cloud Run באמצעות Google Cloud CLI או YAML:
gcloud
אם אתם יוצרים מכונה חדשה, צריך לפרוס אותה עם הדגל
--ingress:gcloud beta run instances deploy INSTANCE \ --image IMAGE_URL \ --ingress INGRESS
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE: שם המכונה. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, למשלus-docker.pkg.dev/cloudrun/container/hello:latest. -
INGRESS: אחת מהגדרות התעבורה הנכנסת הזמינות:allinternalinternal-and-cloud-load-balancing
-
אם משנים את ה-ingress של מכונה קיימת:
gcloud beta run instances update INSTANCE \ --ingress INGRESS
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE: שם המכונה. -
INGRESS: אחת מהגדרות התעבורה הנכנסת הזמינות:allinternalinternal-and-cloud-load-balancing
-
YAML
אם אתם יוצרים מכונה חדשה, דלגו על השלב הזה. אם מעדכנים מכונה קיימת, מורידים את הגדרת ה-YAML שלה:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
מעדכנים את ההערה
run.googleapis.com/ingress::apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/ingress: INGRESS run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE: השם של המכונה ב-Cloud Run. -
INGRESS: אחת מהגדרות התעבורה הנכנסת הזמינות:allinternalinternal-and-cloud-load-balancing
-
CONTAINER_NAME: שם הקונטיינר. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, למשלus-docker.pkg.dev/cloudrun/container/hello:latest.
-
יוצרים או מעדכנים את המכונה באמצעות הפקודה הבאה:
gcloud beta run instances replace instance.yaml
השבתת כתובת ה-URL שמוגדרת כברירת מחדל
לפני שמשביתים את כתובת ה-URL שמוגדרת כברירת מחדל, חשוב לדעת שGoogle Cloud השירותים או המכונה הבאים משתמשים בכתובת ה-URL שמוגדרת כברירת מחדל של run.app כדי להפעיל את Cloud Run. אם משביתים את כתובת ה-URL שמוגדרת כברירת מחדל ב-run.app, השירותים האלה או המכונה לא יפעלו כמו שצריך:
- כתובת ה-URL של
cloudfunctions.netב-Cloud Functions v2 API, שמבוססת על שירות Cloud Run. - Cloud Scheduler
- Cloud Service Mesh
- Cloud Tasks
- Dialogflow CX
- Eventarc
- Firebase App Hosting
- אירוח ב-Firebase
- Pub/Sub
- מעקב סינתטי ובדיקות זמני פעילות
- תהליכי עבודה
כדי להשתמש במיפויים של דומיינים מותאמים אישית, צריך למפות את הדומיין המותאם אישית לפני שמשביתים את כתובת ה-URL של run.app.
בקטעים הבאים מוסבר איך להשבית את כתובת ה-URL שמוגדרת כברירת מחדל לשירותים ולמכונותשל Cloud Run.
השבתת כתובת ה-URL שמוגדרת כברירת מחדל לשירותי Cloud Run
משביתים את run.appכתובת ה-URL שמוגדרת כברירת מחדל של שירות או מכונה ב-Cloud Run, כדי לאפשר תנועה רק מנתיבי כניסה אחרים של השירות: Cloud Load Balancing וכל מיפוי דומיינים שהוגדר.
כדי להשבית את כתובת ה-URL שמוגדרת כברירת מחדל, מבצעים את השלבים הבאים באמצעות מסוף Google Cloud , Google Cloud CLI, YAML או Terraform.
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על שירות קיים.
לוחצים על הכרטיסייה Networking.
בכרטיס נקודות קצה, מבטלים את הסימון של הפעלה בקטע כתובת ה-URL של נקודת הקצה המוגדרת כברירת מחדל ל-HTTPS.
לוחצים על View diff & redeploy ואז על Deploy changes.
כדי לשחזר את כתובת ה-URL שמוגדרת כברירת מחדל, לוחצים על הפעלה.
gcloud
בשירות קיים, מריצים את הפקודה
gcloud run services updateעם הדגל--no-default-url, לדוגמה:gcloud run services update SERVICE_NAME --no-default-url
בשירות חדש, מריצים את הפקודה
gcloud run deployעם הדגל--no-default-url, לדוגמה:gcloud run deploy SERVICE_NAME --no-default-url
מחליפים את
SERVICE_NAMEבשם של שירות Cloud Run.בפלט, כתובת ה-URL מוצגת בתור
None.
כדי לשחזר את כתובת ה-URL שמוגדרת כברירת מחדל, משתמשים בדגל --default-url.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
כדי להשבית את כתובת ה-URL של
run.app, משתמשים בהערהrun.googleapis.com/default-url-disabled:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/default-url-disabled: true name: SERVICE spec: template: metadata: name: REVISION
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: השם של שירות Cloud Run. -
REVISION: שם גרסה חדש או מחיקה של השם (אם הוא קיים). אם אתם מספקים שם חדש לגרסה, הוא חייב לעמוד בקריטריונים הבאים:- מתחיל ב-
SERVICE- - מכיל רק אותיות קטנות, מספרים ו-
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
-
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
כברירת מחדל, הפקודה
gcloud run services replaceמשתמשת בקובץservice.yamlאם הוא קיים.
כדי לשחזר את כתובת ה-URL שמוגדרת כברירת מחדל, מסירים את ההערה run.googleapis.com/default-url-disabled.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את הקוד הבא למשאבgoogle_cloud_run_v2_service בתצורה של Terraform: resource "google_cloud_run_v2_service" "disable_default_url_service" {
name = "cloudrun-service"
location = "europe-west1"
default_uri_disabled = true
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
annotations = {
"run.googleapis.com/ingress" = "all" # "all" or "internal-only"
}
}
}
מוודאים שהשורות launch_stage ו-default_uri_disabled נמצאות בקובץ main.tf. המשאב google_cloud_run_v2_service שלמעלה מציין שירות Cloud Run שבו כתובת ה-URL שמוגדרת כברירת מחדל מושבתת בגרסת טרום-השקה (Preview).
כדי לשחזר את כתובת ה-URL שמוגדרת כברירת מחדל, מסירים את הארגומנטים default_uri_disabled ו-launch_stage.
השבתת כתובת ה-URL שמוגדרת כברירת מחדל למכונות של Cloud Run
משביתים את כתובת ה-URL שמוגדרת כברירת מחדל ב-run.app של מכונת Cloud Run, כדי לאפשר תנועה רק מנתיבי הכניסה האחרים של המכונה: Cloud Load Balancing וכל מיפוי דומיין שהוגדר.
gcloud
במכונה קיימת, מריצים את הפקודה
gcloud beta run instances updateעם הדגל--no-default-url, לדוגמה:gcloud beta run instances update INSTANCE --no-default-url
במכונה חדשה, מריצים את הפקודה
gcloud beta run instances deployעם הדגל--no-default-url, לדוגמה:gcloud beta run instances deploy INSTANCE \ --image IMAGE_URL \ --no-default-url
מחליפים את
INSTANCEבשם של המכונה ב-Cloud Run.בפלט, כתובת ה-URL מוצגת בתור
None.
כדי לשחזר את כתובת ה-URL שמוגדרת כברירת מחדל, משתמשים בדגל --default-url.
YAML
אם אתם יוצרים מכונה חדשה, דלגו על השלב הזה. אם מעדכנים מכונה קיימת, מורידים את הגדרת ה-YAML שלה:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
כדי להשבית את כתובת ה-URL שמוגדרת כברירת מחדל, מגדירים את ההערה
run.googleapis.com/default-url-disabledלערך'true':apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/default-url-disabled: 'true' run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE: השם של המכונה ב-Cloud Run. -
CONTAINER_NAME: שם הקונטיינר. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, למשלus-docker.pkg.dev/cloudrun/container/hello:latest.
-
יוצרים או מעדכנים את המכונה באמצעות הפקודה הבאה:
gcloud beta run instances replace instance.yaml
כדי לשחזר את כתובת ה-URL שמוגדרת כברירת מחדל, מגדירים את ההערה run.googleapis.com/default-url-disabled לערך false או מסירים אותה.
המאמרים הבאים
- מידע ולמידה על הגדרות תעבורת נתונים יוצאת
- מגדירים מאזן עומסים פנימי של אפליקציות (ALB) ל-Cloud Run.
- מגדירים מאזן עומסים חיצוני של אפליקציות (ALB) עם Cloud Run.
- מגדירים שיטות אימות ב-IAM כדי לגשת לשירותים או למכונות.