סקירה כללית
בדף הזה מוסבר איך להשתמש ב-Database Migration Service API כדי לנהל פרופילי חיבור למסד נתונים של PostgreSQL כמקור ול-PostgreSQL כיעד.
יש שתי דרכים להשתמש ב-API של Database Migration Service. אפשר לבצע קריאות ל-API בארכיטקטורת REST או להשתמש ב-Google Cloud CLI (CLI).
כדי לראות מידע כללי על השימוש ב-gcloud לניהול פרופילים של חיבורים ל-Database Migration Service, לוחצים כאן.
יצירת פרופיל חיבור למסד נתונים של PostgreSQL
בדוגמה הבאה מוצגת בקשה ליצירת פרופיל חיבור למסד נתונים של PostgreSQL כמקור.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
- connection-profile-id: מזהה פרופיל החיבור
- connection-profile-display-name: השם המוצג של פרופיל החיבור
- host-ip-address: כתובת ה-IP של המקור
- username: שם המשתמש במסד הנתונים
- password: הסיסמה של משתמש מסד הנתונים
- client-key: המפתח הפרטי הלא מוצפן בפורמט PEM של PKCS#1 או PKCS#8 שמשויך לאישור הלקוח. אם משתמשים בשדה הזה, חובה למלא את השדה
clientCertificate. - client-certificate: האישור בקידוד PEM של x509 שישמש את העותק המשוכפל לאימות מול שרת מסד הנתונים של המקור.אם משתמשים בשדה הזה, חובה להשתמש בשדה
clientKey. - ca-certificate: שדה חובה. אישור X.509 בקידוד PEM של רשות האישורים שחתמה על האישור של שרת מסד הנתונים של המקור. העותק ישתמש באישור הזה כדי לוודא שהוא מתחבר למארח הנכון.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
תוכן בקשת JSON:
{
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username",
"password": "password",
"ssl": {
"clientKey": "client-key",
"clientCertificate": "client-certificate",
"caCertificate": "ca-certificate"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
כדי לראות מידע כללי על השימוש ב-gcloud ליצירת פרופילים של חיבורים ל-Database Migration Service, לוחצים כאן.
אחרי שיוצרים את פרופיל החיבור, אפשר לראות את המידע עליו באמצעות הקריאה לשיטה connectionProfiles/get.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
- connection-profile-id: מזהה פרופיל החיבור
ה-method של ה-HTTP וכתובת ה-URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"createTime": "2019-12-22T16:17:37.159786963Z",
"updateTime": "2019-12-24T13:13:39.455857411Z",
"state": "READY",
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username"
}
}
gcloud
מידע נוסף על שימוש ב-gcloud כדי לאחזר מידע על פרופיל החיבור זמין כאן.
יצירת פרופיל חיבור למסד נתונים של Cloud SQL ל-PostgreSQL
בדוגמה הבאה מוצגת בקשה ליצירת פרופיל חיבור למסד נתונים של Cloud SQL ל-PostgreSQL כמקור. בדוגמה הזו נעשה שימוש בפרופיל חיבור של PostgreSQL כי הוא מתחבר למנוע מסד הנתונים של PostgreSQL ולא לשכבת הניהול של Cloud SQL.
כדי ליצור את ההתאמה בין המקור לבין העותק באמצעות Cloud SQL, צריך לספק את מזהה המכונה של מסד הנתונים ב-Cloud SQL. אפשר למצוא את הערך של מזהה המופע באמצעות ה-method databases/list של Cloud SQL Admin API.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
- connection-profile-id: מזהה פרופיל החיבור
- connection-profile-display-name: השם המוצג של פרופיל החיבור
- host-ip-address: כתובת ה-IP של המקור
- username: שם המשתמש במסד הנתונים
- password: הסיסמה של משתמש מסד הנתונים
- cloud-sql-instance-id: מזהה מופע Cloud SQL
ה-method של ה-HTTP וכתובת ה-URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
תוכן בקשת JSON:
{
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username",
"password": "password",
"cloud_sql_id": "cloud-sql-instance-id"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
כדי לראות מידע כללי על השימוש ב-gcloud ליצירת פרופילים של חיבורים ל-Database Migration Service, לוחצים כאן.
למידע נוסף על שימוש ב-gcloud כדי ליצור פרופיל חיבור למסד נתונים של Cloud SQL ל-PostgreSQL, אפשר ללחוץ כאן.
יצירת פרופיל חיבור ליעד Cloud SQL ל-PostgreSQL
בדוגמה הבאה מוצגת בקשה ליצירת פרופיל חיבור ליעד Cloud SQL ל-PostgreSQL. Database Migration Service משתמש במידע שבבקשה הזו כדי ליצור מכונה חדשה של Cloud SQL ל-PostgreSQL.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
- connection-profile-id: מזהה פרופיל החיבור
- connection-profile-display-name: השם המוצג של פרופיל החיבור
- database-version: גרסת מסד הנתונים. לדוגמה, POSTGRES_12.
- tier: סוג המכונה. לדוגמה, db-custom-1-4096.
- data-disk-type: סוג דיסק הנתונים. לדוגמה, PD_SSD.
- data-disk-size-gb: גודל דיסק הנתונים, ב-GB. לדוגמה, 20.
- zone: האזור באזור הפרויקט
- cmek_key_name: אופציונלי: הנתיב והשם המלאים של מפתח הצפנה בניהול הלקוח (CMEK). לדוגמה, "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key".
כל הנתונים שמאוחסנים ב- Google Cloud מוצפנים במצב לא פעיל באמצעות אותן מערכות מוקשחות לניהול מפתחות שבהן אנחנו משתמשים לנתונים המוצפנים שלנו. מערכות ניהול המפתחות האלה מספקות בקרות גישה מחמירות למפתחות וביקורת, ומצפינות את נתוני המשתמשים באחסון במצב מנוחה באמצעות תקני הצפנה של AES-256. לא נדרשת הגדרה, קביעת תצורה או ניהול. Google Cloudההצפנה במנוחה שמוגדרת כברירת מחדל היא הבחירה הטובה ביותר למשתמשים שאין להם דרישות ספציפיות שקשורות לתאימות או למיקום של חומר קריפטוגרפי.
אם אתם צריכים יותר שליטה במפתחות שמשמשים להצפנת נתונים במנוחה ב Google Cloud פרויקט, תוכלו להשתמש ב-Database Migration Service כדי להגן על הנתונים באמצעות מפתחות הצפנה שמנוהלים על ידכם ב-Cloud Key Management Service (KMS). מפתחות ההצפנה האלה נקראים מפתחות הצפנה בניהול הלקוח (CMEK). כשמגנים על נתונים ב-Database Migration Service באמצעות CMEK, מפתח ה-CMEK נמצא בשליטתכם.
הפרמטר cmek_key_name משויך ל-CMEK ש-Database Migration Service יכול להשתמש בו כדי להצפין נתונים שמועברים מהמקור ליעד. מפתח ה-CMEK מיוצג על ידי ה-placeholder customer-managed-encryption-key.
ה-placeholder ring מייצג את אוסף המפתחות של מפתח ה-CMEK. אוסף מפתחות מארגן מפתחות במיקום ספציפי ומאפשר לכם לנהל את בקרת הגישה לקבוצות של מפתחות. Google Cloud השם של אוסף המפתחות לא צריך להיות ייחודי בכל Google Cloud הפרויקט, אבל הוא חייב להיות ייחודי במיקום נתון. מידע נוסף על מחזיקי מפתחות זמין במאמר משאבי Cloud KMS.
במסגרת יצירת פרופיל החיבור, Database Migration Service יאמת שמפתח ה-CMEK קיים, וש-Database Migration Service קיבל הרשאות להשתמש במפתח.
אם אחד מהתנאים האלה לא מתקיים, תוחזר הודעת השגיאה הבאה:
CMEK_DOES_NOT_EXIST_OR_MISSING_PERMISSIONS
כדי לפתור את הבעיה, צריך לוודא שהמפתח שסיפקתם קיים, ושלחשבון השירות של Database Migration Service יש הרשאת cloudkms.cryptoKeys.get למפתח.
אם אתם מעדיפים להשתמש במערכת הפנימית לניהול מפתחות של Google Cloudבמקום במפתח CMEK כדי להצפין את הנתונים, אל תכללו את הפרמטר cmek_key_name והערך שלו בבקשת ה-API.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
תוכן בקשת JSON:
{
"displayName": "connection-profile-display-name",
"cloudsql": {
"settings": {
"databaseVersion": "database-version",
"tier": "machine-type",
"storageAutoResizeLimit": 0,
"activationPolicy": "ALWAYS",
"ipConfig":
{
"authorizedNetworks": [],
"enableIpv4": true,
"privateNetwork": null
},
"autoStorageIncrease": false,
"dataDiskType": "data-disk-type",
"dataDiskSizeGb": "data-disk-size",
"zone": "zone",
"sourceId": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"cmek_key_name": "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/locations/region/operations/operation-1591975557292-5a7e4b195623c-e350e3da-713dee7d",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T15:25:57.430715421Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
כדי לראות מידע כללי על השימוש ב-gcloud ליצירת פרופילים של חיבורים ל-Database Migration Service, לוחצים כאן.
קבלת מידע על פרופיל חיבור
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
- connection-profile-id: מזהה פרופיל החיבור
ה-method של ה-HTTP וכתובת ה-URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"createTime": "2019-12-22T16:17:37.159786963Z",
"updateTime": "2019-12-24T13:13:39.455857411Z",
"state": "READY",
"displayName": "connection-profile-display-name",
"postgres": {
"host": "host-ip-address",
"port": 5432,
"username": "username"
}
}
gcloud
מידע נוסף על שימוש ב-gcloud כדי לאחזר מידע על פרופיל החיבור זמין כאן.
הצגת רשימה של פרופילי קישור
בדוגמה הבאה מוצגת בקשה לאחזור מידע על כל פרופילי החיבור שלכם.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
orderBy:אפשר להשתמש במסנן הזה כדי לאחזר רשימה של כל פרופילי החיבור לאזור מסוים, לפי סדר אלפביתי. לדוגמה, המסנןorderBy=nameמחזיר את כל פרופילי החיבור, לפי סדר אלפביתי של השם.-
pageSize:משתמשים במסנן הזה כדי לציין את המספר המקסימלי של פרופילי חיבור ש-Database Migration Service מאחזר ומציג בדף. לדוגמה, אם מגדירים את הערךpageSize=10, Database Migration Service יחזיר עד 10 פרופילים של חיבורים לדף.
אם יש יותר מ-10 פרופילים של חיבורים, הם יופיעו בדפים אחרים. בסוף כל דף מופיעים פרמטר nextPageToken ומזהה ייחודי. משתמשים במזהה כדי לאחזר את רשימת פרופילי החיבור בדף הבא.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"connectionProfiles": [
{
"name": "projects/project-id/locations/region/connectionProfiles/name-of-first-connection-profile",
"createTime": "2019-12-22T16:17:37.159786963Z",
"updateTime": "2019-12-24T13:13:39.455857411Z",
"state": "READY",
"displayName": "display-name-of-first-connection-profile",
"postgres": {
"host": "host-ip-address-of-first-connection-profile",
"port": port-number-of-first-connection-profile,
"username": "username-of-first-connection-profile",
"password_set": "true"
}
}
{
"name": "projects/project-id/locations/region/connectionProfiles/name-of-second-connection-profile",
"createTime": "2020-11-21T19:22:25.153824963Z",
"updateTime": "2020-11-11T11:15:14.451046111Z",
"state": "READY",
"displayName": "display-name-of-second-connection-profile",
"postgres": {
"host": "host-ip-address-of-second-connection-profile",
"port": port-number-of-second-connection-profile,
"username": "username-of-second-connection-profile",
"password_set": "true"
}
}
]
}
gcloud
כאן אפשר לקבל מידע נוסף על השימוש ב-gcloud כדי לאחזר מידע על כל פרופילי החיבור.
עדכון פרופיל קישור
בדוגמה הבאה מוצגת בקשה לעדכון השדות של שם המשתמש והסיסמה בפרופיל חיבור קיים. כשמשתמשים בפרמטר updateMask בבקשה, צריך לכלול בגוף הבקשה רק את השדות האלה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
- connection-profile-id: מזהה פרופיל החיבור
- username: שם המשתמש במסד הנתונים
- password: הסיסמה של משתמש מסד הנתונים
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=postgres.username,postgres.password
תוכן בקשת JSON:
{
"postgres" {
"username": "username",
"password": "password"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
כאן אפשר לקרוא מידע נוסף על שימוש ב-gcloud כדי לעדכן את פרופיל החיבור.
מחיקת פרופיל קישור
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
- connection-profile-id: מזהה פרופיל החיבור
ה-method של ה-HTTP וכתובת ה-URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "delete",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
מידע נוסף על שימוש ב-gcloud למחיקת פרופיל החיבור זמין כאן.
מחיקת פרופיל קישור ומכונת Cloud SQL שמשויכת אליו
בדוגמה הבאה מוצגת בקשה למחיקת פרופיל חיבור ליעד, וגם מחיקה מדורגת של מכונת Cloud SQL המשויכת.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- region: האזור של הפרויקט
- connection-profile-id: מזהה פרופיל החיבור
ה-method של ה-HTTP וכתובת ה-URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?force=true
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165",
"metadata": {
"@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata",
"createTime": "2020-06-12T14:46:01.744267779Z",
"target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
gcloud
למידע נוסף על שימוש ב-gcloud כדי למחוק גם את פרופיל החיבור וגם את מכונת Cloud SQL המשויכת, אפשר ללחוץ כאן.