שימוש ב-Modules API

‫Modules API מספק פונקציות שמחזירות מידע על סביבת ההפעלה הנוכחית (מודול, גרסה ומופע).

בנוסף, בממשק ה-API של המודולים יש פונקציות שמחלצות את הכתובת של מודול, גרסה או מופע. ההרשאה הזו מאפשרת לאפליקציה לשלוח בקשות ממופע אחד למופע אחר, גם בסביבת הפיתוח וגם בסביבת הייצור.

צריך לייבא את המודול google.appengine.api.modules מ-SDK.

from google.appengine.api import modules

בדוגמת הקוד הבאה אפשר לראות איך מקבלים את שם המודול ואת מזהה המופע של בקשה:

module = modules.get_current_module_name()
instance_id = modules.get_current_instance_id()
self.response.write(
    'module_id={}&instance_id={}'.format(module, instance_id))

מזהה המופע של מודול עם שינוי גודל אוטומטי יוחזר כערך ייחודי בקידוד Base64, למשל e4b565394caa.

אפשר לתקשר בין מודולים באותה אפליקציה על ידי אחזור שם המארח של מודול היעד:

backend_hostname = modules.get_hostname(module='my-backend')
url = "http://{}/".format(backend_hostname)
try:
    result = urllib2.urlopen(url).read()
    self.response.write('Got response {}'.format(result))
except urllib2.URLError:
    pass

אפשר גם להשתמש בשירות URL Fetch.