קישוריות לשירותים שמתארחים בסביבה ללא שרת
בדף הזה מוסבר איך אפשר להגדיר את Integration Connectors כדי להתחבר לשירותים שמתארחים בסביבות ללא שרתים, כמו Cloud Run ב-Google Cloud.
בתמונה הבאה מוצגת הגדרת קישוריות לרשת פרטית מ-Integration Connectors לשירות שמתארח בסביבת Cloud Run ב-Google Cloud:
בדף הזה אנחנו מניחים שאתם מכירים את המושגים הבאים:
- קבצים מצורפים של נקודות קצה
- אזורים מנוהלים
- Private Service Connect (PSC)
- מאזן עומסים של Google Cloud
לתשומת ליבכם
כשיוצרים קובץ מצורף לשירות PSC, חשוב לשים לב לנקודות העיקריות הבאות:
- החיבור לשירות PSC ומאזן העומסים נוצרים בתתי-רשתות שונות באותו VPC. ובאופן ספציפי, קובץ ה-Service Attachment תמיד נוצר בתת-רשת NAT.
- התנועה ממאזן העומסים ומבקשה לבדיקת תקינות צריכה להישלח לאותה יציאה.
- מגדירים את כללי חומת האש כדי לאפשר את זרימת התנועה.
כללי תעבורה נכנסת
תעבורת נתונים מרשת המשנה של צירוף שירות ה-PSC צריכה להגיע לשירות לקצה העורפי.
כללים לתעבורת נתונים יוצאת (egress)
תעבורת נתונים יוצאת (egress) מופעלת כברירת מחדל בפרויקט בענן של Google, אלא אם מוגדרים כללי דחייה ספציפיים.
- כל הרכיבים של Google Cloud, כמו קובץ ה-PSC המצורף ומאזן העומסים, צריכים להיות באותו אזור.
יצירת קובץ מצורף של שירות PSC
כדי ליצור קישוריות פרטית מ-Integration Connectors, צריך לחשוף את השירות ל-Integration Connectors באמצעות קובץ מצורף של שירות PSC. קובץ מצורף לשירות תמיד משתמש במאזן עומסים. לכן, אם השירות שלכם לא נמצא מאחורי מאזן עומסים, צריך להגדיר מאזן עומסים.
- יוצרים מאזן עומסים. אם כבר יש לכם מאזן עומסים, אפשר לדלג על השלב הזה.
כדי ליצור מאזן עומסים של אפליקציות באמצעות NEG ללא שרת כקצה עורפי, פועלים לפי ההוראות במאמר הגדרת מאזן עומסים פנימי אזורי של אפליקציות באמצעות Cloud Run.
- יוצרים את קובץ השירות המצורף.
- יוצרים רשת משנה ל-NAT של PSC. הפקודה הבאה יוצרת רשת משנה בשם
psc-nat-subnet1והייעוד שלה הואPRIVATE_SERVICE_CONNECT.gcloud compute networks subnets create psc-nat-subnet1 \ --network=VPC_NETWORK --range=SUBNET_RANGE_1 \ --purpose=PRIVATE_SERVICE_CONNECT - יוצרים כלל חומת אש שמאפשר תעבורת נתונים מ-PSC NAT למאזן העומסים.
gcloud compute network-firewall-policies rules create PRIORITY --firewall-policy FIREWALL_POLICY_NAME_SA \ --direction=INGRESS --network=VPC_NETWORK \ --action=allow --allow=tcp:BACKEND_SERVER_PORT --src-ip-ranges=SUBNET_RANGE_1
- יצירת קובץ מצורף לשירות עם אישור מפורש.
gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME --producer-forwarding-rule=FORWARDING_RULE_NAME --connection-preference=ACCEPT_MANUAL --consumer-accept-list=SERVICE_DIRECTORY_PROJECT_ID=LIMIT --nat-subnets=psc-nat-subnet1
בפקודה הזו, LIMIT היא מגבלת החיבורים לפרויקט. מגבלת החיבור היא מספר נקודות הקצה (endpoints) של צרכן PSC שיכולות להתחבר לשירות הזה. כדי לקבל את SERVICE_DIRECTORY_PROJECT_ID, מבצעים את השלב הבא:
-
אפשר ליצור את קובץ השירות של PSC כך שהוא יקבל בקשות רק מהפרויקטים שצוינו ב-Google Cloud. עם זאת, כדי לעשות את זה, צריך את מזהה הפרויקט של ספריית השירותים שמשויכת לפרויקט בענן של Google. כדי לקבל את מזהה הפרויקט של ספריית השירותים, אפשר להשתמש ב-List Connections API כמו בדוגמה הבאה.
תחביר
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"
מחליפים את מה שכתוב בשדות הבאים:
- CONNECTORS_PROJECT_ID: המזהה של הפרויקט בענן של Google שבו יצרתם את החיבור.
דוגמה
בדוגמה הזו מקבלים את מזהה הפרויקט של ספריית השירותים עבור פרויקט בענן של Google Cloud
connectors-test.curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"
הרצת הפקודה הזו במסוף מציגה פלט דומה לזה:
..... { "connections": [ { "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa", "createTime": "2022-10-07T09:02:31.905048520Z", "updateTime": "2022-10-07T09:22:39.993778690Z", "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1", "status": { "state": "ACTIVE" }, "configVariables": [ { "key": "project_id", "stringValue": "connectors-test" }, { "key": "dataset_id", "stringValue": "testDataset" } ], "authConfig": {}, "serviceAccount": "564332356444-compute@developer.gserviceaccount.com", "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime", "nodeConfig": { "minNodeCount": 2, "maxNodeCount": 50 } }, ....בפלט לדוגמה, מזהה הפרויקט של ספריית השירותים בפרויקט Google Cloud
connectors-testהואabcdefghijk-tp.
-
- יוצרים רשת משנה ל-NAT של PSC. הפקודה הבאה יוצרת רשת משנה בשם
יצירת צירוף של נקודת קצה כדי להשתמש בצירוף השירות של PSC
צירוף נקודת קצה ככתובת IPהוראות ליצירת קובץ מצורף לנקודת קצה ככתובת IP זמינות במאמר יצירת קובץ מצורף לנקודת קצה ככתובת IP.
צירוף נקודת קצה כשם מארחבמקרים מסוימים, כמו קצה עורפי עם TLS מופעל, היעד מחייב שימוש בשמות מארחים במקום בכתובות IP פרטיות כדי לבצע אימות TLS. במקרים שבהם נעשה שימוש ב-DNS פרטי במקום בכתובת IP ליעד המארח, בנוסף ליצירת צירוף של נקודת קצה ככתובת IP, צריך גם להגדיר אזורים מנוהלים. הוראות ליצירת קובץ מצורף לנקודת קצה כשם מארח זמינות במאמר יצירת קובץ מצורף לנקודת קצה כשם מארח.
בהמשך, כשמגדירים את החיבור לשימוש בחיבור נקודת הקצה, אפשר לבחור את חיבור נקודת הקצה הזה.
הגדרת חיבור לשימוש בקובץ המצורף של נקודת הקצה
אחרי שיוצרים את נקודת הקצה המצורפת, משתמשים בה בחיבור. כשיוצרים חיבור חדש או מעדכנים חיבור קיים, בקטע 'יעדים', בוחרים באפשרות צירוף נקודת קצה בתור סוג היעד ובוחרים את צירוף נקודת הקצה שיצרתם מתוך הרשימה צירוף נקודת קצה.
אם יצרתם אזור מנוהל, בוחרים באפשרות כתובת המארח בתור סוג היעד ומשתמשים ברשומת A שיצרתם כשיצרתם את האזור המנוהל.
טיפים לפתרון בעיות
כדי להימנע מבעיות נפוצות, חשוב לפעול לפי ההנחיות שמפורטות בקטע הזה:
- כדי לוודא שהחיבור של נקודת הקצה מוגדר בצורה נכונה ושהחיבור ל-PSC נוצר, בודקים את סטטוס החיבור. מידע נוסף זמין במאמר אימות החיבור של קובץ מצורף לנקודת קצה.
- מידע על פתרון בעיות שקשורות למאזן עומסים זמין במאמר פתרון בעיות שקשורות למאזני עומסים פנימיים של אפליקציות.
- אפשר להשתמש בבדיקת הקישוריות של Google Cloud כדי לזהות פערים בתצורת הרשת. מידע נוסף זמין במאמר בנושא יצירה והרצה של בדיקות קישוריות.