שימוש בשרת הפיתוח המקומי

Google Cloud CLI כולל שרת פיתוח מקומי (dev_appserver.py). אתם יכולים להשתמש בשרת הפיתוח המקומי כדי לדמות את הפעלת אפליקציית App Engine בסביבת ייצור, וגם כדי לגשת לשירותים מדור קודם של App Engine. הסביבה המדומה אוכפת חלק מההגבלות של ארגז החול, כמו פונקציות מערכת מוגבלות וייבוא של מודולים של שפת זמן ריצה, אבל לא הגבלות אחרות, כמו פסק זמן של בקשות או מכסות.

שרת הפיתוח המקומי גם מדמה את השירותים שמסופקים על ידי הספריות ב-SDK של App Engine, כולל Datastore,‏ Memcache ו-Task Queues, על ידי ביצוע המשימות שלהם באופן מקומי. כשהאפליקציה פועלת בשרת הפיתוח, עדיין אפשר לבצע קריאות ל-API מרחוק לתשתית הייצור באמצעות נקודות הקצה של Google API HTTP.

הגדרת שרת פיתוח מקומי

כדי להריץ את כלי שרת הפיתוח המקומי, צריך להגדיר את הדברים הבאים:

  1. מוודאים שהתקנתם רכיב תרגום של Python 3 שתואם לגרסת Python שנדרשת על ידי ה-CLI של gcloud.
  2. מוודאים שהתקנתם את רכיב Google Cloud CLI שכולל את התוסף App Engine ל-Python 3 ‏ (app-engine-python):

    gcloud components list
    

    אם הרכיב app-engine-python לא מותקן, מריצים את הפקודה הבאה:

    gcloud components install app-engine-python
    
  3. מריצים את הפקודה הבאה כדי למצוא את נתיב ההתקנה של Google Cloud SDK:

    gcloud info
    

    הפקודה מחזירה את ספריית הבסיס שבה התקנתם את Google Cloud SDK, לדוגמה:

    Installation Root: [/Users/myname/google-cloud-sdk]

  4. מאתרים את הכלי dev_appserver.py בתיקייה /bin/ שבה התקנתם את Google Cloud CLI, לדוגמה:

    CLOUD_SDK_ROOT/bin/dev_appserver.py
    
  5. חשוב לרשום את הנתיב אל dev_appserver.py כדי להשתמש בו בהמשך.

הפעלת שרת הפיתוח המקומי

אחרי ההגדרה של שרת הפיתוח המקומי ויצירת קובץ התצורה app.yaml של האפליקציה, אפשר להשתמש בפקודה dev_appserver.py כדי להריץ את האפליקציה באופן מקומי.

כדי להפעיל את שרת הפיתוח המקומי:

  1. בספרייה שמכילה את קובץ התצורה 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]
    

  2. שרת הפיתוח המקומי פועל עכשיו ומאזין לבקשות. אפשר להיכנס לכתובת 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 בשרת המקומי.

ארגומנטים בשורת הפקודה

אפשרויות הפקודה של שרת הפיתוח המקומי מפורטות במאמר אפשרויות של שרת פיתוח מקומי.