פרויקטים של 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
- הרשימה המפורטת של SQL Connect תפקידים
בחירת תפקידים כדי להפעיל תהליכי עבודה ספציפיים
תפקידי IAM מאפשרים לכם לנהל את הפרויקטים שלכם SQL Connect באמצעות תהליכי עבודה ב-CLI של Firebase.
| פקודת CLI, תהליך עבודה אחר | התפקידים הנדרשים |
|---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
מעקב אחרי ביצועי השירות SQL Connect
הסבר על ביצועי השירות
הביצועים של שירות SQL Connect ושל Cloud SQL לשירות 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
- עותקי קריאה
- כתובת IP פרטית של מופע
- זמינות גבוהה (ריבוי אזורים); יש תמיכה רק במופעים של אזור יחיד
- מהדורת Enterprise Plus
- גיבויים אוטומטיים
- הגדלת נפח האחסון באופן אוטומטי.
המגבלות של מסדי נתונים זמניים להצטרפות
כשמוסיפים את SQL Connect לפרויקט Firebase, אפשר להתחיל ליצור אב טיפוס של מודל הנתונים ולטעון נתונים באופן מיידי, כי הנתונים יאוחסנו במסד נתונים זמני. שימו לב: הקצאת Cloud SQL קבוע למופע PostgreSQL תימשך בין 5 ל-20 דקות. כל הנתונים הראשוניים שתטענו יועברו באופן אוטומטי למסד הנתונים הקבוע שלכם ב-PostgreSQL ברגע שהוא יוקצה.
מסד הנתונים הזמני הזה מצוין לבדיקת הסכימה ופעולות ה-CRUD.
אם לא רוצים להשתמש במסד הנתונים הזמני, צריך להמתין עד שהמופע Cloud SQL יוקצה.
מסד הנתונים הזמני הוא לא מסד נתונים של PostgreSQL, והוא לא מספק את כל התכונות של PostgreSQL.
המגבלות המשמעותיות הן:
- גודל מסד הנתונים צריך להיות קטן מ-1MB
- מספר השורות בכל טבלה צריך להיות קטן מ-1,000
- פחות משאילתה אחת לשנייה
- אין תמיכה בחיפוש טקסט מלא
- אין תמיכה ביצירת הטבעות וקטוריות
- אין תמיכה בתכונות SQL כמו
@view,@col(dataType)או SQL מקורי.
ניהול מופעים של Cloud SQL
באופן כללי, אפשר לנהל את המופעים של Cloud SQL באמצעות מסוף Google Cloud כדי לבצע את תהליכי העבודה הבאים.
עצירה והפעלה מחדש של מכונות Cloud SQL
יצירה ומחיקה של Cloud SQL מסדי נתונים (בתוך מופעים)
להפעיל מופעים של מסד נתונים של PostgreSQL עם פלאגים ולהשתמש במגוון הרחבות
מעקב אחר הביצועים באמצעות Cloud SQLתכונות של יכולת צפייה במסוף Google Cloud
ניהול הגישה והאבטחה באמצעות תכונות כמו IAM, secret manager, הצפנת נתונים ו-auth proxyCloud SQL
הוספה, מחיקה וניהול של משתמשי Cloud SQL.
למידע על תהליכי עבודה כאלה ואחרים, אפשר לעיין במסמכי התיעוד של Cloud SQL ל-PostgreSQL.
הקצאת תפקידים למשתמשים ב-PostgreSQL
SQL Connect מספק כלים לניהול גישת משתמשים בהתאם לעקרון ההרשאות המינימליות (הענקת ההרשאות המינימליות הנדרשות לכל משתמש או חשבון שירות כדי לתמוך בפונקציונליות הנדרשת) ולמושג בקרת גישה מבוססת-תפקידים (RBAC) (עם תפקידים מוגדרים מראש לניהול הרשאות מסד נתונים, שמפשטים את ניהול האבטחה).
במקרים מסוימים, יכול להיות שתרצו להתחבר ישירות למסד הנתונים SQL Connect שמנוהל על ידי Cloud SQL באמצעות לקוח SQL לבחירתכם, למשל Cloud Run, Cloud Functions או GKE.
כדי לאפשר חיבורים כאלה, צריך להעניק הרשאות SQL באמצעות:
- מקצים את תפקיד
roles/cloudsql.clientIAM למשתמש או לחשבון השירות שצריכים להתחבר למופע, דרך מסוף 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
תהליך העבודה לשילוב מסד נתונים קיים כולל בדרך כלל את השלבים הבאים:
במהלך SQL Connect הגדרת הפרויקט במסוף Firebase, בוחרים את המכונה ואת מסד הנתונים.
באמצעות Firebase CLI, מריצים את הפקודה
firebase dataconnect:sql:setupומסרבים לאפשר ל-SQL Connect לטפל בהעברות של SQL.כדי למנוע שינויים בסכימת מסד הנתונים שלא מבוססים על כלי ההתאמה האישית, הפקודה
setupתקצה תפקידי קריאה וכתיבה מתאימים, אבל לא את התפקידowner. מידע נוסף על הפקודהsetupועל תפקידים ב-PostgreSQL זמין במדריך העזר ל-CLI של Firebase.כותבים SQL Connect סכימת GraphQL שתואמת לסכימת מסד הנתונים.
אפשר לפרוס את סכימת ה-GraphQL, השאילתות והמוטציות רק אם סכימת ה-GraphQL תואמת לסכימת ה-PostgreSQL.
כדי לפשט את ההתאמה בין שתי הסכימות, אנחנו מספקים את הפקודה
firebase dataconnect:sql:diff, שתספק לכם את הצהרות ה-SQL הנדרשות להעברת מסד הנתונים. אפשר להשתמש בזה כדי לשפר את סכמת ה-GraphQL באופן איטרטיבי כך שתתאים לסכמת מסד הנתונים הקיימת.בהמשך, תוכלו לבצע איטרציות במהירות בסכימת GraphQL, בשאילתות ובמוטציות בסביבת הפיתוח המקומית. אחרי שתהיו מרוצים מהתוצאה, תוכלו להשתמש ב-
firebase dataconnect:sql:diffכדי לקבל את הצהרות ההעברה של SQL שאפשר להחיל על PostgreSQL באמצעות הכלים ותהליכי העבודה המותאמים אישית שלכם.אפשרות אחרת היא לבצע שינויים ישירות במסד הנתונים של PostgreSQL, ואז לנסות להעביר אותם בחזרה לסכימת ה-GraphQL. אנחנו ממליצים על גישת GraphQL-first, כי יכול להיות שיהיו מקרים שבהם לא תהיה תמיכה בשינויים בסכימה. בנוסף, אם אתם פורסים שינויים שגורמים לסכימת PostgreSQL להיות לא תואמת לשאילתות או למוטציות של מחברים שנפרסו, יכול להיות שהמחברים האלה יפסיקו לפעול או יתנהגו בצורה לא תקינה.