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 בשרת המקומי.
ארגומנטים בשורת הפקודה
אפשרויות הפקודה של שרת הפיתוח המקומי מפורטות במאמר אפשרויות של שרת פיתוח מקומי.