Google Cloud CLI for Java כולל שרת פיתוח מקומי לבדיקת האפליקציה במחשב. שרת הפיתוח המקומי מדמה את סביבת זמן הריצה של Java ב-App Engine ואת כל השירותים שלה, כולל Datastore.
הפעלת שרת פיתוח להצגה באינטרנט (development web server)
מידע על הגדרת מאפייני המערכת ומשתני הסביבה של האפליקציה זמין במאמר איך בקשות מטופלות.
אפשר גם להריץ את שרת פיתוח להצגה באינטרנט (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) מדמה את מאגר הנתונים באמצעות מאגר נתונים מקומי במחשב שלכם שמגובה בקובץ. מאגר הנתונים נקרא 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- המזהים מוקצים מרצף לא חוזר של מספרים שלמים שמפוזרים באופן אחיד בקירוב.
מדיניות ברירת המחדל במאגר הנתונים המקומי היא 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
כשהאפליקציה שלכם משתמשת ב-URL Fetch API כדי לשלוח בקשת HTTP, שרת פיתוח להצגה באינטרנט (development web server) שולח את הבקשה ישירות מהמחשב שלכם. יכול להיות שההתנהגות תהיה שונה מאשר כשהאפליקציה פועלת ב-App Engine אם משתמשים בשרת proxy כדי לגשת לאתרים.
מסוף הפיתוח
שרת פיתוח להצגה באינטרנט כולל אפליקציית אינטרנט של מסוף. אפשר לעיין ב-Datastore המקומי באמצעות המסוף.
כדי לגשת למסוף, עוברים לכתובת ה-URL /_ah/admin בשרת:
http://localhost:8080/_ah/admin
ארגומנטים בשורת הפקודה
אפשרויות הפקודה של שרת הפיתוח המקומי מפורטות כאן.