ניהול שירותים ומסדי נתונים של SQL Connect

פרויקטים של SQL Connect מורכבים משני רכיבי תשתית עיקריים:

  • מופע שירות אחד או יותר של SQL Connect
  • מכונה אחת או יותר של Cloud SQL ל-PostgreSQL

במדריך הזה מוסבר איך להגדיר ולנהל את SQL Connectהמופעים של השירות, ומוצגות דרכים לניהול המופעים המשויכים של Cloud SQL.

הגדרת אזורים ב-Firebase SQL Connect

בפרויקטים שמשתמשים ב-SQL Connect נדרשת הגדרת מיקום.

כשיוצרים SQL Connect מופע שירות חדש, מוצגת בקשה לבחור את מיקום השירות.

מיקומים זמינים

אפשר ליצור שירותי SQL Connect באזורים הבאים.

  • asia-east1
  • ‫asia-east2
  • ‫asia-northeast1
  • ‫asia-northeast2
  • ‫asia-northeast3
  • ‫asia-south1
  • ‫asia-southeast1 (לא זמין לתקופות ניסיון של תוכניות Spark)
  • ‫asia-southeast2 (לא זמין לתקופות ניסיון של תוכנית Spark)
  • ‫australia-southeast1
  • ‫australia-southeast2
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • ‫europe-west2
  • europe-west3
  • europe-west4
  • ‫europe-west6
  • europe-west8
  • europe-west9
  • me-west1
  • northamerica-northeast1
  • northamerica-northeast2
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4

ניהול מופעים של שירות SQL Connect

יצירת שירותים

כדי ליצור שירות חדש, משתמשים במסוף Firebase או מריצים את האתחול של הפרויקט המקומי באמצעות Firebase CLI. תהליכי העבודה האלה יוצרים שירות חדש של SQL Connect.

בנוסף, תהליכי העבודה האלה כוללים הנחיות לגבי:

  • הקצאת מופע חדש של Cloud SQL (רמת שירות ללא עלות)
  • קישור מכונה קיימת של Cloud SQL ל-SQL Connect (תוכנית Blaze)

ניהול משתמשים

SQL Connect מספק כלים לניהול גישת משתמשים בהתאם לעקרון ההרשאות המינימליות (הענקת ההרשאות המינימליות הנדרשות לכל משתמש או חשבון שירות כדי לתמוך בפונקציונליות הנדרשת) ולמושג בקרת גישה מבוססת-תפקידים (RBAC) (עם תפקידים מוגדרים מראש לניהול הרשאות מסד הנתונים, כדי לפשט את ניהול האבטחה).

כדי להוסיף חברים בפרויקט כמשתמשים שיכולים לשנות מופעים של SQL Connect‎ בפרויקט, משתמשים במסוף Firebase כדי לבחור תפקידי משתמש מוגדרים מראש שמתאימים למטרה.

התפקידים האלה מעניקים הרשאות באמצעות ניהול זהויות והרשאות גישה (IAM). תפקיד הוא אוסף של הרשאות. כשמקצים תפקיד לחבר בפרויקט, מעניקים לו את כל ההרשאות שהתפקיד מכיל. מידע נוסף זמין במאמרים הבאים:

בחירת תפקידים להפעלת תהליכי עבודה ספציפיים

תפקידי IAM מאפשרים להשתמש בתהליכי עבודה של Firebase CLI כדי לנהל את הפרויקטים שלכם ב-SQL Connect.

פקודת CLI, תהליך עבודה אחר התפקידים הנדרשים
firebase init dataconnect
  • אין הרשאות (אם לא מקשרים מופע של Cloud SQL)
  • ‫roles/cloudsql.admin (כשיוצרים מכונה של Cloud SQL)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • roles/cloudsql.admin
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • ‫roles/cloudsql.admin במכונת Cloud SQL של היעד
firebase dataconnect:sql:grant
  • ‫roles/cloudsql.admin במכונת היעד של Cloud SQL

מעקב אחרי ביצועי השירות SQL Connect

הסבר על ביצועי השירות

הביצועים של שירות SQL Connect ושל שירות Cloud SQL for PostgreSQL יכולים להשפיע על החוויה שלכם.

  • לשירות Cloud SQL ל-PostgreSQL, אפשר לעיין בהנחיות הכלליות במסמכי המידע בנושא מכסות ומגבלות.
  • בשירות SQL Connect יש מכסה לבקשות GraphQL, שמשפיעה על הקצב שבו אפשר לבצע קריאות ולהריץ שאילתות:

    • מכסה של 24,000 בקשות GraphQL לדקה לכל פרויקט בכל אזור

    אם תגיעו למגבלות האלה, תוכלו לפנות אל התמיכה של Firebase כדי לשנות את המכסה הרלוונטית.

מעקב אחרי הביצועים, השימוש והחיוב של שירותים

אתם יכולים לעקוב אחרי בקשות, שגיאות ושיעורי פעולות, גם באופן גלובלי וגם לפי פעולה במסוף Firebase.

ניהול מכונות של Cloud SQL

מגבלות על תקופת ניסיון בחינם

התכונות הבאות של Cloud SQL ל-PostgreSQL לא נתמכות בתקופות הניסיון בחינם של Spark או Blaze:

  • מדרגת מכונה שונה מ-db-f1-micro
  • שינוי משאבים של המופע, כמו אזור, אחסון, זיכרון ומעבד (CPU)
  • גרסאות PostgreSQL אחרות מלבד 15.x
  • Read replicas
  • כתובת IP פרטית של מכונה
  • זמינות גבוהה (ריבוי אזורים); יש תמיכה רק במופעים של אזור יחיד
  • מהדורת Enterprise Plus
  • גיבויים אוטומטיים
  • הגדלת נפח האחסון באופן אוטומטי.

המגבלות של מסדי נתונים זמניים להצטרפות

כשמוסיפים את SQL Connect לפרויקט Firebase, אפשר להתחיל ליצור אב טיפוס של מודל הנתונים ולטעון נתונים באופן מיידי, כי הנתונים יאוחסנו במסד נתונים זמני. שימו לב: הקצאת מכונת Cloud SQL ל-PostgreSQL הקבועה תימשך בין 5 ל-20 דקות. כל הנתונים הראשוניים שתטענו יועברו באופן אוטומטי למסד הנתונים הקבוע שלכם ב-PostgreSQL ברגע שהוא יוקצה.

מסד הנתונים הזמני הזה מצוין לבדיקת הסכימה ופעולות ה-CRUD.

אם אתם לא רוצים להשתמש במסד הנתונים הזמני, אתם צריכים לחכות עד שהמופע של Cloud SQL יוקצה.

מסד הנתונים הזמני הוא לא מסד נתונים של PostgreSQL, והוא לא מספק את כל התכונות של PostgreSQL.

המגבלות המשמעותיות הן:

  • גודל מסד הנתונים צריך להיות קטן מ-1MB
  • מספר השורות בכל טבלה צריך להיות קטן מ-1,000
  • פחות משאילתה אחת לשנייה
  • אין תמיכה בחיפוש טקסט מלא
  • אין תמיכה ביצירת הטמעות וקטוריות
  • אין תמיכה בתכונות SQL כמו @view,‏ @col(dataType) או native SQL.

ניהול מכונות Cloud SQL

באופן כללי, אפשר לנהל את מכונות Cloud SQL באמצעות מסוף Google Cloud כדי לבצע את תהליכי העבודה הבאים.

  • השבתה והפעלה מחדש של מכונות Cloud SQL

  • יצירה ומחיקה של מסדי נתונים ב-Cloud SQL (בתוך מכונות)

  • להפעיל מופעים של מסד נתונים של PostgreSQL עם דגלים ולהשתמש במגוון הרחבות

  • מעקב אחרי הביצועים באמצעות תכונות הנראות של Cloud SQL במסוף Google Cloud

  • ניהול הגישה והאבטחה ב-Cloud SQL באמצעות תכונות כמו IAM, ניהול סודות, הצפנת נתונים ושרת proxy לאימות

  • הוספה, מחיקה וניהול של משתמשי Cloud SQL.

למידע על תהליכי עבודה נוספים, אפשר לעיין במסמכי Cloud SQL ל-PostgreSQL.

הקצאת תפקידים למשתמשים ב-PostgreSQL

SQL Connect מספק כלים לניהול גישת משתמשים בהתאם לעקרון ההרשאות המינימליות (הענקת ההרשאות המינימליות הנדרשות לכל משתמש או חשבון שירות כדי לתמוך בפונקציונליות הנדרשת) ולמושג בקרת גישה מבוססת-תפקידים (RBAC) (עם תפקידים מוגדרים מראש לניהול הרשאות מסד הנתונים, כדי לפשט את ניהול האבטחה).

במקרים מסוימים, יכול להיות שתרצו להתחבר ישירות למסד הנתונים ב-Cloud SQL שמנוהל על ידי SQL Connect באמצעות לקוח SQL לבחירתכם, למשל Cloud Run,‏ Cloud Functions או GKE.

כדי לאפשר חיבורים כאלה, צריך להעניק הרשאות SQL באמצעות:

  • מקצים את תפקיד roles/cloudsql.client IAM למשתמש או לחשבון השירות שצריכים להתחבר למופע, דרך מסוף Google Cloud או באמצעות gcloud CLI
  • הענקת תפקיד PostgreSQL נדרש באמצעות Firebase CLI

הקצאת תפקיד IAM ב-Cloud SQL

מידע על עבודה עם Cloud SQL ל-PostgreSQL כדי להקצות תפקיד IAM‏ roles/cloudsql.client זמין במאמר תפקידים והרשאות.

הקצאת תפקידים ב-PostgreSQL

באמצעות CLI של Firebase, אפשר להעניק תפקידים מוגדרים מראש של PostgreSQL למשתמשים או לחשבונות שירות שמשויכים לפרויקט באמצעות הפקודה firebase dataconnect:sql:grant.

לדוגמה, כדי להעניק את תפקיד בעל הרשאת כתיבה, מריצים את הפקודה הזו באמצעות Firebase CLI:

firebase dataconnect:sql:grant --role writer

פרטים נוספים זמינים במדריך העזר ל-CLI של Firebase.

שילוב של מסדי נתונים קיימים של Cloud SQL ל-PostgreSQL

זרימת ההקצאה והניהול של מסד הנתונים שמוגדרת כברירת מחדל מניחה שהפרויקט שלכם משתמש במסדי נתונים חדשים (greenfield), וכשמפעילים את firebase deploy,‏ SQL Connect יציג את השינויים בסכימת מסד הנתונים שצריך לבצע ויבצע את ההעברות אחרי שתאשרו.

אם יש לכם מסד נתונים קיים (brownfield), יכול להיות שיש לכם תהליך עבודה משלכם לניהול סכימות, ואתם לא יכולים להשתמש בכלים של SQL Connect להעברות, אבל אתם רוצים להשתמש במסד הנתונים שלכם בפרויקט SQL Connect כדי ליהנות מהיתרונות של יצירת SDK לנייד ולאינטרנט, הרשאה מבוססת-שאילתות, ניהול חיבורים של לקוחות ועוד.

בקטע הזה מוסבר איך לשלב מסדי נתונים קיימים עם SQL Connect.

שילוב מסד נתונים קיים בפרויקט SQL Connect

תהליך העבודה לשילוב מסד נתונים קיים כולל בדרך כלל את השלבים הבאים:

  1. במהלך הגדרת הפרויקט במסוף Firebase, בוחרים את המופע ואת מסד הנתונים.SQL Connect

  2. באמצעות Firebase CLI, מריצים את הפקודה firebase dataconnect:sql:setup ומסרבים לאפשר ל-SQL Connect לטפל בהעברות של SQL.

    כדי למנוע שינויים בסכימת מסד הנתונים שלא נובעים מהכלים המותאמים אישית שלכם, הפקודה setup תקצה תפקידי קריאה ובעל הרשאת כתיבה מתאימים, אבל לא את התפקיד owner. מידע נוסף על הפקודה setup ועל תפקידים ב-PostgreSQL זמין במדריך העזר ל-CLI של Firebase.

  3. כותבים SQL Connect סכימת GraphQL שתואמת לסכימת מסד הנתונים.

    אפשר לפרוס את סכימת GraphQL, השאילתות והמוטציות רק אם סכימת GraphQL תואמת לסכימת PostgreSQL.

    כדי לפשט את ההתאמה בין שתי הסכימות, אנחנו מספקים את הפקודה firebase dataconnect:sql:diff, שתספק לכם את הצהרות ה-SQL הנדרשות להעברת מסד הנתונים. אתם יכולים להשתמש בזה כדי לשפר את סכמת ה-GraphQL באופן איטרטיבי כך שתתאים לסכמת מסד הנתונים הקיימת שלכם.

  4. מעכשיו, תוכלו לבצע איטרציות במהירות בסכימת GraphQL, בשאילתות ובמוטציות בסביבת הפיתוח המקומית. אחרי שתהיו מרוצים מהתוצאה, תוכלו להשתמש ב-firebase dataconnect:sql:diff כדי לקבל את הצהרות ההעברה של SQL שאפשר להחיל על PostgreSQL באמצעות הכלים והתהליכים המותאמים אישית שלכם.

  5. אפשרות אחרת היא לבצע שינויים ישירות במסד הנתונים של PostgreSQL, ואז לנסות להעביר אותם בחזרה לסכימת GraphQL. אנחנו ממליצים על גישת GraphQL-first, כי יכולים להיות מקרים שבהם לא תהיה תמיכה בשינויים בסכימה. בנוסף, אם תפרסו שינויים שגורמים לסכימת PostgreSQL להיות לא תואמת לשאילתות או למוטציות של מחברים שנפרסו, יכול להיות שהמחברים האלה יפסיקו לפעול או יתנהגו בצורה לא תקינה.