במאמר הזה מוסבר איך להגדיר את Private Service Connect לחיבורים לרשת הפרטית של מכונות Cloud SQL.
אחרי שמגדירים את Private Service Connect ואת נקודות הקצה שלו, אתם והלקוחות של האפליקציה יכולים להתחבר למכונה הראשית של Cloud SQL או לכל אחת מרפליקות הקריאה שלה מכמה רשתות של ענן וירטואלי פרטי (VPC) ששייכות לקבוצות, לצוותים, לפרויקטים או לארגונים שונים. אתם יכולים גם להגדיר שמות DNS גלובליים או לכל מכונה בנפרד, לחיבורי לקוח שמבוססים על שמות DNS. זה שימושי במקרים של יתירות כשל ותוכנית התאוששות מאסון (DR).
לפני שמתחילים
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Service Networking, Network Connectivity, Cloud DNS APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Make sure that you have the following role or roles on the project: Compute Network Admin, Cloud SQL Admin, Cloud DNS Admin, Cloud SQL Instance User
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
- Click Grant access.
-
In the New principals field, enter your user identifier. This is typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies, or contact your administrator.
- Click Select a role, then search for the role.
- To grant additional roles, click Add another role and add each additional role.
- Click Save.
-
-
Install the gcloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
התפקידים הנדרשים ל-Private Service Connect
בטבלה הבאה מפורטים התפקידים שנדרשים כדי להגדיר Private Service Connect ולהתחבר אליו באמצעות מכונה של Cloud SQL.
| תפקיד | תיאור |
|---|---|
compute.networkAdmin |
נותן שליטה מלאה על רשת ה-VPC שיוזמת חיבור למכונה של Cloud SQL. אתם יכולים ליצור ולנהל כתובות IP, כללי חומת אש, כללי מדיניות של חיבור לשירות ונקודות קצה (endpoints) של Private Service Connect. אם אתם משתמשים ב-Private Service Connect כדי להתחבר למכונה של Cloud SQL מכמה רשתות VPC, לכל רשת יש אדמין משלה. |
dns.admin |
מעניק שליטה מלאה על המשאבים של Cloud DNS, כולל תחומי DNS ורשומות. |
cloudsql.admin |
התפקיד הזה נותן שליטה מלאה על מכונה של Cloud SQL, ומאפשר לשלוט במכונה לאורך מחזור החיים שלה. |
cloudsql.instanceUser |
נותן גישה למכונה של Cloud SQL. אם מתחברים דרך לקוח Cloud SQL Auth Proxy, צריך להיות לכם תפקיד לקוח Cloud SQL. אם אתם מתחברים ישירות, אתם לא צריכים תפקידים והרשאות של ניהול זהויות והרשאות גישה (IAM). |
כדי להגדיר מדיניות של חיבורי שירות באופן אוטומטי כשיוצרים מכונה של Cloud SQL, צריך תפקידים נוספים ואת היכולת להקצות את התפקידים לסוכן השירות של Cloud SQL. מידע נוסף מופיע במאמר יצירת מדיניות חיבור לשירות.
יצירת נקודת קצה מסוג Private Service Connect
נקודות הקצה של Private Service Connect הן כתובות IP פנימיות ברשת VPC של הצרכן, שלקוחות ברשת הזו יכולים לגשת אליהן ישירות. הלקוחות יכולים להשתמש בנקודות הקצה האלה כדי להתחבר למכונות של Cloud SQL.
אתם יכולים להגדיר ש-Cloud SQL ייצור באופן אוטומטי נקודת קצה של Private Service Connect ב-VPC, או ליצור את נקודת הקצה באופן ידני.
יצירת נקודת הקצה באופן אוטומטי
כדי ש-Cloud SQL ייצור באופן אוטומטי את נקודת הקצה של Private Service Connect:
יוצרים מדיניות חיבור לשירות ברשת ה-VPC. המדיניות הזו מאפשרת להקצות נקודות קצה של Private Service Connect באופן אוטומטי.
יוצרים מכונה של Cloud SQL עם Private Service Connect שמופעל במכונה, ומגדירים את המכונה כך שתיצור נקודות קצה של Private Service Connect באופן אוטומטי.
אחזור נקודת הקצה של המכונה. כך תוכלו להשתמש בנקודת הקצה כדי להתחבר למכונה.
יצירת מדיניות של חיבור לשירות
אפשר ליצור מדיניות חיבור לשירות באמצעות מסוף Google Cloud , ה-CLI של gcloud או ה-API.
המסוף
נכנסים לדף Private Service Connect במסוף Google Cloud .
לוחצים על הכרטיסייה Connection Policies (מדיניות חיבורים).
לוחצים על Create connection policy.
מזינים שם למדיניות החיבור.
מציינים את מחלקת השירות:
- בשדה Source service class, בוחרים באפשרות Google services.
- בתפריט Service class, בוחרים באפשרות
google-cloud-sqlכי Cloud SQL הוא השירות המנוהל של מדיניות החיבור.
בקטע Target endpoints scope, בוחרים את ה-Network ואת ה-Region שעליהם חלה המדיניות.
אופציונלי: אם המדיניות של החיבור לשירות והמכונה של Cloud SQL נמצאות בפרויקטים, בתיקיות או בארגונים שונים, מגדירים את היקף המכונה של השירות בהתאמה אישית:
- מעבירים את המתג Custom service instance scope למצב מופעל.
- בשדה Scopes, מזינים את המזהים של הפרויקטים, התיקיות או הארגונים שבהם נמצא המכונה.
בקטע Policy, בוחרים רשת משנה אחת או יותר מהתפריט Subnetworks. רשתות המשנה משמשות להקצאת כתובות IP לנקודות קצה.
אופציונלי: מציינים מגבלת חיבורים למדיניות. המגבלה קובעת כמה נקודות קצה אפשר ליצור באמצעות מדיניות החיבור הזו. אם לא מציינים מגבלת חיבורים, אין מגבלה.
לוחצים על יצירת מדיניות.
gcloud
כדי ליצור מדיניות חיבור לשירות, משתמשים בפקודה service-connection-policies create.
gcloud network-connectivity service-connection-policies create POLICY_NAME \
--network=NETWORK \
--project=PROJECT_ID \
--region=REGION \
--service-class=SERVICE_CLASS \
--subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
--psc-connection-limit=LIMIT \
--description="DESCRIPTION" \
--producer-instance-location=PRODUCER_INSTANCE_LOCATION \
--allowed-google-producers-resource-hierarchy-level=RESOURCE_HIERARCHY_LEVEL
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות החיבור לשירות. -
NETWORK: הרשת שהמדיניות הזו חלה עליה. -
PROJECT_ID: מזהה הפרויקט או מספר הפרויקט של רשת ה-VPC. ברשתות VPC משותפות, צריך לפרוס את כללי המדיניות של החיבור לשירות בפרויקט המארח, כי כללי המדיניות האלה לא נתמכים בפרויקטים של שירות. -
REGION: האזור שהמדיניות הזו חלה עליו. אותה מדיניות צריכה להיות קיימת בכל אזור שבו רוצים להפוך את קישוריות השירות לאוטומטית. -
SERVICE_CLASS: מזהה המשאב של מחלקת השירות, שסופק על ידי היצרן. ב-Cloud SQL, מחלקת השירות היאgoogle-cloud-sql. -
SUBNETS: רשת משנה אחת או יותר של צרכן רגיל, שמשמשת להקצאת כתובות IP לנקודות קצה של Private Service Connect. כתובות ה-IP האלה מוקצות באופן אוטומטי ומוחזרות למאגר של תת-הרשת, בזמן שנוצרים ונמחקים מכונות של שירותים מנוהלים. רשתות המשנה צריכות להיות באותו אזור שבו נמצאת מדיניות החיבור לשירות. אם לכמה כללי מדיניות קישוריות יש את אותו אזור, אתם יכולים להשתמש באותה רשת משנה בכללי המדיניות האלה. אפשר להזין כמה רשתות משנה ברשימה מופרדת בפסיקים. -
LIMIT: המספר המקסימלי של נקודות קצה שאפשר ליצור באמצעות המדיניות הזו. אם לא מציינים מגבלה, אין מגבלה. -
DESCRIPTION: תיאור אופציונלי של מדיניות החיבור לשירות.
PRODUCER_INSTANCE_LOCATION: מציינים אם לאשר היררכיה מותאמת אישית של מיקומים למכונה של Cloud SQL. אם המכונה נמצאת בפרויקט, בתיקייה או בארגון שונים מהמדיניות, צריך להגדיר את הערך הזה ל-custom-resource-hierarchy-levels.
RESOURCE_HIERARCHY_LEVEL: רשימה של פרויקטים, תיקיות או ארגונים שבהם נמצא המכונה. הרשימה הזו מופיעה באחת מהצורות הבאות:projects/PROJECT_IDfolders/FOLDER_IDorganizations/ORGANIZATION_ID.
לדוגמה, הפקודה הבאה יוצרת מדיניות חיבור לשירות עבור מחלקת השירות
google-cloud-sql, שמקצה כתובות IP מרשת המשנה managed-services. באמצעות המדיניות הזו אפשר ליצור עד 10 נקודות קצה של Private Service Connect. צריך ליצור את נקודות הקצה בפרויקטים שנמצאים באותו ארגון שבו נמצא המכונה של השירות המנוהל. המכונה של Cloud SQL נמצאת בפרויקט myproject.
gcloud network-connectivity service-connection-policies create cloud-sql-policy \
--network=default \
--project=my-project \
--region=us-central1 \
--service-class=google-cloud-sql \
--subnets=managed-service-subnet \
--psc-connection-limit=10 \
--producer-instance-location=custom-resource-hierarchy-levels \
--allowed-google-producers-resource-hierarchy-level=projects/myproject
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור של המדיניות לחיבור לשירות. -
POLICY_NAME: השם של מדיניות החיבור לשירות. -
DESCRIPTION: תיאור אופציונלי של המדיניות לחיבור לשירות. -
NETWORK: הרשת של מדיניות החיבור לשירות. -
LIMIT: המספר המקסימלי של נקודות קצה שאפשר ליצור באמצעות המדיניות הזו. אם לא מציינים מגבלה, אין מגבלה. -
SUBNETS: רשת משנה רגילה אחת או יותר של הצרכן, שמשמשת להקצאת כתובות IP לנקודות קצה של Private Service Connect. כתובות ה-IP האלה מוקצות באופן אוטומטי ומוחזרות למאגר של תת-הרשת כשמופעים של שירותים מנוהלים נוצרים ונמחקים. רשתות המשנה צריכות להיות באותו אזור שבו נמצאת מדיניות החיבור לשירות. אם לכמה כללי מדיניות של חיבורים יש את אותו אזור, אפשר להשתמש באותה רשת משנה בכללי המדיניות האלה. אפשר להזין כמה רשתות משנה ברשימה מופרדת בפסיקים. -
SERVICE_CLASS: מזהה המשאב של מחלקת השירות, שסופק על ידי היצרן.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME
תוכן בקשת JSON:
{
"description": "DESCRIPTION",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"pscConfig": {
"limit": "LIMIT",
"subnetworks": [
"projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
]
},
"serviceClass": "SERVICE_CLASS"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
"createTime": "2023-08-15T16:59:29.236110917Z",
"target": "projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
יצירה אוטומטית של מדיניות חיבור לשירות
אפשר ליצור מדיניות חיבור לשירות באופן אוטומטי כשיוצרים את המכונה של Cloud SQL, אבל האפשרות הזו דורשת הרשאות אדמין נוספות.
המסוף
אם אתם משתמשים במסוף Google Cloud , צרו את מכונת Cloud SQL כשהאפשרות Private Service Connect מופעלת. במסוף Google Cloud נבדקים התפקידים הנדרשים והם מוגדרים באופן אוטומטי. אם Network Connectivity API עדיין לא מופעל בפרויקט, יכול להיות שתצטרכו להפעיל אותו.
gcloud או REST
אם אתם משתמשים ב-ה-CLI של gcloud או ב-Cloud SQL Admin API, אתם צריכים להקצות תפקידים נוספים לסוכן השירות של Cloud SQL לפני שאתם יוצרים את המכונה.
אם בפרויקט שמארח את המכונה של Cloud SQL עדיין לא קיים סוכן שירות של Cloud SQL שספציפי לפרויקט, צריך ליצור אחד.
כדי ליצור את סוכן השירות, מריצים את הפקודה הבאה:
gcloud beta services identity create \ --service=sqladmin.googleapis.com \ --project=INSTANCE_PROJECT
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_PROJECT: הפרויקט שבו מתכננים ליצור את המכונה של Cloud SQL.
הפקודה יוצרת סוכן שירות בפורמט
service-INSTANCE_PROJECT_NUMBER@gcp-sa-cloudsql..-
נותנים לסוכן השירות של Cloud SQL את הרשאות ה-IAM הנדרשות, על ידי הקצאת התפקידים הבאים לסוכן השירות:
- אדמין של רשת צרכנים לאוטומציה של שירותים (
roles/networkconnectivity.consumerNetworkAdmin) - צפייה ברשת Compute (
roles/compute.networkViewer)
כדי להוסיף את התפקידים לסוכן השירות של Cloud SQL, מריצים את הפקודות הבאות:
gcloud projects add-iam-policy-binding CONSUMER_PROJECT \ --member='serviceAccount:CLOUD_SQL_SERVICE_AGENT' \ --role='roles/networkconnectivity.consumerNetworkAdmin' gcloud projects add-iam-policy-binding CONSUMER_PROJECT \ --member='serviceAccount:CLOUD_SQL_SERVICE_AGENT' \ --role='roles/compute.networkViewer'
מחליפים את מה שכתוב בשדות הבאים:
-
CONSUMER_PROJECT: הפרויקט שבו תיווצר נקודת הקצה של Private Service Connect. אם אתם משתמשים ברשת VPC משותפת, זה יכול להיות הפרויקט המארח או פרויקט השירות. -
CLOUD_SQL_SERVICE_AGENT: כתובת האימייל של חשבון סוכן השירות של Cloud SQL שיצרתם.
- אדמין של רשת צרכנים לאוטומציה של שירותים (
יצירת מכונה של Cloud SQL
אתם יכולים ליצור מכונה עם Private Service Connect שמופעל במכונה, ולהגדיר את המכונה כך שתיצור נקודות קצה באופן אוטומטי באמצעות מסוף Google Cloud , ה-CLI של gcloud או ה-API.
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- בקטע Customize your instance, מרחיבים את הקטע Connections.
- מסמנים את התיבה Private IP.
- בקטע Choose a private connection method, מסמנים את התיבה Private Service Connect (PSC).
- בקטע Endpoint setup, לוחצים על Add an Endpoint.
- בקטע Endpoint setup, מבצעים את הפעולות הבאות:
- בכרטיס New Endpoint, בוחרים את הפרויקט שבו רוצים להגדיר את נקודת הקצה מהתפריט Project.
- בוחרים רשת לנקודת הקצה בתפריט Network.
- אם Network Connectivity API לא מופעל, לוחצים על Enable.
- לוחצים על אישור הגדרת הרשת. אם זוהתה מדיניות חיבור לשירות ברשת שבחרתם, תוצג הודעה שהפעולה בוצעה בהצלחה. אם לא זוהתה מדיניות חיבור לשירות אבל ההרשאות הוענקו בהצלחה, Google Cloud תיצור בשבילכם מדיניות חיבור לשירות.
- אופציונלי: משלימים את אפשרויות ההגדרה האחרות של המכונה.
- לוחצים על Create Instance.
gcloud
כדי ליצור מכונה שמופעל בה Private Service Connect, משתמשים בפקודה gcloud sql instances create:
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --cpu=NUMBER_OF_vCPUs \ --memory=MEMORY_SIZE \ --root-password=ROOT_PASSWORD \ --availability-type=AVAILABILITY_TYPE \ --database-version=DATABASE_VERSION \ --no-assign-ip \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT \ --enable-psc-auto-dns \ --enable-psc-write-endpoint-dns
זה שינוי אופציונלי. כדי ליצור או לעדכן מדיניות של חיבור לשירות באופן אוטומטי כשיוצרים את המכונה של Cloud SQL, מוסיפים לפקודה את הפרמטר --enable-psc-auto-connection-policy.
כדי להשתמש בפרמטר הזה, צריך להגדיר הרשאות נוספות. מידע נוסף זמין במאמר יצירה אוטומטית של מדיניות חיבור לשירות.
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה. -
PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את המכונה. -
REGION_NAME: שם האזור של המכונה. -
NUMBER_OF_vCPUs: מספר הליבות של המכונה. -
MEMORY_SIZE: כמות הזיכרון של המכונה. -
ROOT_PASSWORD: הסיסמה של המשתמש ב-rootCloud SQL.
AVAILABILITY_TYPE: הפעלת זמינות גבוהה למכונה. בפרמטר הזה, מציינים את אחד מהערכים הבאים:-
REGIONAL: מאפשר זמינות גבוהה ומומלץ למכונות בסביבת הייצור. המכונה עוברת למצב של מעבר לגיבוי בעת כשל באזור אחר בתוך האזור שבחרתם. -
ZONAL: לא מספק יכולת יתירות כשל. זה ערך ברירת המחדל.
מידע נוסף על הגדרה והסרה של זמינות גבוהה במכונות מופיע במאמרים הגדרת זמינות גבוהה במכונה קיימת והשבתת זמינות גבוהה במכונה.
-
DATABASE_VERSION: גרסת מסד הנתונים של המכונה (לדוגמה,SQLSERVER_2019_STANDARD).
ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרי פרויקטים מותרים, שמהם נקודות הקצה של Private Service Connect יכולות להתחבר למכונות של Cloud SQL.אם פרויקט לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למכונה.
CONSUMER_NETWORK: הנתיב לרשת ה-VPC שבה צריך ליצור את נקודות הקצה של Private Service Connect. לדוגמה:projects/my-host-project/global/networks/default.
CONSUMER_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם אתם משתמשים ברשת VPC משותפת, זה יכול להיות הפרויקט המארח או פרויקט השירות.כל הפרויקטים שתציינו בפרמטרים של החיבור האוטומטי יתווספו אוטומטית לפרויקטים המורשים. אם רוצים ליצור נקודות קצה (endpoints) של Private Service Connect באופן ידני בפרויקטים מסוימים, אפשר להוסיף את הפרויקטים האלה לרשימת הפרויקטים המורשים.
כדי להפעיל ולהגדיר את Private Service Connect, משתמשים בפרמטרים הבאים:
-
--enable-private-service-connect: הפעלת Private Service Connect. --allowed-psc-projects=ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרים מותרים. אלה הפרויקטים שמהם נקודות קצה של Private Service Connect יכולות להתחבר למכונות Cloud SQL.-
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT: הנתיב לרשת ה-VPC שבה צריך ליצור נקודות קצה של Private Service Connect.
--enable-psc-auto-dns: מציין אם צריך להפעיל את אוטומציית ה-DNS של Private Service Connect במכונה הזו. כברירת מחדל, האפשרות מושבתת במכונות חדשות כשמפעילים את Private Service Connect באמצעות--enable-private-service-connect.כשאוטומציית DNS מופעלת, Cloud SQL מקצה רשומת DNS לכל מכונה בכל הרשתות שמוגדרות עם חיבורים אוטומטיים של Private Service Connect.
--enable-psc-write-endpoint-dns: מציין אם אוטומציית ה-DNS של נקודת הקצה לכתיבה של Private Service Connect מופעלת במכונה הזו. התכונה הזו נתמכת רק במכונות Enterprise Plus שבהן מוגדר גם--enable-psc-auto-dns, והיא מושבתת כברירת מחדל כשיוצרים מכונה חדשה.כשהאוטומציה של נקודת הקצה לכתיבה ב-DNS מופעלת, Cloud SQL מקצה רשומת DNS גלובלית שתשמש כנקודת קצה לכתיבה באשכול הרפליקציה בכל הרשתות שמוגדרים בהן חיבורים אוטומטיים של Private Service Connect. רשומת ה-DNS הגלובלית הזו תמיד מפנה למכונה הראשית הנוכחית של אשכול הרפליקציה, וכך מאפשרת יתירות כשל חלקה של האפליקציה בלי צורך לעדכן את מחרוזת החיבור בצד הלקוח במקרה של פעולת יתירות כשל או מעבר לרפליקה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- INSTANCE_NAME: השם של המכונה ב-Cloud SQL.
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את המכונה.
- REGION_NAME: שם האזור של המכונה.
- DATABASE_VERSION: גרסת מסד הנתונים של המכונה (לדוגמה,
SQLSERVER_2019_STANDARD). - ROOT_PASSWORD: הסיסמה של משתמש
rootב-Cloud SQL. - AVAILABILITY_TYPE: סוג הזמינות של המכונה באזור. משתמשים בפרמטר הזה כדי להפעיל או להשבית את הזמינות הגבוהה של המכונה, על ידי ציון אחד מהערכים הבאים:
-
REGIONAL: מאפשר זמינות גבוהה ומומלץ למכונות בסביבת הייצור. המכונה עוברת למצב של מעבר לגיבוי בעת כשל באזור אחר בתוך המחוז שבחרתם. -
ZONAL: לא מספק יכולת מעבר. זה ערך ברירת המחדל.
מידע נוסף על הגדרה והסרה של זמינות גבוהה במכונות זמין במאמרים הגדרת זמינות גבוהה במכונה קיימת והשבתת זמינות גבוהה במכונה.
-
- ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרים מותרים, שמהם נקודות קצה של Private Service Connect יכולות להתחבר למכונות של Cloud SQL.
אם פרויקט לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למכונה.
-
CONSUMER_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם אתם משתמשים ברשת VPC משותפת, זה יכול להיות הפרויקט המארח או פרויקט השירות.
כל הפרויקטים שציינתם בפרמטרים של החיבור האוטומטי נוספים אוטומטית לפרויקטים המורשים. אם רוצים ליצור נקודות קצה (endpoints) של Private Service Connect באופן ידני בפרויקטים מסוימים, אפשר להוסיף את הפרויקטים האלה לרשימת הפרויקטים המורשים.
- PARENT_PROJECT: הפרויקט שמכיל את הרשת CONSUMER_NETWORK. אם לא מציינים פרויקט אחר ב-CONSUMER_PROJECT, נקודות הקצה נוצרות באופן אוטומטי ב-PARENT_PROJECT
-
CONSUMER_PROJECT: אופציונלי. צריך לציין את זה רק אם CONSUMER_NETWORK היא רשת VPC משותפת ואתם רוצים לאפשר יצירה אוטומטית של נקודות קצה של Private Service Connect בפרויקט שירות.
כל הפרויקטים שציינתם בפרמטרים של החיבור האוטומטי נוספים אוטומטית לפרויקטים המורשים. אם רוצים, אפשר להוסיף לרשימת הפרויקטים המורשים פרויקטים שבהם רוצים ליצור נקודות קצה של Private Service Connect באופן ידני.
- CONSUMER_NETWORK: רשת ה-VPC שבה רוצים לאפשר יצירה אוטומטית של נקודות קצה של Private Service Connect. לדוגמה:
projects/my-host-project/global/networks/default. - MACHINE_TYPE: ערך מחרוזת מספרי שמייצג את סוג המכונה. לדוגמה: code>db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, כאשר NUMBER_OF_vCPUs ו-MEMORY_SIZE הם מספר הליבות וכמות הזיכרון שרוצים להקצות למכונה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_NAME",
"project": PROJECT_ID",
"region": "REGION_NAME",
"databaseVersion": "SQLSERVER_2019_STANDARD",
"rootPassword": "ROOT_PASSWORD",
"kind": "sql#instance",
"settings": {
"availabilityType": "AVAILABILITY_TYPE",
"ipConfiguration": {
"ipv4Enabled": false,
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscAutoConnections": [
{
"consumerProject":"CONSUMER_PROJECT",
"consumerNetwork":"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK"
}
],
"pscEnabled": true,
"pscAutoConnectionPolicyEnabled": true,
"pscAutoDnsEnabled": true,
"pscWriteEndpointDnsEnabled": true
}
},
"kind": "sql#settings",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"tier": "MACHINE_TYPE"
}
}כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
אלה השדות שבהם משתמשים כדי להפעיל אוטומציה של DNS ושם DNS גלובלי של נקודת קצה (endpoint) לכתיבה:
psc_auto_dns_enabled: מציין אם אוטומציית ה-DNS של Private Service Connect מופעלת במכונה הזו. כברירת מחדל, האפשרות מושבתת במכונות חדשות כש-Private Service Connect מופעל באמצעות--enable-private-service-connect.כשהאוטומציה של DNS מופעלת, Cloud SQL מקצה רשומת DNS אוניברסלית בכל הרשתות שמוגדרות עם חיבורים אוטומטיים של Private Service Connect.
psc_write_endpoint_dns_enabled: מציין אם אוטומציית ה-DNS של נקודת הקצה לכתיבה של Private Service Connect מופעלת במכונה הזו. התכונה הזו נתמכת רק במופעים של Enterprise Plus שבהם מוגדר גם--enable-psc-auto-dns, והיא מושבתת כברירת מחדל כשנוצר מופע חדש.כשהאוטומציה של DNS לנקודת קצה לכתיבה מופעלת, Cloud SQL מקצה רשומת DNS גלובלית שתשמש כנקודת קצה לכתיבה בכל הרשתות שמוגדרים בהן חיבורים אוטומטיים של Private Service Connect. רשומת ה-DNS הגלובלית הזו תמיד מפנה למכונה הראשית הנוכחית של אשכול הרפליקציה, וכך מאפשרת יתירות כשל חלקה של האפליקציה בלי צורך בעדכונים של מחרוזת החיבור בצד הלקוח במקרה של פעולת יתירות כשל או מעבר לרפליקה.
כדי ליצור מדיניות של חיבור לשירות באופן אוטומטי כשיוצרים את המכונה, מפעילים את השדה הבא:
-
psc_auto_connection_policy_enabled: מציין אם לאפשר ל-Google Cloud ליצור או לעדכן מדיניות של חיבור לשירות כשיוצרים את המכונה של Cloud SQL. כדי להשתמש באפשרות הזו, צריך להגדיר הרשאות נוספות. מידע נוסף זמין במאמר יצירה אוטומטית של מדיניות חיבור לשירות.
Terraform
כדי ליצור את המכונה, משתמשים במשאב של Terraform עם השדה psc_config:
resource "google_sql_database_instance" "INSTANCE_NAME"
{
name = "INSTANCE_NAME"
database_version = "DATABASE_VERSION"
settings
{
tier = "MACHINE_TYPE"
ip_configuration
{
psc_config
{
psc_enabled = true
psc_auto_dns_enabled = true
psc_write_endpoint_dns_enabled = true
allowed_consumer_projects = ["ALLOWED_PROJECTS"]
psc_auto_connections
{
consumer_network = "CONSUMER_NETWORK"
consumer_service_project_id = "CONSUMER_PROJECT"
}
}
ipv4_enabled = false
}
}
}מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה. -
DATABASE_VERSION: גרסת מסד הנתונים של המכונה (לדוגמה,SQLSERVER_2019_STANDARD). -
MACHINE_TYPE: סוג המכונה.
ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרי פרויקטים מותרים, שמהם נקודות הקצה של Private Service Connect יכולות להתחבר למכונות של Cloud SQL.אם פרויקט לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למכונה.
CONSUMER_NETWORK: הנתיב לרשת ה-VPC שבה צריך ליצור את נקודות הקצה של Private Service Connect. לדוגמה:projects/my-host-project/global/networks/default.
CONSUMER_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם אתם משתמשים ברשת VPC משותפת, זה יכול להיות הפרויקט המארח או פרויקט השירות.
אתם יכולים להשתמש בשדות האלה כדי להפעיל אוטומציה של DNS ושם DNS גלובלי של נקודת קצה לכתיבה:
psc_auto_dns_enabled: מציין אם אוטומציית ה-DNS של Private Service Connect מופעלת במכונה הזו. כברירת מחדל, האפשרות מושבתת במכונות חדשות כש-Private Service Connect מופעל באמצעות--enable-private-service-connect.כשהאוטומציה של DNS מופעלת, Cloud SQL מקצה רשומת DNS אוניברסלית בכל הרשתות שמוגדרות עם חיבורים אוטומטיים של Private Service Connect.
psc_write_endpoint_dns_enabled: מציין אם אוטומציית ה-DNS של נקודת הקצה לכתיבה של Private Service Connect מופעלת במכונה הזו. התכונה הזו נתמכת רק במופעים של Enterprise Plus שבהם מוגדר גם--enable-psc-auto-dns, והיא מושבתת כברירת מחדל כשנוצר מופע חדש.כשהאוטומציה של DNS לנקודת קצה לכתיבה מופעלת, Cloud SQL מקצה רשומת DNS גלובלית שתשמש כנקודת קצה לכתיבה בכל הרשתות שמוגדרים בהן חיבורים אוטומטיים של Private Service Connect. רשומת ה-DNS הגלובלית הזו תמיד מפנה למכונה הראשית הנוכחית של אשכול הרפליקציה, וכך מאפשרת יתירות כשל חלקה של האפליקציה בלי צורך בעדכונים של מחרוזת החיבור בצד הלקוח במקרה של פעולת יתירות כשל או מעבר לרפליקה.
כדי להפעיל את Private Service Connect וליצור מדיניות חיבור לשירות באופן אוטומטי, משתמשים בשדה הבא:
-
psc_auto_connection_policy_enabled: מציין אם לאפשר ל-Google Cloud ליצור או לעדכן מדיניות של חיבור לשירות כשיוצרים את המכונה של Cloud SQL. כדי להשתמש באפשרות הזו, צריך להגדיר הרשאות נוספות. מידע נוסף זמין במאמר יצירה אוטומטית של מדיניות חיבור לשירות.
החלה של השינויים
כך מחילים את ההגדרות של Terraform בפרויקט ב- Google Cloud :
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
למחוק את השינויים
כדי למחוק את השינויים:
- כדי להשבית את ההגנה מפני מחיקה, בקובץ התצורה של Terraform מגדירים את הארגומנט
deletion_protectionלערךfalse.deletion_protection = "false"
- מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:terraform apply
-
כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה:terraform destroy
אחזור נקודת הקצה (endpoint)
אחרי שמאחזרים את כתובת ה-IP הפנימית, שהיא נקודת הקצה של Private Service Connect למכונה, אפשר להשתמש בנקודת הקצה הזו כדי להתחבר למכונה.
gcloud
כדי להציג מידע על מכונה, כולל כתובת ה-IP שהיא נקודת הקצה של Private Service Connect של המכונה, משתמשים בפקודה gcloud sql instances describe:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: השם של המכונה ב-Cloud SQL. אם במכונה הזו מופעל Private Service Connect, נקודות קצה של Private Service Connect ברשתות VPC יכולות להתחבר אליה.
- PROJECT_ID: המזהה או מספר הפרויקט ב- Google Cloud שמכיל את המכונה.
בתגובה, שימו לב לערך שמופיע לצד השדה pscConfig:pscAutoConnections:ipAddress. הערך הזה הוא כתובת ה-IP הפנימית, שהיא גם נקודת הקצה של Private Service Connect במכונה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט ב- Google Cloud שמכיל את המכונה.
- INSTANCE_NAME: השם של המכונה ב-Cloud SQL. אם במכונה הזו מופעל Private Service Connect, נקודות קצה של Private Service Connect ברשתות VPC יכולות להתחבר אליה.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "SQLSERVER_2019_STANDARD",
"settings": {
"authorizedGaeApplications": [],
"tier": "db-custom-2-7680",
"kind": "sql#settings",
"availabilityType": "REGIONAL",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"activationPolicy": "ALWAYS",
"ipConfiguration": {
"authorizedNetworks": [],
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscAutoConnections": {
consumerNetwork:"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK",
consumerNetworkStatus:"CONSUMER_NETWORK_STATUS",
consumerProject:"CONSUMER_PROJECT",
ipAddress:"IP_ADDRESS",
status:"STATUS"
},
"pscEnabled": true
},
"ipv4Enabled": false
},
}
השדות הבאים קיימים במכונות שמופעל בהן Private Service Connect:
-
allowedConsumerProjects: רשימה של הפרויקטים המורשים למכונה. אתם יכולים ליצור נקודות קצה (endpoints) של Private Service Connect מכל רשת VPC בפרויקטים האלה לצירוף השירות של המכונה. -
pscAutoConnections: רשת ה-VPC המותרת, הסטטוס של מדיניות החיבור לשירות והסטטוס של כתובת ה-IP שהיא נקודת הקצה של המכונה. -
pscEnabled: אם במכונה מופעל Private Service Connect.
כדי לראות איך ליצור את בקשת ה-API הבסיסית בארכיטקטורת REST למשימה הזו, עיינו בדף instances:get.
יצירת נקודת הקצה באופן ידני
כדי ליצור את נקודת הקצה של Private Service Connect באופן ידני:
יוצרים מכונה של Cloud SQL עם Private Service Connect שמופעל במכונה.
משיגים את ה-URI של צירוף השירות. משתמשים ב-URI הזה כדי ליצור את נקודת הקצה של Private Service Connect.
שומרים כתובת IP פנימית לנקודת הקצה של Private Service Connect ויוצרים נקודת קצה עם הכתובת הזו.
יצירת מכונה של Cloud SQL
אתם יכולים ליצור מכונה עם Private Service Connect באמצעות ה-CLI של gcloud, Terraform או ה-API.
gcloud
כדי ליצור מכונה שמופעל בה Private Service Connect, משתמשים בפקודה gcloud sql instances create:
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --database-version=DATABASE_VERSION --cpu=NUMBER_OF_vCPUs \ --memory=MEMORY_SIZE \ --root-password=ROOT_PASSWORD
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: שם המכונה.
- PROJECT_ID: המזהה או מספר הפרויקט ב- Google Cloud שמכיל את המכונה.
- REGION_NAME: שם האזור של המכונה.
ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרי פרויקטים מותרים, שמהם נקודות קצה של Private Service Connect יכולות להתחבר למכונות Cloud SQL.
אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה (endpoints) של Private Service Connect כדי להתחבר למכונה.
- AVAILABILITY_TYPE: הפעלת זמינות גבוהה למכונה. בפרמטר הזה, מציינים את אחד מהערכים הבאים:
-
REGIONAL: מאפשר זמינות גבוהה ומומלץ למופעי ייצור. המכונה עוברת למצב של מעבר לגיבוי בעת כשל באזור אחר בתוך האזור שבחרתם. -
ZONAL: לא מספק יכולת יתירות כשל. זה ערך ברירת המחדל.
מידע נוסף על הגדרה והסרה של זמינות גבוהה למכונות זמין במאמרים הגדרת מכונה קיימת לזמינות גבוהה והשבתת זמינות גבוהה למכונה.
-
- DATABASE_VERSION: גרסת מסד הנתונים של המכונה (לדוגמה,
SQLSERVER_2019_STANDARD). - NUMBER_OF_vCPUs: מספר הליבות של המכונה.
- MEMORY_SIZE: נפח הזיכרון של המכונה.
- ROOT_PASSWORD: הסיסמה של משתמש
rootב-Cloud SQL.
Terraform
כדי ליצור מכונה שמופעל בה Private Service Connect, משתמשים ב משאב של Terraform google_sql_database_instance.
כך מחילים את ההגדרות של Terraform בפרויקט ב- Google Cloud :
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט ב- Google Cloud שמכיל את המכונה.
- INSTANCE_NAME: שם המכונה.
- REGION_NAME: שם האזור של המכונה.
- ROOT_PASSWORD: הסיסמה של משתמש
rootב-Cloud SQL. - AVAILABILITY_TYPE: הפעלת זמינות גבוהה במכונה. בפרמטר הזה, מציינים את אחד מהערכים הבאים:
-
REGIONAL: מאפשר זמינות גבוהה ומומלץ למופעי ייצור. המכונה עוברת למצב של מעבר לגיבוי בעת כשל באזור אחר בתוך האזור שבחרתם. -
ZONAL: לא מספק יכולת יתירות כשל. זה ערך ברירת המחדל.
מידע נוסף על הגדרה והסרה של זמינות גבוהה למכונות זמין במאמרים הגדרת מכונה קיימת לזמינות גבוהה והשבתת זמינות גבוהה למכונה.
-
ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרי פרויקטים מותרים, שמהם נקודות קצה של Private Service Connect יכולות להתחבר למכונות Cloud SQL.
אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה (endpoints) של Private Service Connect כדי להתחבר למכונה.
- MACHINE_TYPE: ערך מחרוזת מספרי שמייצג את סוג המכונה. לדוגמה:
db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, כאשר NUMBER_OF_vCPUs ו-MEMORY_SIZE הם מספר הליבות וכמות הזיכרון שאתם רוצים למכונה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"name": "INSTANCE_NAME",
"project": PROJECT_ID",
"region": "REGION_NAME",
"databaseVersion": "SQLSERVER_2019_STANDARD",
"rootPassword": "ROOT_PASSWORD",
"kind": "sql#instance",
"settings": {
"availabilityType": "AVAILABILITY_TYPE",
"ipConfiguration": {
"ipv4Enabled": false,
"pscConfig": {
"allowedConsumerProjects": [
"ALLOWED_PROJECTS"
],
"pscEnabled": true
}
},
"kind": "sql#settings",
"pricingPlan": "PER_USE",
"replicationType": "SYNCHRONOUS",
"tier": "MACHINE_TYPE"
}
}כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
קבלת קובץ מצורף לשירות
אחרי שיוצרים מכונה של Cloud SQL עם Private Service Connect, מקבלים את ה-URI של קובץ השירות המצורף ומשתמשים בו כדי ליצור את נקודת הקצה של Private Service Connect.
gcloud
כדי להציג מידע מסכם על מכונה שבה מופעל Private Service Connect, כמו השדה pscServiceAttachmentLink שמציג את ה-URI שמצביע על הקובץ המצורף לשירות של המכונה, משתמשים בפקודה gcloud sql instances describe:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: השם של מכונת Cloud SQL שאליה יכולות להתחבר נקודות קצה של Private Service Connect ברשתות VPC
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את המכונה
בדוגמה הבאה מוצג פלט לדוגמה של הפקודה הזו:
gcloud sql instances describe myinstance \ --project=12345 ... pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את המכונה
- INSTANCE_NAME: השם של המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
...
pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
}
בשדה pscServiceAttachmentLink מוצג ה-URI שמצביע על צירוף השירות של המכונה.
יצירת נקודת קצה מסוג Private Service Connect
אתם יכולים לשמור כתובת IP פנימית לנקודת הקצה של Private Service Connect וליצור נקודת קצה עם הכתובת הזו. כדי ליצור את נקודת הקצה, צריך את מזהה ה-URI של צירוף השירות ואת הפרויקטים שמותרים למכונה.
gcloud
כדי לשמור כתובת IP פנימית לנקודת הקצה של Private Service Connect, משתמשים בפקודה
gcloud compute addresses create:gcloud compute addresses create ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --subnet=SUBNET_URI \ --addresses=INTERNAL_IP_ADDRESS
מחליפים את הפרטים הבאים:
- ADDRESS_NAME: השם של כתובת ה-IP הפנימית.
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud לנקודת הקצה.
- REGION_NAME: שם האזור של נקודת הקצה.
- SUBNET_URI: השם של רשת המשנה של כתובת ה-IP. הפורמט הוא:
projects/SUBNET_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNET_NAME. אם רשת המשנה נמצאת ברשת VPC משותפת, מומלץ ש-SUBNET_PROJECT_ID יהיה הפרויקט המארח. - INTERNAL_IP_ADDRESS: כתובת ה-IP שרוצים לשמור. כתובת ה-IP הזו חייבת להיות בטווח ה-IP הראשי של רשת המשנה. כתובת ה-IP יכולה להיות כתובת RFC 1918 או רשת משנה עם טווחים שהם לא RFC. אם אתם לא רוצים לציין את כתובת ה-IP כי אתם רוצים ש- Google Cloud יקצה כתובת IP זמינה ברשת המשנה, אל תציינו את הדגל הזה.
כדי לוודא שכתובת ה-IP שמורה, משתמשים בפקודה
gcloud compute addresses list:gcloud compute addresses list ADDRESS_NAME \ --project=PROJECT_ID
בתגובה, מוודאים שמופיע הסטטוס
RESERVEDלכתובת ה-IP.כדי ליצור את נקודת הקצה של Private Service Connect ולהפנות אותה לקובץ המצורף של שירות Cloud SQL, משתמשים בפקודה
gcloud compute forwarding-rules create:gcloud compute forwarding-rules create ENDPOINT_NAME \ --address=ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --network=NETWORK_URI \ --target-service-attachment=SERVICE_ATTACHMENT_URI \ --allow-psc-global-access
מחליפים את הפרטים הבאים:
- ENDPOINT_NAME: השם של נקודת הקצה
- NETWORK_URI: ה-URI של רשת ה-VPC של נקודת הקצה. הפורמט הוא:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME. אם רוצים להשתמש ברשת VPC משותפת, צריך לציין את הפרויקט המארח בתור NETWORK_PROJECT_ID. - SERVICE_ATTACHMENT_URI: ה-URI של צירוף השירות
כדי לוודא שחיבור השירות מקבל את נקודת הקצה, משתמשים בפקודה
gcloud compute forwarding-rules describe:gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
בתשובה, מוודאים שמופיע סטטוס
ACCEPTEDבשדהpscConnectionStatus. נקודת הקצה יכולה להתחבר לצירוף השירות.
Terraform
כדי ליצור נקודת קצה (endpoint) של Private Service Connect, משתמשים ב משאב Terraform של google_sql_database_instance.
אפשר להשתמש בדוגמה הבאה כדי ליצור נקודת קצה של Private Service Connect ב-IPv4.
אפשר להשתמש בדוגמה הבאה כדי ליצור נקודת קצה (endpoint) מסוג Private Service Connect ב-IPv6.
כך מחילים את ההגדרות של Terraform בפרויקט ב- Google Cloud :
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את הפרויקט ב- Google Cloud כדי להציג את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
REST
שומרים כתובת IP פנימית לנקודת הקצה של Private Service Connect.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud לנקודת הקצה (endpoint)
- REGION_NAME: שם האזור של נקודת הקצה (endpoint)
- ADDRESS_NAME: השם של כתובת ה-IP הפנימית
- SUBNET_URI: השם של רשת המשנה של כתובת ה-IP. הפורמט הוא:
projects/SUBNET_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNET_NAME. אם רשת המשנה נמצאת ברשת VPC משותפת, מומלץ ש-SUBNET_PROJECT_ID יהיה הפרויקט המארח.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses
תוכן בקשת JSON:
{ "name": "ADDRESS_NAME", "addressType": "INTERNAL", "subnetwork": "SUBNET_URI" }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "compute#operation", "id": "OPERATION_ID", "name": "OPERATION_NAME", "operationType": "insert", "status": "RUNNING", "targetLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "progress": 0 }מוודאים שכתובת ה-IP שמורה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה של Private Service Connect
- REGION_NAME: שם האזור
- ADDRESS_NAME: השם של כתובת ה-IP
ה-method של ה-HTTP וכתובת ה-URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }בתגובה, מוודאים שמופיע הסטטוס
RESERVEDלכתובת ה-IP.יוצרים את נקודת הקצה של Private Service Connect ומפנים אותה לקובץ המצורף של שירות Cloud SQL.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud לנקודת הקצה (endpoint)
- REGION_NAME: שם האזור של נקודת הקצה (endpoint)
- ENDPOINT_NAME: השם של נקודת הקצה
- ADDRESS_URI: ה-URI של כתובת ה-IP הפנימית השמורה. הפורמט הוא:
projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME. אפשר גם לציין את כתובת ה-IP ישירות. - SERVICE_ATTACHMENT_URI: ה-URI של צירוף השירות
- NETWORK_URI: ה-URI של רשת ה-VPC של נקודת הקצה. הפורמט הוא:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME. אם רוצים להשתמש ברשת VPC משותפת, צריך לציין את הפרויקט המארח בתור NETWORK_PROJECT_ID.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules
תוכן בקשת JSON:
{ "name": "ENDPOINT_NAME", "IPAddress": "ADDRESS_URI", "target": "SERVICE_ATTACHMENT_URI", "network": "NETWORK_URI", "allowPscGlobalAccess": true }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "compute#operation", "id": "OPERATION_ID", "name": "OPERATION_NAME", "operationType": "insert", "status": "RUNNING", "targetLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "progress": 0 }מוודאים שנקודת הקצה מקושרת ל-Service Attachment.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה של Private Service Connect
- REGION_NAME: שם האזור
- ENDPOINT_NAME: השם של נקודת הקצה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }בתשובה, מוודאים שמופיע סטטוס
ACCEPTEDבשדהpscConnectionStatus. נקודת הקצה יכולה להתחבר לצירוף השירות.
התחברות למכונה של Cloud SQL
אתם יכולים להתחבר למכונה של Cloud SQL שמופעל בה Private Service Connect באמצעות כתובת IP פנימית, רשומת DNS, שרת Cloud SQL Auth Proxy, מחברי Cloud SQL Language Connectors אוGoogle Cloud אפליקציות אחרות.
קישור באמצעות רשומת DNS
DNS היא הדרך המומלצת להתחבר למכונות שמופעל בהן Private Service Connect. שם DNS מאפשר לרשתות שונות להתחבר לאותו מכונה, שבה לנקודות הקצה של Private Service Connect בכל רשת יכולות להיות כתובות IP שונות. בנוסף, כדי להתחבר למכונות האלה, צריך להשתמש בשמות DNS ב-Cloud SQL Auth Proxy. במאמר הגדרת DNS ל-Private Service Connect מוסבר איך מגדירים DNS.
לפני שמתחברים למכונה של Cloud SQL באמצעות רשומת DNS, צריך לבצע את הפעולות הבאות:
- יוצרים נקודת קצה מסוג Private Service Connect.
- מוודאים שקובץ השירות המצורף של המכונה מקבל את נקודת הקצה. כדי לוודא שהסטטוס של נקודת הקצה הוא
ACCEPTED, בודקים את הסטטוס. - מגדירים תחום מנוהל של DNS ורשומת DNS.
אחרי שתעמדו בתנאים האלה, תוכלו להשתמש ברשומת ה-DNS כדי להתחבר למכונה מכל רשת VPC שבה יצרתם את נקודת הקצה.
sqlcmd -S DNS_RECORD -d DATABASE_NAME -U USERNAME
מחליפים את הפרטים הבאים:
- DNS_RECORD: רשומת ה-DNS של נקודת הקצה
- DATABASE_NAME: השם של מסד הנתונים של Cloud SQL ל-SQL Server שנמצא בתוך המכונה
- USERNAME: השם של המשתמש שמתחבר למכונה
חיבור ישיר באמצעות כתובת IP פנימית
לפני שמתחברים למכונה של Cloud SQL שמופעל בה Private Service Connect, צריך לבצע את הפעולות הבאות:
- יוצרים נקודת קצה מסוג Private Service Connect.
- מוודאים שקובץ השירות המצורף של המכונה מקבל את נקודת הקצה. כדי לוודא שהסטטוס של נקודת הקצה הוא
ACCEPTED, בודקים את הסטטוס.
אחרי שתעמדו בתנאים האלה, תוכלו להשתמש בכתובת ה-IP של נקודת הקצה כדי לגשת למכונה מכל רשת VPC שבה יצרתם את נקודת הקצה.
אחזור של כתובת ה-IP הפנימית של נקודת הקצה של Private Service Connect באמצעות השם של כתובת ה-IP של נקודת הקצה.
gcloud
כדי לאחזר את כתובת ה-IP, משתמשים בפקודה
gcloud compute addresses describe:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
מחליפים את הפרטים הבאים:
- ADDRESS_NAME: השם של כתובת ה-IP של נקודת הקצה
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה (endpoint)
- REGION_NAME: שם האזור של נקודת הקצה (endpoint)
בתשובה, מוודאים שכתובת IP מופיעה בשדה
address. זוהי כתובת ה-IP הפנימית.REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה (endpoint)
- REGION_NAME: שם האזור של נקודת הקצה (endpoint)
- ADDRESS_NAME: השם של כתובת ה-IP של נקודת הקצה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }כתובת ה-IP הפנימית היא הערך שמשויך לשדה
address.לחלופין, אפשר לאחזר את כתובת ה-IP הפנימית של נקודת הקצה של Private Service Connect באמצעות הקובץ המצורף לשירות של המכונה ב-Cloud SQL.
gcloud
כדי לאחזר את כתובת ה-IP, משתמשים בפקודה
gcloud compute forwarding-rules list:gcloud compute forwarding-rules list \ --filter="TARGET:REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" \ --project=PROJECT_ID
מחליפים את הפרטים הבאים:
- REGION_NAME: שם האזור של נקודת הקצה (endpoint)
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה (endpoint)
- SERVICE_ATTACHMENT_NAME: השם של צירוף השירות של המכונה ב-Cloud SQL
בתשובה, מוודאים שמופיעה כתובת IP. זוהי כתובת ה-IP הפנימית.
זוהי דוגמה לתשובה:
NAMEREGIONIP_ADDRESSTARGETmyInstanceus-central110.10.10.10us-central1/serviceAttachments/a-123456789e0a-psc-service-attachment-abc123d4e5f67gh8REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה (endpoint)
- REGION_NAME: שם האזור של נקודת הקצה (endpoint)
- SERVICE_ATTACHMENT_PROJECT_ID: המזהה או מספר הפרויקט של Google Cloud הפרויקט שמכיל את חיבור השירות
- SERVICE_ATTACHMENT_NAME: השם של חיבור השירות למכונה של Cloud SQL
ה-method של ה-HTTP וכתובת ה-URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules?target="https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "compute#forwardingRuleList", "id": "projects/PROJECT_ID/regions/REGION_NAME/forwardingRules", "items": [ { "kind": "compute#forwardingRule", "id": "FORWARDING_RULE_ID", "creationTimestamp": "2023-10-31T13:04:37.168-07:00", "name": "FORWARDING_RULE_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/FORWARDING_RULE_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "PSC_CONNECTION_ID", "pscConnectionStatus": "CLOSED", "allowPscGlobalAccess": true } ], "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules" }כתובת ה-IP הפנימית היא הערך שמשויך לשדה
IPAddress.-
כדי להתחבר למכונה של Cloud SQL, משתמשים בכתובת ה-IP הפנימית.
sqlcmd -S IP_ADDRESS -d DATABASE_NAME -U USERNAME
מחליפים את הפרטים הבאים:
- IP_ADDRESS: כתובת ה-IP של נקודת הקצה
- DATABASE_NAME: השם של מסד הנתונים של Cloud SQL ל-SQL Server שנמצא בתוך המכונה
- USERNAME: השם של המשתמש שמתחבר למכונה
התחברות באמצעות Cloud SQL Auth Proxy
Cloud SQL Auth Proxy הוא מחבר שמאפשר גישה מאובטחת למכונה שמופעל בה Private Service Connect, בלי צורך ברשתות מורשות או בהגדרת SSL.
מגדירים את Cloud SQL Auth Proxy באמצעות שם ה-DNS של המכונה ב-Private Service Connect. שם DNS מזהה רשומת DNS שממפה משאב DNS לשם דומיין. מידע נוסף על הפעלת DNS לפרויקט זמין במאמר הגדרת DNS ב-Private Service Connect. כדי לאתר שמות DNS קיימים למכונה, ראו איתור שמות DNS.
אם הפעלתם אשכול מתקדם של יתירות כשל, אתם יכולים גם להגדיר את Cloud SQL Auth Proxy כך שישתמש בשם ה-DNS של נקודת הקצה לכתיבה של Private Service Connect.
לדוגמה, אם שם נקודת הקצה לכתיבה ב-DNS של Private Service Connect באשכול הוא abcdef123456.987654321fedcb.global.sql-psc.goog, צריך להפעיל את שרת ה-proxy לאימות באופן הבא:
./cloud-sql-proxy abcdef123456.987654321fedcb.global.sql-psc.googאם אתם מתחברים באמצעות Private Service Connect, אתם צריכים את גרסה v2.5.0 או גרסה חדשה יותר של Cloud SQL Auth Proxy.
הורדה והתקנה של Cloud SQL Auth Proxy
כדי להתחבר למכונות שבהן מופעל Private Service Connect, צריך להוריד ולהתקין את הקובץ הבינארי של Cloud SQL Auth Proxy. הקובץ הבינארי שאתם מורידים תלוי במערכת ההפעלה, ובשאלה אם היא משתמשת בליבה של 32 ביט או 64 ביט. רוב החומרות החדשות יותר משתמשות בליבה של 64 ביט.
אם אתם לא בטוחים אם המכונה שלכם מריצה ליבה של 32 ביט או 64 ביט, השתמשו בפקודה uname -a ל-Linux או ל-macOS. ב-Windows, עיינו במסמכי התיעוד של Windows.
הפעלת Cloud SQL Auth Proxy
Cloud SQL Auth Proxy תומך בחיבורים למכונות שמופעל בהן Private Service Connect. מידע נוסף זמין במאמר הפעלת Cloud SQL Auth Proxy.
- לצפות בסיכום המידע על מכונת Cloud SQL, כולל שם החיבור של המכונה.
gcloud
כדי להציג מידע מסכם על מכונה של Cloud SQL, משתמשים בפקודה
gcloud sql instances describe.gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='value(connectionName)'
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: השם של מכונת Cloud SQL
- PROJECT_ID: המזהה או מספר הפרויקט ב- Google Cloud שמכיל את המכונה
שם החיבור הוא בפורמט
PROJECT_ID:REGION_NAME:INSTANCE_NAME.REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את המכונה
- INSTANCE_NAME: השם של המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ ... "connectionName": "PROJECT_ID:REGION_NAME:INSTANCE_NAME" }שם החיבור הוא בפורמט
PROJECT_ID:REGION_NAME:INSTANCE_NAME. - מעתיקים את השם של החיבור למכונה.
מפעילים את Cloud SQL Auth Proxy:
./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc
מחליפים את INSTANCE_CONNECTION_NAME בשם החיבור של המכונה שהעתקתם בשלב הקודם.
התחברות באמצעות מחברי השפה של Cloud SQL
מחברי השפה של Cloud SQL הם ספריות שמספקות גישה מאובטחת למכונה של Cloud SQL שמופעל בה Private Service Connect, בלי צורך ברשתות מורשות או בהגדרת SSL.
מגדירים את Cloud SQL Auth Proxy באמצעות שם ה-DNS של המכונה ב-Private Service Connect, ואת שם ה-DNS של נקודת הקצה לכתיבה ב-Private Service Connect של אשכול מתקדם של יתירות כשל, אם הפעלתם אחד כזה. שם DNS מזהה רשומת DNS שממפה משאב DNS לשם דומיין. מידע נוסף על הפעלת DNS לפרויקט זמין במאמר הגדרת DNS ב-Private Service Connect. כדי לאתר שמות DNS קיימים למכונה, ראו איתור שמות DNS.
מחברי השפה של Cloud SQL תומכים בחיבורים של Private Service Connect באמצעות סוג ה-IP PSC בספריות המתאימות שלהם. המסמכים של כל מחבר נמצאים במסמכים הציבוריים ב-GitHub בנושא תוכנית התאוששות מאסון (DR) מתקדמת:
- Cloud SQL Python Connector (גרסה 1.3.0 ואילך)
- Cloud SQL Go Connector (גרסה 1.4.0 ואילך)
- Cloud SQL Java Connector (גרסה 1.13.0 ואילך)
- Cloud SQL Node.js Connector (גרסה 0.5.0 ואילך)
התחברות מסביבת App Engine Standard, מ-Cloud Run או מפונקציות Cloud Run
כדי להתחבר למכונות של Cloud SQL שמופעל בהן Private Service Connect, אתם יכולים להשתמש ב-App Engine Standard או ב-Cloud Run.
בסביבות האלה בלי שרת (serverless), אפשר להשתמש גם במחברי שפה של Cloud SQL וגם בחיבורי TCP ישירים באמצעות כתובת IP ומספר יציאה. בחיבורי TCP ישירים, זו כתובת ה-IP שאתם שומרים כשאתם יוצרים את נקודת הקצה של Private Service Connect. אפשר לציין את כתובת ה-IP ככתובת של מארח מסד הנתונים.
אם יוצרים רשומת DNS לנקודת הקצה, אפשר לציין את הרשומה הזו למארח.
קישור מ-BigQuery
כדי לגשת לנתונים ב-Cloud SQL ולבצע שאילתות על הנתונים האלה דרך חיבור IP פנימי, משתמשים בפרמטר --enable-google-private-path. הפרמטר הזה תקף רק אם:
- אתם משתמשים בפרמטר
--no-assign-ip. - הפרמטר
--networkמשמש כדי לציין את השם של רשת ה-VPC שבה רוצים להשתמש כדי ליצור חיבור פנימי.
הגדרת קישוריות יוצאת למכונה של Cloud SQL
אתם יכולים להגדיר את מכונת Cloud SQL שמופעל בה Private Service Connect כך שתהיה לה קישוריות יוצאת לרשת שלכם באמצעות ממשק Private Service Connect ומחבר רשת. למידע נוסף על אופן הפעולה של קישוריות יוצאת ב-Private Service Connect ועל המגבלות שלה, קראו את הסקירה הכללית על קישוריות יוצאת ב-Private Service Connect.
כדי להשתמש בקישוריות יוצאת עם מכונת Cloud SQL, צריך:
יוצרים או מעדכנים חיבור לרשת. מכונת Cloud SQL משתמשת בחיבור הרשת הזה כדי להתחבר לממשק Private Service Connect של הרשת.
מחבר הרשת צריך להיות באותו אזור כמו המכונה של Cloud SQL, וצריך להגדיר אותו כך שיקבל חיבורים באופן אוטומטי באמצעות רשימה מממשקי Private Service Connect.
מאתרים את מזהה הפרויקט של הדייר ב-Cloud SQL. משתמשים בפקודה
gcloud sql instances describeכדי לאחזר פרטים על המכונה. מזהה הפרויקט של הדייר מופיע בכתובת ה-URL של צירוף השירות שמוצגת בפלט:ADMIN_PROJECT=PROJECT_ID INSTANCE_NAME=INSTANCE_NAME TENANT_PROJECT_ID=$(gcloud --project=$ADMIN_PROJECT sql instances describe $INSTANCE_NAME | grep pscServiceAttachmentLink | cut -f 2 -d "/")מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloudשבו אתם משתמשים.
- INSTANCE_NAME: השם של המכונה של Cloud SQL שמופעל בה Private Service Connect, שרוצים להגדיר לה קישוריות יוצאת.
שומרים את הערך של מזהה הפרויקט של הדייר כדי לכלול אותו בהמשך ברשימת מזהי הפרויקטים המקובלים. ההרשאה הזו נדרשת כשיוצרים או מעדכנים חיבור לרשת בפרויקט ב- Google Cloud .
מזהים את הרשת שרוצים לקבל ממנה חיבורים יוצאים של Cloud SQL, ומוודאים שיש לה ממשק Private Service Connect.
מפעילים חיבורים יוצאים למכונה של Cloud SQL באמצעות מחבר הרשת.
אתם יכולים גם להשבית את הקישוריות היוצאת בכל שלב, אם אתם כבר לא צריכים חיבורים יוצאים למכונה.
מידע נוסף על קישוריות יוצאת של Private Service Connect זמין במאמר חיבורים יוצאים של Private Service Connect.
הפעלת חיבורים יוצאים במכונה של Cloud SQL
כדי להפעיל קישוריות יוצאת במכונה של Cloud SQL, קודם צריך ליצור או לעדכן מחבר רשת בפרויקט ב- Google Cloud .
gcloud
כדי להפעיל קישוריות יוצאת, מריצים את הפקודה הבאה:
gcloud beta sql instances patch INSTANCE_NAME \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
--project=PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של מכונת Cloud SQL עם Private Service Connect שרוצים להגדיר לקישוריות יוצאת.
- NETWORK_ATTACHMENT_URI: ה-URI של מחבר הרשת בפרויקט Google Cloud שבו רוצים להשתמש כדי להתחבר לממשק Private Service Connect של הרשת.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloudשבו אתם משתמשים.
כדי לוודא שהקישוריות היוצאת של Private Service Connect הופעלה, מריצים את הפקודה gcloud sql instances describe.
אם הפלט כולל את הערך psc-network-attachment-uri, סימן שהקישוריות של Private Service Connect לתעבורה יוצאת הופעלה בהצלחה.
REST v1
כדי להפעיל קישוריות יוצאת, מריצים את הפקודה הבאה:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
NETWORK_ATTACHMENT_URI: ה-URI של חיבור הרשת בפרויקט. INSTANCE_ID: השם של המכונה ב-Cloud SQL.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
"kind": "sql#settings"
}
},
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
REST v1beta4
כדי להפעיל קישוריות יוצאת, מריצים את הפקודה הבאה:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
NETWORK_ATTACHMENT_URI: ה-URI של חיבור הרשת בפרויקט. INSTANCE_ID: השם של המכונה ב-Cloud SQL.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
}
},
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
למידע על פתרון בעיות שקשורות לקישוריות יוצאת ב-Private Service Connect, קראו את המאמר פתרון בעיות ב-Private Service Connect.
השבתת החיבורים היוצאים במכונה של Cloud SQL
gcloud
כדי להשבית את הקישוריות החוצה, מריצים את הפקודה הבאה:
gcloud beta sql instances patch INSTANCE_NAME \
--clear-psc-network-attachment-uri \
--project=PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: השם של המכונה ב-Cloud SQL שמופעל בה Private Service Connect, שרוצים להגדיר לה קישוריות יוצאת.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloudשבו אתם משתמשים.
REST v1
כדי להשבית את הקישוריות החוצה, מריצים את הפקודה הבאה:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
NETWORK_ATTACHMENT_URI: ה-URI של חיבור הרשת בפרויקט. כדי להשבית, צריך להגדיר את הערךnull. INSTANCE_ID: השם של מכונת Cloud SQL.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": null,
"kind": "sql#settings"
}
},
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
REST v1beta4
כדי להשבית את הקישוריות החוצה, מריצים את הפקודה הבאה:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
NETWORK_ATTACHMENT_URI: ה-URI של חיבור הרשת בפרויקט. כדי להשבית, צריך להגדיר את הערךnull. INSTANCE_ID: השם של מכונת Cloud SQL.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings": {
"ipConfiguration": {
"pscConfig: {
"networkAttachmentUri": null,
"kind": "sql#settings"
}
},
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": USER,
"insertTime": "2025-05-13T20:44:23.064Z",
"operationType": "UPDATE",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID","
}
בדיקת הקישוריות
כדי לבדוק את הקישוריות הנכנסת למכונה של Cloud SQL שמופעל בה Private Service Connect, מגדירים את כתובת ה-IP של נקודת הקצה של Private Service Connect ככתובת ה-IP של היעד.
gcloud
כדי ליצור בדיקת קישוריות למכונה של Cloud SQL שמופעל בה Private Service Connect, משתמשים בפקודה gcloud network-management connectivity-tests create:
gcloud network-management connectivity-tests create CONNECTIVITY_TEST_NAME \ --source-instance=SOURCE_INSTANCE \ --destination-cloud-sql-instance=DESTINATION_CLOUD_SQL_INSTANCE \ --destination-network=DESTINATION_NETWORK \ --destination-port=DESTINATION_PORT \ --protocol=tcp \ --round-trip
מחליפים את הפרטים הבאים:
- CONNECTIVITY_TEST_NAME: השם של בדיקת הקישוריות.
- SOURCE_INSTANCE: ה-URI של המכונה ב-Compute Engine שבה נמצאת כתובת ה-IP של המקור (לדוגמה,
projects/myproject/zones/myzone/instances/myinstance). - DESTINATION_CLOUD_SQL_INSTANCE: כתובת ה-URL של מכונת Cloud SQL (לדוגמה,
projects/myproject/instances/myinstance). - DESTINATION_NETWORK: ה-URI של רשת ה-VPC שבה נמצאת כתובת ה-IP של היעד (לדוגמה,
projects/myproject/global/networks/mynetwork). - DESTINATION_PORT: מספר היציאה ששמור למכונה. במכונות של Cloud SQL ל-SQL Server, מספר היציאה הוא
1433.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט ב- Google Cloud שמכיל את המכונה.
- CONNECTIVITY_TEST_NAME: השם של בדיקת הקישוריות.
- SOURCE_IP_ADDRESS: כתובת ה-IP של מכונת המקור ב-Compute Engine.
- SOURCE_INSTANCE: ה-URI של המכונה ב-Compute Engine שבה נמצאת כתובת ה-IP של המקור (לדוגמה,
projects/myproject/zones/myzone/instances/myinstance). - SOURCE_NETWORK: ה-URI של רשת ה-VPC שבה נמצאת כתובת ה-IP של המקור (לדוגמה,
projects/myproject/global/networks/mynetwork). - DESTINATION_IP_ADDRESS: כתובת ה-IP של מכונת היעד ב-Cloud SQL.
- DESTINATION_PORT: מספר היציאה ששמור למכונה. במכונות של Cloud SQL ל-SQL Server, מספר היציאה הוא
1433. - DESTINATION_NETWORK: ה-URI של רשת ה-VPC שבה נמצאת כתובת ה-IP של היעד (לדוגמה,
projects/myproject/global/networks/mynetwork).
ה-method של ה-HTTP וכתובת ה-URL:
POST https://networkmanagement.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/connectivityTests?testId=CONNECTIVITY_TEST_NAME
תוכן בקשת JSON:
{
"source": {
"ipAddress": "SOURCE_IP_ADDRESS",
"instance": "SOURCE_INSTANCE",
"network": "SOURCE_NETWORK"
},
"destination": {
"ipAddress": "DESTINATION_IP_ADDRESS",
"port": DESTINATION_PORT,
"network": "DESTINATION_NETWORK",
"projectId": "PROJECT_ID"
},
"protocol": "TCP"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/global/operations/operation-OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata",
"createTime": "2024-05-23T16:43:49.313981473Z",
"target": "projects/PROJECT_ID/locations/global/connectivityTests/CONNECTIVITY_TEST_NAME",
"verb": "create",
"cancelRequested": false,
"apiVersion": "v1"
},
"done": false
}
מגבלות
אתם יכולים להגדיר עד 20 נקודות קצה של Private Service Connect שמחוברות לקובץ המצורף של השירות במכונה של Cloud SQL, כשהתכונה Private Service Connect מופעלת.
אם אתם צריכים להתחבר מרשתות VPC נוספות, אתם יכולים להשתמש בהפצת נקודות קצה של Private Service Connect דרך NCC. מידע נוסף זמין במאמר הפצה של נקודות קצה של Private Service Connect.
אפשר ליצור עד 64,512 חיבורים בו-זמנית באמצעות Private Service Connect למכונה של Cloud SQL.
הדגלים הבאים לא תקפים או מושפעים:
--no-assign-ip:צריך להשתמש בדגל הזה כי מכונות שמופעל בהן Private Service Connect לא תומכות בשימוש בסוגי קישוריות אחרים, כמו חיבורים של כתובות IP חיצוניות-
--authorized-networks:אי אפשר להשתמש בדגל הזה כדי להוסיף רשתות מורשות --network:אי אפשר להשתמש בדגל הזה כי הוא משויך לגישה לשירותים פרטיים-
--allocated-ip-range-name:אי אפשר להשתמש בדגל הזה כי אין תמיכה בשמות של טווחי כתובות IP מותרים
אי אפשר להגדיר מכונה שמופעל בה Private Service Connect כך שתשתמש בגישה לשירותים פרטיים או בחיבורים לכתובות IP חיצוניות.
- אי אפשר להפעיל חיבורים של כתובות IP חיצוניות במכונה שמופעל בה Private Service Connect.
- אי אפשר להפעיל גישה לשירותים פרטיים או להוסיף רשתות מורשות למכונה.
- אי אפשר לשנות את סוג הקישוריות של המכונה.
אי אפשר להשתמש בפקודה
gcloud sql connect, ב-Cloud Shell, ב-Cloud Build, ב-Database Migration Service או ב-Datastream כדי להתחבר למכונות של Cloud SQL שמופעל בהן Private Service Connect.כשבודקים את הקישוריות למכונה של Cloud SQL שמופעל בה Private Service Connect, אי אפשר להגדיר את הפריטים הבאים:
- כתובת ה-IP הפנימית או שם ה-DNS של המכונה כיעד ישיר
- המופע כמקור
- כתובת ה-IP של נקודת הקצה של Private Service Connect כמקור
אי אפשר להשתמש ברשתות מורשות כדי להוסיף לרשימת ההיתרים על סמך כתובת IP.
אין תמיכה בהוספה לרשימת היתרים שמבוססת על כתובת IP ונאכפת על ידי בקרת גישה מבוססת-הקשר.
במכונות Cloud SQL שמופעל בהן Private Service Connect, אין תמיכה בשירות מנוהל ל-Microsoft Active Directory (שנקרא גם "שירות מנוהל ל-Microsoft AD").
פתרון בעיות
בקטע הזה מפורט מידע על בעיות שקשורות למכונות של Cloud SQL שמופעל בהן Private Service Connect, וגם שלבים לפתרון הבעיות.
שגיאה פתרון בעיות החיבור לשירות של המכונה לא מקבל את נקודת הקצה של Private Service Connect. - בודקים את הסטטוס של נקודת הקצה.
gcloud
כדי לבדוק את הסטטוס, משתמשים בפקודה
gcloud compute forwarding-rules describe.gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ | grep pscConnectionStatus
מחליפים את הפרטים הבאים:
- ENDPOINT_NAME: השם של נקודת הקצה
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה (endpoint)
- REGION_NAME: שם האזור של נקודת הקצה (endpoint)
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של הפרויקט ב- Google Cloud שמכיל את נקודת הקצה של Private Service Connect
- REGION_NAME: שם האזור
- ENDPOINT_NAME: השם של נקודת הקצה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true } - מוודאים שהסטטוס של נקודת הקצה הוא
ACCEPTED. אם הסטטוס הואPENDING, המכונה לא מאפשרת לפרויקט Google Cloud שמכיל את נקודת הקצה. מוודאים שפרויקט הרשת שבו נוצרה נקודת הקצה מורשה. מידע נוסף זמין במאמר עריכת מכון שהופעלה בו Private Service Connect.
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: The resource 'projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME' was not foundהודעת השגיאה הזו יכולה להופיע כששומרים כתובת IP פנימית סטטית לנקודת הקצה (endpoint) של Private Service Connect. מוודאים שרשת המשנה שצוינה קיימת בפרויקט שצוין ב-URI. אם רוצים ליצור נקודת קצה בפרויקט שירות אבל להשתמש ברשת משנה מרשת VPC משותפת, צריך לציין את ה-URI של רשת המשנה ולהשתמש במזהה הפרויקט של הפרויקט המארח ב-URI. מידע נוסף זמין במאמר יצירת נקודת הקצה באופן ידני. ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: - The resource 'projects/PROJECT_ID/global/networks/NETWORK_NAME' was not foundהודעת השגיאה הזו יכולה להופיע כשיוצרים נקודת קצה (endpoint) של Private Service Connect באופן ידני. צריך לוודא שהרשת שצוינה קיימת בפרויקט שצוין ב-URI. אם רוצים ליצור נקודת קצה בפרויקט שירות אבל להשתמש ברשת VPC משותפת, צריך לציין את הרשת לפי ה-URI שלה ולהשתמש במזהה הפרויקט של הפרויקט המארח ב-URI. מידע נוסף זמין במאמר יצירת נקודת הקצה באופן ידני. Invalid consumer network status for PSC auto connection.רשת הצרכן לא מוגדרת נכון או לא מוגדרת בכלל, ולכן אין נקודת קצה זמינה שאפשר להתחבר אליה. כדי להתחבר לנקודת הקצה, צריך לבדוק את הסטטוס שלה ולתקן את השגיאה לפני שמנסים להתחבר שוב.
כדי לבדוק את הסטטוס של נקודת קצה, עיינו במאמר אחזור נקודת הקצה. הסטטוס של נקודת הקצה יכול להיות אחד מהבאים:-
CONNECTION_POLICY_MISSING: אין מדיניות תואמת לחיבורי שירות ברשת הצרכן. מדיניות החיבור לשירות מוגדרת לפי רשת ולפי אזור. כדי להגדיר מחדש את הרשת, קראו את המאמר עדכון מדיניות החיבור לשירות. -
CONSUMER_INSTANCE_PROJECT_NOT_ALLOWLISTED: יש מדיניות תואמת לחיבור לשירות, אבל השדה Service instance scope במדיניות לא מוגדר לאפשר חיבור למכונה הזו של Cloud SQL. מעדכנים את המדיניות כדי להגדיר את הערך של השדה Service instance scope (--producer-instance-location) עם הפרויקט, התיקייה או הארגון שבהם נמצא המכונה של Cloud SQL. כדי להגדיר מחדש את מדיניות החיבור לשירות, קראו את המאמר עדכון מדיניות החיבור לשירות. -
POLICY_LIMIT_REACHED: מדיניות החיבור לשירות הגיעה למגבלת נקודות הקצה שלה. כדי לפתור את הבעיה, צריך להגדיל את מגבלת נקודות הקצה על ידי עדכון המדיניות של חיבורי השירות.
No permission to create a service connection policy.אין לכם את ההרשאות הנדרשות כדי ליצור מדיניות חיבור לשירות. כדי ליצור מדיניות חיבור לשירות, צריך את התפקיד
Compute Network Admin IAM. למידע נוסף, קראו את המאמר תפקידים והרשאות.מחבר הרשת אינו יכול לקבל חיבורים מהממשק של Private Service Connect כשמשתמשים בקישוריות יוצאת של Private Service Connect. אם הרשת החיצונית לא יכולה לקבל חיבורים מממשק Private Service Connect, יכול להיות שכללי המדיניות של החיבורים במחבר הרשת לא מוגדרים נכון.
צריך להגדיר את מחברי הרשת כך שיקבלו את כל החיבורים באופן אוטומטי, או להגדיר אותם באופן ידני עם רשימה של חיבורים מקובלים. מידע נוסף זמין במאמר כללי מדיניות בנושא חיבורים.כדי לאמת את החיבורים שאושרו במחבר הרשת, משתמשים בפקודה הבאה:
gcloud compute network-attachments describe default --region=REGION_ID
אם הממשק של Private Service Connect לא נמצא ברשימת הממשקים שאושרו, מעדכנים את מחבר הרשת. מידע נוסף זמין במאמר ניהול של חיבורי רשת.
המאמרים הבאים
- מידע נוסף על כתובת IP פרטית
- מידע נוסף על Private Service Connect
- איך יוצרים עותק לקריאה בלבד של מכונה שמופעל בה Private Service Connect.
- מידע נוסף על שכפול מכונה שמופעל בה Private Service Connect
- איך מציגים את פרטי הסיכום של מכונות שמופעל בהן Private Service Connect
- איך מגדירים ואיך מסירים זמינות גבוהה במכונה שמופעל בה Private Service Connect.
- מידע נוסף על עריכה ומחיקה של מכונה שמופעל בה Private Service Connect.
- בודקים את הסטטוס של נקודת הקצה.