בדף הזה מופיעים מידע ודוגמאות להתחברות למכונה של Cloud SQL משירות שפועל בסביבה גמישה ב-App Engine.
Cloud SQL הוא שירות מנוהל של מסד נתונים, שבעזרתו אפשר ליצור, לתחזק ולנהל מסדי נתונים רלציוניים בענן.
App Engine היא פלטפורמה מנוהלת ללא שרת (serverless) לפיתוח ולאירוח של אפליקציות אינטרנט בקנה מידה נרחב. אתם יכולים לבחור מבין כמה שפות, ספריות וסביבות פיתוח פופולריות כדי לפתח את האפליקציות שלכם, ואז לתת ל-App Engine לטפל בהקצאת השרתים ובהתאמה לעומס (scaling) של המכונות של האפליקציה לפי הצורך.
הגדרת מכונה של Cloud SQL
- מפעילים את Cloud SQL Admin API בפרויקט ב- Cloud de Confiance שממנו מתחברים, אם עדיין לא עשיתם את זה:
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים - יוצרים מכונה של Cloud SQL ל-MySQL. כדי לשפר את זמן האחזור, להימנע מעלויות מסוימות של רשתות ולהפחית את הסיכונים לכשלים בין אזורים, מומלץ לבחור
מיקום למכונה של Cloud SQL באותו אזור שבו נמצא השירות של הסביבה הגמישה ב-App Engine.
כברירת מחדל, Cloud SQL מקצה כתובת IP ציבורית למכונה חדשה. אפשר גם להקצות כתובת IP פרטית. למידע נוסף על אפשרויות הקישוריות של שניהם, קראו את הדף סקירה כללית על התחברות.
- כשיוצרים את המכונה, אפשר לבחור את
ההיררכיה של אישור השרת (CA) של המכונה, ואז להגדיר את ההיררכיה בתור
serverCaModeשל המכונה. כדי להתחבר למכונות מאפליקציות אינטרנט בסביבה גמישה ב-App Engine, צריך לבחור באפשרות של רשות אישורים לכל מכונה (GOOGLE_MANAGED_INTERNAL_CA) כמצב של רשות האישורים של השרת.
הגדרת סביבה גמישה ב-App Engine
השלבים להגדרת סביבה גמישה ב-App Engine משתנים בהתאם לסוג כתובת ה-IP שהקציתם למכונה של Cloud SQL.כתובת IP ציבורית (ברירת מחדל)
כדי להגדיר את סביבה גמישה ב-App Engine כך שתאפשר חיבורים למכונה של Cloud SQL:
- מוודאים שלמכונה יש כתובת IP ציבורית. אפשר לוודא את זה בדף Overview של המכונה במסוףCloud de Confiance . אם אתם צריכים להוסיף כתובת IP, תוכלו להיעזר בהוראות שבדף הגדרת כתובת IP ציבורית.
- משיגים את INSTANCE_CONNECTION_NAME של המכונה. אפשר למצוא את הערך הזה בדף Overview של המכונה במסוףCloud de Confiance , או על ידי הרצת הפקודה הבאה של
gcloud sql instances describe: מחליפים את INSTANCE_NAME בשם של המכונה ב-Cloud SQL.gcloud sql instances describe INSTANCE_NAME
מוודאים שלחשבון השירות שבו האפליקציה משתמשת כדי לאמת קריאות ל-Cloud SQL יש את תפקיד ה-IAM
Cloud SQL Client.הוראות מפורטות להוספת תפקידי IAM לחשבון שירות מופיעות במאמר הקצאת תפקידים לחשבונות שירות.
כברירת מחדל, האפליקציה תאשר את החיבורים באמצעות
חשבון השירות של סביבה גמישה ב-App Engine. חשבון השירות הוא בפורמט PROJECT_ID@appspot.s3ns-system.iam.gserviceaccount.com.
אם חשבון השירות שנותן את ההרשאה שייך לפרויקט אחר מזה של המכונה של Cloud SQL, צריך להוסיף את Cloud SQL Admin API ואת הרשאות ה-IAM לשני הפרויקטים.
app.yaml של הפרויקט עם האפשרות שהכי מתאימה.
אפשר להשתמש ברשימה מופרדת בפסיקים של מופעים כדי לציין כמה אפשרויות בבת אחת.
הפעלת שקע דומיין של Unix
כדי להפעיל שקע דומיין של Unix, מוסיפים את אחת מהאפשרויות הבאות לקובץ app.yaml של הפרויקט, בהתאם למספר המכונות שאליהן מתחברים:
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME,INSTANCE_CONNECTION_NAME_2,...
הפעלת יציאת TCP
כדי להפעיל יציאת TCP מקומית, מוסיפים את אחת מהאפשרויות הבאות לקובץapp.yaml של הפרויקט, בהתאם למספר המכונות שאליהן מתחברים:
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME=tcp:PORT
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME_1=tcp:PORT_1,INSTANCE_CONNECTION_NAME_2=tcp:PORT_2,...
כתובת IP פרטית
כדי להתחבר למכונה של Cloud SQL באמצעות כתובת IP פרטית, הפריסה של הסביבה הגמישה ב-App Engine צריכה להיות באותה רשת VPC שבה נמצאת המכונה של Cloud SQL. במסמכי התיעוד של ההגדרות בנושא הגדרות רשת מוסבר איך לציין רשת VPC לפריסה.
אחרי הפריסה, האפליקציה תוכל להתחבר ישירות באמצעות כתובת ה-IP הפרטית של המכונה ויציאה 3306.
התחברות ל-Cloud SQL
אחרי שמגדירים את הסביבה הגמישה ב-App Engine, אפשר להתחבר למכונה של Cloud SQL.
כתובת IP ציבורית (ברירת מחדל)
בנתיבים של כתובות IP ציבוריות, סביבה גמישה ב-App Engine מספקת הצפנה ומתחברת באמצעות Cloud SQL Auth Proxy בשלוש דרכים:
- באמצעות שקעי TCP
- דרך שקעי Unix
- באמצעות מחבר של Cloud SQL
כתובת IP פרטית
התחברות באמצעות TCP
מתחברים באמצעות כתובת ה-IP הפרטית של מכונת Cloud SQL כמארח וליציאה 3306.
Python
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין ב-README ב-GitHub.
Java
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, עיינו ב-README ב-GitHub.
הערה:
- INSTANCE_CONNECTION_NAME צריך להיות מיוצג בתור <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>
- השימוש בארגומנט ipTypes=PRIVATE יאלץ את SocketFactory להתחבר לכתובת ה-IP הפרטית שמשויכת למכונה
- דרישות הגרסה של JDBC socket factory לקובץ pom.xml
Node.js
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין ב-README ב-GitHub.
המשך
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין ב-README ב-GitHub.
C#
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין ב-README ב-GitHub.
Ruby
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין ב-README ב-GitHub.
PHP
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין ב-README ב-GitHub.
שיטות מומלצות ומידע נוסף
אתם יכולים להשתמש ב-Cloud SQL Auth Proxy כשאתם בודקים את האפליקציה באופן מקומי. הוראות מפורטות מופיעות במאמר התחלה מהירה: שימוש ב-Cloud SQL Auth Proxy.
מאגרי חיבורים
יכול להיות שהחיבורים למסדי הנתונים הבסיסיים ינותקו, על ידי שרת מסד הנתונים עצמו או על ידי התשתית הבסיסית. כדי לצמצם את הבעיה, מומלץ להשתמש בספריית לקוח שתומכת במאגרי חיבורים ובחיבור מחדש באופן אוטומטי.
מגבלות על החיבורים
לכל מכונה של App Engine שפועלת בסביבה סטנדרטית יכולים להיות עד 100 חיבורים בו-זמניים למכונה. באפליקציות PHP 5.5, המגבלה היא 60 חיבורים בו-זמניים. המגבלה הזו חלה על כל מופע של אפליקציה. כלומר, לכל מכונה של אפליקציית App Engine יכול להיות מספר כזה של חיבורים למסד הנתונים, וככל שהיא תתרחב, המספר הכולל של החיבורים לכל פריסה יכול לגדול. מידע נוסף זמין במאמר שינוי קנה מידה של רכיבים.
אתם יכולים להגביל את מספר החיבורים המקסימלי לכל מכונה באמצעות מאגר חיבורים. דוגמאות מפורטות יותר להגבלת מספר החיבורים מופיעות בדף ניהול החיבורים למסד הנתונים.
באפליקציות של App Engine יש מגבלות זמן על בקשות, בהתאם לשימוש ולסביבה. מידע נוסף זמין במאמרים על ניהול מכונות בסביבת ברירת המחדל ב-App Engine standard ובסביבה הגמישה.
מגבלות המכסות של ה-API
ב-App Engine יש מנגנון שמתחבר באמצעות Cloud SQL Auth Proxy, שמשתמש ב-Cloud SQL Admin API. מגבלות המכסות של ה-API חלות על Cloud SQL Auth Proxy. כשמפעילים את Cloud SQL Admin API, הוא משתמש במכסה של שתי בקשות, ואחר כך בממוצע של שתי בקשות לשעה. מכסת ברירת המחדל היא 180 לדקה לכל משתמש. אפליקציות של App Engine כפופות גם למכסות ולמגבלות נוספות, כמו שמפורט בדף מכסות של App Engine.