מזהה אזור
REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.
השתמשו בפרטי משתמש מאומתים כדי לאחסן ולאחזר נתונים ספציפיים למשתמש, ולהתאים אישית את חוויית השימוש של כל משתמש בשירות האינטרנט שלכם.
בשלב הקודם עדכנתם את שירות האינטרנט כך שיוצגו בו עשר הבקשות האחרונות מכל המשתמשים. בשלב הזה, אתם משתמשים בפרטי משתמש מאומת כדי לעדכן את שירות האינטרנט כך שבדף תוצג רק רשימה של עשר הבקשות האחרונות שנשלחו על ידי המשתמש המאומת הנוכחי.
לפני שמתחילים
אם ביצעתם את כל השלבים הקודמים במדריך הזה, אתם יכולים לדלג על הקטע הזה. אם לא, מבצעים אחת מהפעולות הבאות:
מתחילים מהמאמר פיתוח אפליקציה ב-Python 3 ומשלימים את כל השלבים עד לשלב הזה.
אם כבר יש לכם פרויקט, אתם יכולים להמשיך בהורדה של עותק של שירות האינטרנט והוספה של Firebase:Google Cloud
מורידים את מאגר האפליקציה לדוגמה באמצעות Git:
git clone https://github.com/GoogleCloudPlatform/python-docs-samplesאפשרות נוספת היא להוריד את הדוגמה כקובץ ZIP ואז לחלץ אותה.
עוברים אל הספרייה שמכילה עותק של הקבצים מהשלב הקודם:
cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-3
אחסון ואחזור של נתונים ספציפיים למשתמש
אפשר לציין שנתונים מקושרים למשתמש מסוים באמצעות צאצאים של Firestore במצב Datastore (Datastore), שמאפשרים לארגן את נתוני Datastore באופן היררכי.
כדי לעשות זאת, פועלים לפי השלבים הבאים:
מעדכנים את השיטות
store_timeו-fetch_timeכדי להשתמש בצאצאים של Datastore לאחסון ולשליפה של ישויותvisit:לכל ישות
visitיש עכשיו ישות אב שהיא מקושרת אליה. האבות הקדמונים האלה הם ישויות Datastore שמייצגות משתמשים מאומתים פרטיים. המפתח של כל רשומה בשרשרת כולל אתUserהסוג ומזהה מותאם אישית, שהוא כתובת האימייל של המשתמש המאומת. משתמשים במפתח של רשומת האב כדי להריץ שאילתה במסד הנתונים רק לגבי השעות שמשויכות למשתמש ספציפי.מעדכנים את הפעלת ה-method
store_timesבשיטהrootומעבירים אותה לתוך התנאיid_token, כך שהיא תפעל רק אם השרת אימת משתמש:
הגדרת אינדקסים
Datastore מבצע שאילתות על סמך אינדקסים. במקרה של ישויות פשוטות, Datastore יוצר את האינדקסים האלה באופן אוטומטי. עם זאת, אי אפשר ליצור אינדקסים באופן אוטומטי לישויות מורכבות יותר, כולל כאלה עם ישויות אב.
לכן, צריך ליצור ידנית אינדקס של ישויות visit כדי ש-Datastore יוכל לבצע שאילתות שכוללות ישויות visit.
כדי ליצור אינדקס של ישויות visit, מבצעים את השלבים הבאים:
יוצרים קובץ
index.yamlבתיקיית השורש של הפרויקט, לדוגמהbuilding-an-app, ומוסיפים את האינדקס הבא:כדי לפרוס את האינדקסים של
index.yamlב-Datastore, מריצים את הפקודה הבאה ופועלים לפי ההנחיות:gcloud datastore indexes create index.yaml
יכול לקחת זמן עד ש-Datastore ייצור אינדקסים. יצירת אינדקסים לפני פריסת שירות האינטרנט ב-App Engine מאפשרת לכם לבצע בדיקות מקומיות באמצעות האינדקסים האלה, ומונעת חריגים שעשויים להתרחש בשאילתות שדורשות אינדקס שנמצא עדיין בתהליך בנייה.
מידע נוסף על יצירת אינדקסים ב-Datastore זמין במאמר בנושא הגדרת אינדקסים ב-Datastore.
בדיקת שירות האינטרנט
בודקים את שירות האינטרנט על ידי הפעלתו באופן מקומי בסביבה וירטואלית:
מריצים את הפקודה הבאה בספרייה הראשית של הפרויקט כדי להפעיל את שירות האינטרנט. אם לא הגדרתם סביבה וירטואלית לבדיקה מקומית, כדאי לעיין במאמר בנושא בדיקת שירות האינטרנט.
python main.pyכדי לראות את שירות האינטרנט, מזינים את הכתובת הבאה בדפדפן האינטרנט:
http://localhost:8080
פריסת שירות האינטרנט
אחרי ש-Datastore פועל באופן מקומי, אפשר לפרוס מחדש את שירות האינטרנט ב-App Engine.
מריצים את הפקודה הבאה מתיקיית הרמה הבסיסית (root) של הפרויקט, שבה נמצא הקובץ app.yaml:
gcloud app deploy
כל התנועה מנותבת אוטומטית לגרסה החדשה שפרסתם.
מידע נוסף על ניהול גרסאות זמין במאמר ניהול שירותים וגרסאות.
צפייה בשירות
כדי להפעיל במהירות את הדפדפן ולגשת לשירות האינטרנט בכתובת https://PROJECT_ID.REGION_ID.r.appspot.com, מריצים את הפקודה הבאה:
gcloud app browse
השלבים הבאים
כל הכבוד! יצרתם בהצלחה שירות אינטרנט שמשתמש באחסון נתונים ב-Datastore ובאימות ב-Firebase כדי לספק למשתמשים מאומתים דף אינטרנט מותאם אישית.
עכשיו אפשר לנקות את הפרויקט על ידי כיבוי, השבתה או השבתת החיוב שלו.