במאמר הזה מוסבר איך להגדיר את Private Service Connect לחיבורים לרשת הפרטית של מכונות Cloud SQL.
אחרי שמגדירים את Private Service Connect ואת נקודות הקצה שלו, אתם ולקוחות האפליקציה יכולים להתחבר למופע Cloud SQL ראשי או לכל אחד מהרפליקות לקריאה שלו ממספר רשתות ענן וירטואלי פרטי (VPC) ששייכות לקבוצות, לצוותים, לפרויקטים או לארגונים שונים. אפשר גם להגדיר שמות DNS לכל מופע או שמות DNS גלובליים עבור חיבורי לקוח שמבוססים על שם DNS. זה שימושי במקרים של יתירות כשל ותוכנית התאוששות מאסון (DR).
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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 email address for a Google Account.
- 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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
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 email address for a Google Account.
- 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.
-
If you're using an external identity provider (IdP), you must first 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 Client. אם אתם מתחברים ישירות, אתם לא צריכים תפקידים והרשאות של ניהול זהויות והרשאות גישה (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 שמופעל עבור המכונה, ומגדירים את המכונה כך שייווצרו נקודות קצה (endpoints) של Private Service Connect באופן אוטומטי.
אחזור נקודת הקצה של המכונה. כך תוכלו להשתמש בנקודת הקצה כדי להתחבר למכונה.
יצירת מדיניות של חיבור לשירות
אפשר ליצור מדיניות חיבור לשירות באמצעות מסוף Google Cloud , ה-CLI של gcloud או ה-API.
המסוף
נכנסים לדף Private Service Connect במסוף Google Cloud .
לוחצים על הכרטיסייה Connection Policies (מדיניות חיבור).
לוחצים על Create connection policy.
מזינים שם למדיניות החיבור.
מציינים את מחלקת השירות:
- בקטע סוג שירות המקור, בוחרים באפשרות שירותי Google.
- בתפריט 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.iam.gserviceaccount.com.-
צריך להעניק לסוכן השירות של 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 מופעל עבור המכונה, ולהגדיר את המכונה כך שייווצרו נקודות קצה (endpoints) באופן אוטומטי באמצעות 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 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.אם פרויקט מסוים לא מופיע ברשימה הזו, אי אפשר ליצור בו נקודות קצה (endpoints) של 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: הסיסמה של משתמש Cloud SQL
root. - AVAILABILITY_TYPE: סוג הזמינות האזורית של המכונה. משתמשים בפרמטר הזה כדי להפעיל או להשבית את הזמינות הגבוהה של המכונה, על ידי ציון אחד מהערכים הבאים:
-
REGIONAL: מאפשר זמינות גבוהה ומומלץ למופעי ייצור. המופע עובר לזמינות בעוד אזור באזור שבחרתם. -
ZONAL: לא מספק אפשרות מעבר. זה ערך ברירת המחדל.
מידע נוסף על הגדרה והסרה של זמינות גבוהה למופעים זמין במאמרים הגדרת זמינות גבוהה למופע קיים והשבתת זמינות גבוהה למופע.
-
- ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים או מספרי פרויקטים מותרים, שמהם נקודות קצה של Private Service Connect יכולות להתחבר למכונות של Cloud SQL.
אם הפרויקט לא מופיע ברשימה, אי אפשר ליצור בו נקודות קצה של Private Service Connect כדי להתחבר למכונה.
-
CONSUMER_PROJECT: הפרויקט שבו נוצרה נקודת הקצה של Private Service Connect. אם אתם משתמשים ברשת VPC משותפת, זה יכול להיות הפרויקט המארח או פרויקט השירות.
כל הפרויקטים שציינתם בפרמטרים של החיבור האוטומטי נוספים אוטומטית לפרויקטים המורשים. אם רוצים ליצור נקודות קצה של 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 של נקודת קצה גלובלית לכתיבה:
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.
למחוק את השינויים
כדי למחוק את השינויים:
- כדי להשבית את ההגנה מפני מחיקה, מגדירים את הארגומנט
deletion_protectionבקובץ התצורה של Terraform לערךfalse.deletion_protection = "false"
- מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:terraform apply
-
כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה:terraform destroy
אחזור נקודת הקצה (endpoint)
אפשר לאחזר את כתובת ה-IP הפנימית, שהיא נקודת הקצה (endpoint) של 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: רשימה של הפרויקטים המורשים למופע. אתם יכולים ליצור נקודות קצה של 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 פנימית לנקודת הקצה (endpoint) של 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 של קובץ ה-Service Attachment ואת הפרויקטים שמותרים למופע.
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
כדי ליצור נקודת קצה מסוג 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.
מוודאים שכתובת ה-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 שמכיל את נקודת הקצה של 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 או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: שם האזור של נקודת הקצה
בתשובה, מוודאים שכתובת 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 הפרויקט שמכיל את נקודת הקצה
- 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 הפרויקט שמכיל את נקודת הקצה
- REGION_NAME: שם האזור של נקודת הקצה
- 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
שרת ה-proxy ל-Cloud SQL Auth הוא מחבר שמספק גישה מאובטחת למכונה עם 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, מפעילים את פרוקסי האימות כך:
./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. הקובץ הבינארי שמורידים תלוי במערכת ההפעלה, ובגרעין (kernel) של מערכת ההפעלה – 32 סיביות או 64 סיביות. רוב החומרות החדשות יותר משתמשות בליבה של 64 ביט.
אם אתם לא בטוחים אם במחשב שלכם פועל ליבת 32 ביט או 64 ביט, אתם יכולים להשתמש בפקודה uname -a ב-Linux או ב-macOS. למידע על Windows, אפשר לעיין במאמרי העזרה של Windows.
הפעלת Cloud SQL Auth Proxy
Cloud SQL Auth Proxy תומך בחיבורים למכונות שמופעל בהן Private Service Connect. מידע נוסף זמין במאמר הפעלת שרת proxy ל-Cloud SQL Auth.
- לצפות בסיכום מידע על מכונת 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.
מגדירים את שרת ה-proxy ל-Cloud SQL Auth באמצעות שם ה-DNS של Private Service Connect של המכונה, ושם ה-DNS של נקודת הקצה (endpoint) של 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.
בסביבות הנתמכות האלה של שרתים וירטואליים, יש תמיכה גם במחברי שפות ל-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.
משיגים את מזהה הפרויקט של הדייר (tenant) ב-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, שרוצים להגדיר בשבילה קישוריות יוצאת.
שומרים את הערך של מזהה פרויקט הדייר (tenant) כדי לכלול אותו בהמשך ברשימה של מזהי הפרויקטים המקובלים. ההרשאה הזו נדרשת כשיוצרים או מעדכנים חיבור לרשת בפרויקט ב- 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 פנימית סטטית לנקודת הקצה של 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: יש מדיניות תואמת של חיבור לשירות, אבל השדה היקף המופע של השירות במדיניות לא מוגדר כך שיאפשר חיבור למופע הזה של 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 מופעל.
- בודקים את הסטטוס של נקודת הקצה.