שימוש ב-Database Migration Service API

ב-Database Migration Service יש ממשק API בארכיטקטורת REST לניהול פרופילי החיבור ומשימות ההעברה באופן פרוגרמטי. ‫API בארכיטקטורת REST מוגדר על ידי משאבים שמשויכים ליצירה ולניהול של פרופילי חיבור ומשימות העברה. פרטים על כל המשאבים והשיטות שלהם זמינים ב מאמרי העזרה של Database Migration Service API.

כששולחים בקשות ישירות ל-API בארכיטקטורת REST של Database Migration Service, צריך ליצור את הבקשה בפורמט הנכון, לאשר את הבקשה כמשתמש מאומת ולעבד את התגובות שמוחזרות. בהרבה מהמשימות במסמכי התיעוד האלה יש דוגמאות ל-API באמצעות cURL.

דוגמאות נוספות לשימוש בממשקי ה-API מופיעות בדף של הבקשה במאמרי העזרה של Database Migration Service API. בכל דף יש דוגמאות לקריאה ל-API בכמה שפות תכנות, וגם כלי Explorer ספציפי לבקשה, שעוזר לכם לראות מה נכלל בבקשה תקינה ולמה לצפות בתגובה.

אתם משתמשים ב-Database Migration Service API גם באופן עקיף, כשאתם משתמשים באחת מהדרכים הבאות לניהול מכונות:

היתרון בשימוש בשיטות האלה, במיוחד במסוף Google Cloud , הוא שהן יכולות לפשט מאוד את ניהול פרופילי החיבור ומשימות ההעברה (בהתאם לתרחיש לדוגמה). אם אתם רק מתחילים להשתמש ב-Database Migration Service, מומלץ להתחיל עם אחד מהכלים האלה לפני שתעבדו ישירות עם ה-API בארכיטקטורת REST.

הפעלת ה-API

כדי להשתמש ב-Database Migration Service API, צריך להפעיל אותו:

המסוף

  1. מפעילים את Database Migration Service API.
  2. בוחרים את הפרויקט הרצוי.
  3. לוחצים על המשך.

gcloud

  1. מזינים את הפקודה הבאה כדי להציג את מזהי הפרויקטים שלכם ב- Google Cloud:
    gcloud projects list
  2. מגדירים את פרויקט ברירת המחדל:
    gcloud config set project YOUR_PROJECT_ID
  3. מפעילים את Database Migration Service API:
    gcloud services enable datamigration.googleapis.com

הרשאות

כדי להשתמש ב-Database Migration Service API, צריך את ההרשאות הנדרשות. ההרשאות האלה כוללות:

  • אדמין של Database Migration: הרשאה שנותנת למשתמש גישה לכל המשאבים של Database Migration Service שמשמשים לניהול פרופילי קישור ומשימות העברה.
  • צפייה בהעברת מסדי נתונים: ההרשאה הזו נותנת למשתמש גישה לקריאה בלבד לפרופילי החיבור ולמשימות ההעברה ב-Database Migration Service.
  • אדמין ב-AlloyDB: עם ההרשאה הזו, המשתמש יכול ליצור ולנהל אשכולות ומכונות של AlloyDB ל-PostgreSQL כיעד ל-Database Migration Service.

‫Google Cloud כולל את הפתרון "ניהול זהויות והרשאות גישה (IAM)", שמאפשר לתת גישה פרטנית יותר למשאבים ספציפיים ב-Google Cloud ולמנוע גישה לא רצויה למשאבים אחרים. אפשר לקבל ולהגדיר הרשאות ל-Database Migration Service באמצעות מסוף Google Cloud , ה-methods של IAM ב-API או Google Cloud CLI. מידע נוסף זמין במאמר הענקה, שינוי וביטול של גישה למשאבים.

הזנת נתוני JSON מקובץ

כשמשתמשים ב-API עם cURL, מספקים את ערכי המאפיינים באמצעות שורת הפקודה. אם אתם עובדים עם ערכים רגישים כמו סיסמאות או מפתחות אבטחה, הזנה שלהם בשורת הפקודה מהווה סיכון אבטחה. כדי לשפר את האבטחה, אתם יכולים ליצור קובץ שמכיל את נתוני ה-JSON לקריאה ל-API, ולספק את הנתיב לקובץ בשורת הפקודה.

כדי לספק נתוני JSON לקריאה ל-API ב-cURL מקובץ:

  1. יוצרים קובץ שמכיל את כל מה שמופיע במירכאות בודדות בשדה --data.

    צריך לכלול את הסוגריים המסולסלים, אבל לא את הגרשיים.

  2. בשורת הפקודה, מציינים את הנתיב לקובץ, לפני התו @, בתור הפרמטר --data:

    --data @<path-to-file>/<filename>

דוגמה: יצירת פרופיל חיבור למקור PostgreSQL

כדי ליצור פרופיל חיבור למסד נתונים של מקור ב-PostgreSQL, יוצרים קובץ בשם request.json עם התוכן הבא:

{
  "displayName": "PostgreSQL source connection profile",
  "ROLE": "SOURCE",
  "postgresql": {
    "host": "198.51.100.1",
    "port": 5432,
    "username": "migration_admin",
    "password": "MIGRATION_PASSWORD",
    "ssl": {
      "type": "SERVER_ONLY",
      "caCertificate": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"
    }
  }
}

לאחר מכן, שולחים את בקשת ה-cURL הבאה בשורת הפקודה:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data @./request.json \
     -X POST \
     "https://datamigration.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/connectionProfiles?connectionProfileId=SOURCE_PROFILE_ID"

דוגמה: יצירת פרופיל חיבור ליעד ב-AlloyDB

כדי ליצור פרופיל חיבור לאשכול יעד קיים של AlloyDB ל-PostgreSQL, יוצרים קובץ בשם destination_profile.json עם התוכן הבא:

{
  "displayName": "AlloyDB destination connection profile",
  "role": "DESTINATION",
  "postgresql": {
    "alloydbClusterId": "ALLOYDB_CLUSTER_ID",
    "username": "DESTINATION_USER",
    "password": "DESTINATION_PASSWORD"
  }
}

לאחר מכן, שולחים את בקשת ה-cURL הבאה בשורת הפקודה:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data @./destination_profile.json \
     -X POST \
     "https://datamigration.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/connectionProfiles?connectionProfileId=DESTINATION_PROFILE_ID"

דוגמה: יצירת משימת העברה רציפה מ-PostgreSQL ל-AlloyDB

כדי ליצור משימת העברה רציפה ל-AlloyDB ל-PostgreSQL, יוצרים קובץ בשם migration_job.json עם התוכן הבא:

{
  "displayName": "PostgreSQL to AlloyDB continuous migration job",
  "type": "CONTINUOUS",
  "source": "projects/PROJECT_ID/locations/REGION/connectionProfiles/SOURCE_PROFILE_ID",
  "destination": "projects/PROJECT_ID/locations/REGION/connectionProfiles/DESTINATION_PROFILE_ID"
}

לאחר מכן, שולחים את בקשת ה-cURL הבאה בשורת הפקודה:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data @./migration_job.json \
     -X POST \
     "https://datamigration.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/migrationJobs?migrationJobId=MIGRATION_JOB_ID"

עבודה עם קריאות ל-API שנמשכות זמן רב

יכול להיות שיעבור קצת זמן עד להשלמת קריאות מסוימות ל-API, כמו יצירת אובייקטים. מכיוון שה-API הוא אסינכרוני, הקריאה חוזרת באופן מיידי, גם אם הפעולה עדיין מתבצעת. אם קריאה ל-API שמתבצעת לאחר מכן משתמשת באובייקט החדש שנוצר, צריך להמתין עד שהפעולה הראשונה תסתיים לפני שממשיכים.

אתם יכולים להשתמש ב-Database Migration Service API כדי לנהל פעולות. למשל:

‫Database Migration Service ו-Google APIs Discovery Service

Google APIs Discovery Service הוא שירות שמאפשר לגלות ממשקי API של Google. לדוגמה, כשאתם משתמשים בכלי Google APIs Explorer, אתם משתמשים ב-Discovery Service.

ב-Discovery Service, ‏Database Migration Service מיוצג בתור "datamigration" (לדוגמה: https://datamigration.googleapis.com/$discovery/rest?version=v1).