באפליקציות רבות נדרש ניהול סשנים לצורך אימות והעדפות משתמש. מסגרת Flask כוללת הטמעה מבוססת-זיכרון לביצוע הפונקציה הזו. עם זאת, ההטמעה הזו לא מתאימה לאפליקציה שאפשר להציג מכמה מופעים, כי הסשן שמתועד במופע אחד עשוי להיות שונה ממופעים אחרים. במדריך הזה מוסבר איך לנהל סשנים ב-App Engine.
מטרות
- כותבים את האפליקציה.
- מריצים את האפליקציה באופן מקומי.
- פורסים את האפליקציה ב-App Engine.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Firestore API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Firestore API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
מתקינים במערכת את Python, את
pipואתvirtualenv. הוראות מפורטות זמינות במאמר הגדרת סביבת פיתוח בשפת Python ל- Google Cloud.
הגדרת הפרויקט
בחלון הטרמינל, מתחילים בספרייה לבחירתכם ויוצרים ספרייה חדשה בשם
sessions. כל הקוד של המדריך הזה נמצא בספרייהsessions.עוברים לספרייה
sessions:cd sessionsיוצרים את
requirements.txtעם התוכן הבא:מתקינים את יחסי התלות:
pip install -r requirements.txt
בסוף המדריך, מבנה הקובץ הסופי יהיה דומה לזה:
sessions
├── app.yaml
├── main.py
└── requirements.txt
כתיבת אפליקציית האינטרנט
האפליקציה הזו מציגה ברכות בשפות שונות לכל משתמש. המשתמשים החוזרים תמיד מקבלים פנייה באותה שפה.

כדי שהאפליקציה תוכל לאחסן העדפות של משתמש, צריך דרך לאחסן מידע על המשתמש הנוכחי בסשן. אפליקציית הדוגמה הזו משתמשת בקובצי Cookie וב-Firestore כדי לאחסן נתוני סשן.
בחלון הטרמינל, יוצרים קובץ בשם
main.pyעם התוכן הבא:הדיאגרמה הבאה ממחישה איך Firestore מטפל בסשנים באפליקציית App Engine.
מחיקת סשנים
אתם יכולים למחוק נתוני סשן או להטמיע אסטרטגיה של מחיקה אוטומטית. אם אתם משתמשים בפתרונות אחסון לסשנים כמו Memcache או Redis, סשנים שתוקפם פג נמחקים אוטומטית.
הרצה באופן מקומי
בחלון הטרמינל, מתקינים את שרת ה-HTTP של Gunicorn:
pip install gunicornמריצים את שרת ה-HTTP של Gunicorn:
gunicorn -b :8080 main:appצפייה באפליקציה בדפדפן האינטרנט:
Cloud Shell
בסרגל הכלים של Cloud Shell, לוחצים על Web preview (תצוגה מקדימה של אתר)
ובוחרים באפשרות Preview on port 8080 (תצוגה מקדימה ביציאה 8080).מכונה מקומית
בדפדפן, עוברים אל
http://localhost:8080.מופיעה אחת מחמש ברכות: "Hello World", "Hallo Welt", "Hola mundo", "Salut le Monde" או "Ciao Mondo". השפה משתנה אם פותחים את הדף בדפדפן אחר או במצב פרטי. אפשר לראות ולערוך את נתוני הסשן בGoogle Cloud מסוף.

כדי לעצור את שרת ה-HTTP, בחלון הטרמינל, לוחצים על
Control+C.
פריסה והפעלה ב-App Engine
אתם יכולים להשתמש בסביבת ברירת המחדל ב-App Engine כדי ליצור ולפרוס אפליקציה שפועלת בצורה מהימנה בעומס כבד ועם כמויות גדולות של נתונים.
במדריך הזה משתמשים בסביבת ברירת המחדל ב-App Engine כדי לפרוס את השרת.
בחלון הטרמינל, יוצרים קובץ
app.yamlומעתיקים את הטקסט הבא:פורסים את האפליקציה ב-App Engine:
gcloud app deployאפשר לצפות באפליקציה הפעילה בכתובת:
https://your-project-id.appspot.com:gcloud app browseyour-project-id הוא מזהה הפרויקט ב- Google Cloud .
הברכה נשלחת עכשיו על ידי שרת אינטרנט שפועל במכונה של App Engine.
ניפוי באגים באפליקציה
אם אתם לא מצליחים להתחבר לאפליקציית App Engine, כדאי לבדוק את הדברים הבאים:
- בודקים שהפקודות
gclouddeploy הושלמו בהצלחה ולא הוחזרו שגיאות. אם היו שגיאות (לדוגמה,message=Build failed), תקנו אותן ונסו לפרוס את אפליקציית App Engine שוב. נכנסים לדף Logs Explorer במסוף Google Cloud .
ברשימה הנפתחת Recently selected resources, לוחצים על App Engine Application ואז על All module_id. מוצגת רשימה של בקשות מהביקור שלכם באפליקציה. אם לא מוצגת רשימה של בקשות, מוודאים שבחרתם באפשרות All module_id מהרשימה הנפתחת. אם מופיעות הודעות שגיאה במסוף של Google Cloud , צריך לוודא שקוד האפליקציה תואם לקוד שבקטע על כתיבת אפליקציית האינטרנט.
מוודאים ש-Firestore API מופעל.
הסרת המשאבים
מחיקת הפרויקט
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת המכונה של App Engine
- במסוף Google Cloud , נכנסים לדף Versions של App Engine.
- מסמנים את התיבה שלצד גרסת האפליקציה שלא מוגדרת כברירת מחדל ושרוצים למחוק.
- כדי למחוק את גרסת האפליקציה, לוחצים על Delete.
המאמרים הבאים
- מדריכים נוספים לפונקציות Cloud Run
- מידע נוסף על App Engine
- כדאי לנסות את Cloud Run, שמאפשר להריץ קונטיינרים ללא שמירת מצב בסביבה מנוהלת או באשכול Google Kubernetes Engine משלכם.