Google Cloud CLI כולל שרת פיתוח מקומי (dev_appserver.py). אתם יכולים להשתמש בשרת הפיתוח המקומי כדי לדמות את הפעלת אפליקציית App Engine בסביבת ייצור, וגם כדי לגשת לשירותים מקובצים מדור קודם של App Engine. הסביבה המדומה אוכפת חלק מההגבלות של ארגז החול, כמו פונקציות מערכת מוגבלות וייבוא של מודולים של שפת זמן ריצה, אבל לא הגבלות אחרות, כמו פסק זמן של בקשות או מכסות.
שרת הפיתוח המקומי גם מדמה את השירותים שמסופקים על ידי הספריות ב-SDK של App Engine, כולל Datastore, Memcache ו-Task Queues, על ידי ביצוע המשימות שלהם באופן מקומי. כשהאפליקציה פועלת בשרת הפיתוח, עדיין אפשר לבצע קריאות ל-API מרחוק לתשתית הייצור באמצעות נקודות הקצה של Google API HTTP.
הגדרת שרת פיתוח מקומי
כדי להריץ את כלי שרת הפיתוח המקומי, צריך להגדיר את הדברים הבאים:
- מוודאים שהתקנתם רכיב תרגום של Python 3 שתואם לגרסת Python שנדרשת על ידי ה-CLI של gcloud.
מוודאים שהתקנתם את רכיב Google Cloud CLI שכולל את התוסף App Engine ל-Python 3 (
app-engine-python):gcloud components listאם הרכיב
app-engine-pythonלא מותקן, מריצים את הפקודה הבאה:gcloud components install app-engine-pythonמריצים את הפקודה הבאה כדי למצוא את נתיב ההתקנה של Google Cloud SDK:
gcloud infoהפקודה מחזירה את ספריית הבסיס שבה התקנתם את Google Cloud SDK, לדוגמה:
Installation Root: [/Users/myname/google-cloud-sdk]מאתרים את הכלי
dev_appserver.pyבתיקייה/bin/שבה התקנתם את Google Cloud CLI, לדוגמה:CLOUD_SDK_ROOT/bin/dev_appserver.pyחשוב לרשום את הנתיב אל
dev_appserver.pyכדי להשתמש בו בהמשך.
הפעלת שרת הפיתוח המקומי
אחרי ההגדרה של שרת הפיתוח המקומי ויצירת קובץ ההגדרות app.yaml של האפליקציה, אפשר להשתמש בפקודה dev_appserver.py כדי להריץ את האפליקציה באופן מקומי.
כדי להפעיל את שרת הפיתוח המקומי:
-
בספרייה שמכילה את קובץ התצורה
app.yaml, מריצים את הפקודהdev_appserver.py.מציינים את נתיב הספרייה לאפליקציה, לדוגמה:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py [PATH_TO_YOUR_APP]אפשר גם לציין את קובץ ההגדרות של שירות מסוים, לדוגמה:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py app.yamlכדי לשנות את היציאה, כוללים את האפשרות
--port:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --port=9999 [PATH_TO_YOUR_APP] - שרת הפיתוח המקומי פועל עכשיו ומאזין לבקשות. אפשר להיכנס לכתובת http://localhost:8080/ בדפדפן האינטרנט כדי לראות את האפליקציה בפעולה.
אם ציינתם יציאה מותאמת אישית באמצעות האפשרות
--port, אל תשכחו לפתוח את הדפדפן ליציאה הזו.
כדי להפסיק את השרת המקומי משורת הפקודה, מקישים על:
- macOS או Linux: Control+C
- Windows: Control+Break
ציון מזהי אפליקציות
כדי לגשת למזהה האפליקציה בשרת המקומי, למשל כדי לזייף כתובת אימייל, משתמשים בפונקציה get_application_id().
כדי לקבל את שם המארח של האפליקציה שפועלת, משתמשים בפונקציה get_default_version_hostname().
זיהוי סביבת זמן הריצה של האפליקציה
כדי לדעת אם הקוד שלכם פועל בייצור או בשרת הפיתוח המקומי, אתם יכולים לבדוק את הערך של משתנה הסביבה GAE_ENV:
if os.getenv('GAE_ENV', '').startswith('standard'):
# Production in the standard environment
else:
# Local development server
שימוש בשירות האימייל
שרת הפיתוח המקומי יכול לשלוח אימיילים לקריאות לשירות הדואר של App Engine באמצעות שרת SMTP או התקנה מקומית של Sendmail.
שימוש ב-SMTP
כדי להפעיל תמיכה באימייל באמצעות שרת SMTP, מפעילים את dev_appserver.py באופן הבא::
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
כאן מגדירים את האפשרויות --smtp_host, --smtp_port, --smtp_user ו---smtp_password עם הערכים שלכם.
שימוש ב-Sendmail
כדי להפעיל תמיכה באימייל באמצעות Sendmail, מפעילים את dev_appserver.py באופן הבא:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
השרת המקומי משתמש בפקודה sendmail כדי לשלוח הודעות אימייל עם הגדרת ברירת המחדל של ההתקנה.
שימוש בשירות אחזור של כתובות אתרים
כשמשתמשים ב-URL fetch API כדי לבצע בקשת HTTP, שרת הפיתוח המקומי מבצע את הבקשה ישירות מהמחשב. ההתנהגות של URL Fetch בשרת המקומי עשויה להיות שונה מזו של App Engine בסביבת הייצור אם משתמשים בשרת proxy כדי לגשת לאתרים.
שימוש בשירות Users
App Engine מספק שירות Users כדי לפשט את האימות וההרשאה של האפליקציה. שרת הפיתוח המקומי מדמה את ההתנהגות של חשבונות Google באמצעות דפי כניסה ויציאה משלו.
כשהפונקציות פועלות בשרת הפיתוח המקומי, הן מחזירות כתובות URL עבור /_ah/login ו-/_ah/logout בשרת המקומי.
ארגומנטים בשורת הפקודה
אפשרויות הפקודה של שרת הפיתוח המקומי מפורטות במאמר אפשרויות של שרת פיתוח מקומי.