Google Cloud CLI for Java כולל שרת פיתוח מקומי לבדיקת האפליקציה במחשב. שרת הפיתוח המקומי מדמה את סביבת זמן הריצה של Java ב-App Engine ואת כל השירותים שלה, כולל Datastore.
הפעלת שרת האינטרנט לפיתוח
מידע על הגדרת מאפייני המערכת ומשתני הסביבה של האפליקציה זמין במאמר איך בקשות מטופלות.
אפשר גם להריץ את שרת פיתוח להצגה באינטרנט (development web server) משורת הפקודה. הפקודה להרצה נמצאת בספרייה google-cloud-sdk/bin/ של ה-SDK.
תחביר הפקודות ב-Windows:
google-cloud-sdk\bin\java_dev_appserver.cmd [options] [WAR_DIRECTORY_LOCATION]
תחביר פקודות ב-Linux או ב-macOS:
google-cloud-sdk/bin/java_dev_appserver.sh [options] [WAR_DIRECTORY_LOCATION]
הפקודה מקבלת את המיקום של ספריית ה-WAR של האפליקציה כארגומנט.
הפסקת שרת הפיתוח
כדי לעצור את שרת האינטרנט, מקישים על Ctrl-C.
זיהוי סביבת זמן הריצה של האפליקציה
כדי לקבוע אם הקוד שלכם פועל בסביבת הייצור או בשרת הפיתוח המקומי, אתם יכולים לבדוק את הערך של השיטה SystemProperty.environment.value(). לדוגמה:
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
// Production
} else {
// Local development server
// which is: SystemProperty.Environment.Value.Development
}
שימוש באמולטור Datastore מקומי
שרת פיתוח להצגה באינטרנט (development web server) מדמה את Datastore באמצעות Datastore מקומי במחשב שלכם שמגובה בקובץ. מאגר הנתונים נקרא local_db.bin, והוא נוצר בספריית ה-WAR של האפליקציה, בספרייה WEB-INF /appengine-generated/. הוא לא מועלה עם הבקשה.
ה-Datastore נשמר בין הפעלות של שרת האינטרנט, כך שהנתונים שאתם מאחסנים בו עדיין יהיו זמינים בפעם הבאה שתפעילו את שרת האינטרנט. כדי לנקות את התוכן של ה-Datastore, צריך לכבות את השרת ואז למחוק את הקובץ הזה.
כפי שמתואר בתצורת האינדקסים של מאגר הנתונים, שרת הפיתוח יכול ליצור תצורה לאינדקסים של מאגר הנתונים שהאפליקציה צריכה, על סמך השאילתות שהיא מבצעת בזמן שאתם בודקים אותה. הפעולה הזו יוצרת קובץ בשם datastore-indexes-auto.xml בספרייה WEB-INF/appengine-generated/ ב-WAR. כדי להשבית את התצורה האוטומטית של האינדקס, יוצרים או עורכים את הקובץ datastore-indexes.xml בספרייה WEB-INF/, באמצעות המאפיין autoGenerate="false" לרכיב <datastore-indexes>.
גלישה ב-Datastore בשרת הפיתוח
כדי לעיין במאגר הנתונים המקומי באמצעות שרת פיתוח להצגה באינטרנט (development web server):
- מפעילים את שרת הפיתוח כמו שמתואר למעלה.
- נכנסים אל מסוף הפיתוח.
- בחלונית הניווט הימנית, לוחצים על Datastore Viewer כדי לראות את התוכן של Datastore המקומי.
מודל העקביות של Cloud Datastore
כברירת מחדל, מאגר הנתונים המקומי מוגדר כך שאחוז הכתיבות במאגר הנתונים שלא מוצגות מיד בשאילתות גלובליות מוגדר ל-10%.
כדי לשנות את רמת העקביות הזו, מגדירים את מאפיין המערכת datastore.default_high_rep_job_policy_unapplied_job_pct עם ערך שמתאים לרמת מודל עקביות הדרגתי שרוצים שהאפליקציה תראה.
-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20
אם מגדירים את המאפיין הזה באמצעות שורת הפקודה java_dev_appserver.sh, צריך להשתמש ב---jvm_flag=... כדי להגדיר את המאפיין:
google_cloud_sdk/bin/java-dev_appserver.sh --jvm_flag=-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20
הטווח התקין של datastore.default_high_rep_job_policy_unapplied_job_pct הוא בין 0 ל-100. אם תשתמשו במספרים מחוץ לטווח הזה, תקבלו שגיאה.
ציון המדיניות להקצאת מזהים אוטומטית
אתם יכולים להגדיר איך מאגר הנתונים המקומי Datastore מקצה מזהי ישויות אוטומטיים.
שרת הפיתוח תומך במדיניות הבאה של הקצאת מזהים אוטומטית:
sequential- המזהים מוקצים מרצף של מספרים שלמים עוקבים.
scattered- המזהים מוקצים מרצף לא חוזר של מספרים שלמים שמפוזרים באופן אחיד בקירוב.
מדיניות ברירת המחדל ב-Datastore המקומי היא scattered.
כדי לציין את מדיניות המזהים האוטומטית, מגדירים את מאפיין המערכת datastore.auto_id_allocation_policy לערך sequential או לערך scattered.
-Ddatastore.auto_id_allocation_policy=scattered
כדי להגדיר את מאפיין המערכת הזה באמצעות דגל שמועבר לפקודת המאקרו dev_appserver:
java_dev_appserver --jvm_flag=-Ddatastore.auto_id_allocation_policy=scattered
סימולציה של חשבונות משתמשים
שרת פיתוח להצגה באינטרנט (development web server) מדמה חשבונות Google עם דפי כניסה ויציאה משלו. כשמפעילים אותו בשרת פיתוח להצגה באינטרנט (development web server), השיטות שיוצרות כתובות URL לכניסה וליציאה מחזירות כתובות URL ל-/_ah/login ול-/_ah/logout בשרת המקומי.
דף הכניסה לפיתוח כולל טופס שבו אפשר להזין כתובת אימייל. בסשן שלכם, כתובת האימייל שתזינו תשמש כמשתמש הפעיל.
כדי שהאפליקציה תזהה את המשתמש המחובר כאדמין, צריך לסמן את התיבה 'כניסה כאדמין' בטופס.
שימוש בשירות אחזור של כתובות אתרים
כשמשתמשים ב-URL Fetch API כדי לשלוח בקשת HTTP, שרת פיתוח להצגה באינטרנט (development web server) שולח את הבקשה ישירות מהמחשב. יכול להיות שההתנהגות תהיה שונה מאשר כשהאפליקציה פועלת ב-App Engine אם משתמשים בשרת proxy כדי לגשת לאתרי אינטרנט.
מסוף הפיתוח
שרת פיתוח להצגה באינטרנט (development web server) כולל אפליקציית אינטרנט של קונסולה. באמצעות המסוף אפשר לעיין במאגר הנתונים המקומי.
כדי לגשת למסוף, עוברים לכתובת ה-URL /_ah/admin בשרת:
http://localhost:8080/_ah/admin
ארגומנטים בשורת הפקודה
אפשרויות הפקודה של שרת הפיתוח המקומי מפורטות כאן.