בדף הזה מופיעים מידע ודוגמאות לחיבור למופע Cloud SQL משירות שפועל בסביבה הרגילה של App Engine.
Cloud SQL הוא שירות מנוהל של מסד נתונים, שבעזרתו אפשר ליצור, לתחזק ולנהל מסדי נתונים רלציוניים בענן.
App Engine היא פלטפורמה מנוהלת ללא שרת (serverless) לפיתוח ולאירוח של אפליקציות אינטרנט בהיקף נרחב. אתם יכולים לבחור מבין כמה שפות, ספריות ומסגרות פופולריות כדי לפתח את האפליקציות שלכם, ואז לאפשר ל-App Engine לטפל בהקצאת שרתים ובשינוי גודל המופעים של האפליקציה בהתאם לדרישה.
הגדרת מופע של Cloud SQL
- אם עדיין לא עשיתם את זה, מפעילים את Cloud SQL Admin API בפרויקט שממנו מתחברים: Google Cloud
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - יצירת מופע של Cloud SQL ל-SQL Server. מומלץ לבחור
מיקום של מופע Cloud SQL באותו אזור שבו נמצא שירות Cloud Run, כדי לשפר את זמן האחזור, להימנע מחלק מהעלויות של הרשת ולהפחית את הסיכון לכשלים חוצי-אזורים.
כברירת מחדל, Cloud SQL מקצה כתובת IP ציבורית למכונה חדשה. יש לכם גם אפשרות להקצות כתובת IP פרטית. מידע נוסף על אפשרויות הקישוריות לשניהם זמין בדף סקירה כללית על חיבורים.
- כשיוצרים את המכונה, אפשר לבחור את
היררכיית אישורי השרת (CA) עבור המכונה, ואז להגדיר את ההיררכיה כ-
serverCaModeעבור המכונה. צריך לבחור באפשרות CA לכל מופע (GOOGLE_MANAGED_INTERNAL_CA) כמצב CA של השרת למופעים שרוצים להתחבר אליהם מאפליקציות אינטרנט בסביבה רגילה של App Engine.
הגדרת סביבה רגילה של App Engine
השלבים להגדרת סביבת App Engine סטנדרטית תלויים בסוג כתובת ה-IP שהקציתם למופע Cloud SQL.כתובת IP ציבורית (ברירת מחדל)
סביבת App Engine standard תומכת בחיבור ל-Cloud SQL ל-SQL Server דרך כתובת IP ציבורית באמצעות מחברי Go, Java ו-Python.
כדי להגדיר את הסביבה הסטנדרטית של App Engine כך שתאפשר חיבורים למופע Cloud SQL באמצעות כתובת IP ציבורית:- מוודאים שלמופע יש כתובת IP ציבורית. אפשר לבדוק את זה בדף Overview של המופע בGoogle Cloud מסוף. אם אתם צריכים להוסיף כתובת IP ציבורית, תוכלו להיעזר בהוראות שבמאמר הגדרת כתובת IP ציבורית.
- מאחזרים את INSTANCE_CONNECTION_NAME של המופע. אפשר למצוא את הערך הזה בדף Overview של המופע בGoogle Cloud מסוף או על ידי הפעלת הפקודה הבאה של
gcloud sql instances describe: מחליפים את INSTANCE_NAME בשם של מופע Cloud SQL.gcloud sql instances describe INSTANCE_NAME
מחליפים את המשתנה INSTANCE_NAME בשם המכונה.
מוודאים שלחשבון השירות שבו האפליקציה משתמשת כדי לאמת קריאות ל-Cloud SQL יש
Cloud SQL Clientתפקיד IAM.הוראות מפורטות להוספת תפקידי IAM לחשבון שירות זמינות במאמר הקצאת תפקידים לחשבונות שירות.
חשבון השירות של App Engine שמוגדר כברירת מחדל נוצר באופן אוטומטי כשמשתמשים ב-App Engine. הזהות של חשבון השירות היא בפורמט PROJECT_ID@appspot.gserviceaccount.com.
אם חשבון השירות שנותן את ההרשאה שייך לפרויקט אחר מהמכונה של Cloud SQL, צריך להוסיף את Cloud SQL Admin API ואת הרשאות ה-IAM לשני הפרויקטים.
כתובת IP פרטית
אם חשבון השירות שמוגדרים לו הרשאות שייך לפרויקט אחר מזה שמכיל את מכונת Cloud SQL, צריך לבצע את הפעולות הבאות:
- בכל אחד מהפרויקטים, מפעילים את Cloud SQL Admin API.
- מוסיפים את הרשאות ה-IAM לחשבון השירות בפרויקט שמכיל את מכונת Cloud SQL.
- מוודאים שלמכונת Cloud SQL שנוצרה קודם יש כתובת IP פרטית. אם אתם צריכים להוסיף כתובת IP פרטית, תוכלו להיעזר בהוראות שבמאמר הגדרת כתובת IP פרטית.
- יוצרים מחבר של חיבור לרשת (VPC) מאפליקציית serverless באותה רשת VPC שבה נמצאת מכונת Cloud SQL. חשוב לשים לב לתנאים הבאים:
- אלא אם אתם משתמשים ב- VPC משותף, המחבר צריך להיות באותו פרויקט ובאותו אזור כמו המשאב שמשתמש בו, אבל הוא יכול לשלוח תעבורה למשאבים באזורים שונים.
- חיבור לרשת (VPC) מאפליקציית serverless תומך בתקשורת עם רשתות VPC שמחוברות באמצעות Cloud VPN וקישור בין רשתות שכנות (peering) של VPC.
- חיבור לרשת (VPC) מאפליקציית serverless לא תומך ברשתות מדור קודם.
- מגדירים את הסביבה הרגילה של App Engine לשימוש במחבר.
- מתחברים באמצעות כתובת ה-IP הפרטית והיציאה של המופע
1433.
התחברות ל-Cloud SQL
אחרי שמגדירים את סביבת App Engine standard, אפשר להתחבר למופע Cloud SQL.
כתובת IP ציבורית (ברירת מחדל)
בנתיבי כתובות IP ציבוריות, סביבת App Engine standard מספקת הצפנה ומתחברת באמצעות המחברים של Cloud SQL.
התחברות באמצעות מחברים של Cloud SQL
מחברי Cloud SQL הם ספריות ספציפיות לשפה שמספקות הצפנה והרשאה מבוססת-IAM כשמתחברים למופע Cloud SQL.
Python
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Java
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
הערה:
- המשתנה CLOUD_SQL_CONNECTION_NAME צריך להיות מיוצג בתור <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>
- דרישות הגרסה של JDBC socket factory עבור הקובץ pom.xml מפורטות כאן .
Go
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Node.js
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
כתובת IP פרטית
בנתיבי IP פרטיים, האפליקציה מתחברת ישירות למופע דרך רשת VPC. בשיטה הזו נעשה שימוש ב-TCP כדי להתחבר ישירות למכונה של Cloud SQL בלי להשתמש בשרת proxy ל-Cloud SQL Auth.
התחברות באמצעות TCP
מתחברים באמצעות כתובת ה-IP הפרטית של מופע Cloud SQL כמארח ויציאה 1433.
Python
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Java
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
הערה:
- המשתנה CLOUD_SQL_CONNECTION_NAME צריך להיות מיוצג בתור <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>
- השימוש בארגומנט ipTypes=PRIVATE יגרום ל-SocketFactory להתחבר עם כתובת IP פרטית שמשויכת למופע.
- אפשר לעיין בדרישות הגרסה של JDBC socket factory עבור הקובץ pom.xml.
Node.js
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Go
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
C#
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Ruby
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
PHP
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
שיטות מומלצות ומידע נוסף
אפשר להשתמש בשרת proxy ל-Cloud SQL Auth כשבודקים את האפליקציה באופן מקומי. הוראות מפורטות מופיעות במדריך לתחילת העבודה עם שרת proxy ל-Cloud SQL Auth.
מאגרי חיבורים
יכול להיות שהחיבורים למסדי הנתונים הבסיסיים ינותקו, על ידי שרת מסד הנתונים עצמו או על ידי התשתית הבסיסית. כדי לצמצם את הסיכון הזה, מומלץ להשתמש בספריית לקוח שתומכת במאגרי חיבורים ובחיבור מחדש אוטומטי.
מגבלות על חיבורים
בכל מופע של App Engine שפועל בסביבה סטנדרטית, יכולות להיות עד 100 חיבורים בו-זמניים למופע. באפליקציות PHP 5.5, המגבלה היא 60 חיבורים בו-זמנית. המגבלה הזו חלה על כל מופע של אפליקציה. כלומר, לכל מופע של אפליקציית App Engine יכולים להיות כל כך הרבה חיבורים למסד הנתונים, וככל שהאפליקציה גדלה, מספר החיבורים הכולל לכל פריסה יכול לגדול. מידע נוסף זמין במאמר בנושא שינוי גודל של רכיבים.
אפשר להגביל את המספר המקסימלי של החיבורים שנעשה בהם שימוש בכל מכונה באמצעות מאגר חיבורים. דוגמאות מפורטות יותר להגבלת מספר החיבורים זמינות בדף ניהול חיבורים למסד נתונים.
אפליקציות App Engine כפופות למגבלות זמן לבקשות, בהתאם לשימוש ולסביבה. מידע נוסף על ניהול מכונות זמין במאמרים על סביבות סטנדרטית ו גמישה של App Engine.
מגבלות מכסת API
App Engine מספק מנגנון שמתחבר באמצעות שרת proxy ל-Cloud SQL Auth, שמשתמש ב-Cloud SQL Admin API. מגבלות מכסת ה-API חלות על שרת proxy ל-Cloud SQL Auth. כש-Cloud SQL Admin API מתחיל, הוא משתמש במכסה של שניים ובממוצע של שניים לשעה לאחר מכן. מכסת ברירת המחדל היא 180 לדקה לכל משתמש. אפליקציות App Engine כפופות גם למכסות ולמגבלות נוספות, כפי שמתואר בדף מכסות App Engine.