מזהה אזור
REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, המחרוזת REGION_ID.r כלולה בכתובות ה-URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.
להשתמש בפרטי משתמש מאומתים כדי לאחסן ולאחזר נתונים ספציפיים למשתמש, ולהתאים אישית את חוויית המשתמש של כל משתמש בשירות האינטרנט שלכם.
בשלב הקודם עדכנתם את שירות האינטרנט כך שיוצגו בו עשר הבקשות האחרונות מכל המשתמשים. בשלב הזה, משתמשים בפרטי משתמש מאומתים כדי לעדכן את שירות האינטרנט כך שבדף תוצג רק רשימה של עשר הבקשות האחרונות שנשלחו על ידי המשתמש המאומת הנוכחי.
לפני שמתחילים
אם השלמתם את כל השלבים הקודמים במדריך הזה, אתם יכולים לדלג על הקטע הזה. אם לא, מבצעים אחת מהפעולות הבאות:
מתחילים מהמאמר פיתוח אפליקציה ב-Python 3 ומשלימים את כל השלבים עד לשלב הזה.
אם כבר יש לכם פרויקט שלGoogle Cloud , אתם יכולים להמשיך בהורדת עותק של שירות האינטרנט והוספה של Firebase:
מורידים את מאגר האפליקציה לדוגמה באמצעות 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.
מריצים את הפקודה הבאה מתיקיית הבסיס של הפרויקט, שבה נמצא הקובץ app.yaml:
gcloud app deploy
כל התנועה מנותבת אוטומטית לגרסה החדשה שפרסתם.
מידע נוסף על ניהול גרסאות זמין במאמר ניהול שירותים וגרסאות.
צפייה בשירות
כדי להפעיל במהירות את הדפדפן ולגשת לשירות האינטרנט בכתובת https://PROJECT_ID.REGION_ID.r.appspot.com, מריצים את הפקודה הבאה:
gcloud app browse
השלבים הבאים
כל הכבוד! יצרתם בהצלחה שירות אינטרנט שמשתמש באחסון נתונים ב-Datastore ובאימות ב-Firebase כדי לספק למשתמשים מאומתים דף אינטרנט מותאם אישית.
עכשיו אפשר לנקות את הפרויקט על ידי כיבוי, השבתה או השבתת החיוב.