יצירת אפליקציה עם זמן ריצה מותאם אישית בסביבה הגמישה של App Engine
מזהה אזור
REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, המחרוזת REGION_ID.r כלולה בכתובות ה-URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.
סביבות ריצה בהתאמה אישית מאפשרות לכם ליצור אפליקציות שפועלות בסביבה שמוגדרת על ידי Dockerfile. באמצעות Dockerfile, אפשר להשתמש בשפות ובחבילות שלא נכללות ב-Google Cloud ולהשתמש באותם משאבים ובאותם כלים שמשמשים בסביבה הגמישה של App Engine.
במדריך הזה להתחלה מהירה, מפעילים שרת אינטרנט nginx ב-App Engine באמצעות סביבת ריצה בהתאמה אישית.
לפני שמתחילים
לפני שמריצים את האפליקציה לדוגמה במדריך הזה למתחילים, צריך להגדיר את הסביבה וליצור פרויקט חדש ב-App Engine: Google Cloud
כדי ליצור פרויקט חדש באמצעות מסוף Google Cloud Google Cloud :
פותחים את המסוף Google Cloud :
לוחצים על יצירת פרויקט ונותנים שם לפרויקט החדש Google Cloud .
מפעילים את החיוב בפרויקט החדש ב- Google Cloud על ידי יצירת חשבון חדש לחיוב או הגדרת חשבון קיים:
מורידים ומתקינים את ה-CLI של Google Cloud ואז מפעילים את ה-CLI של gcloud:
מריצים את הפקודה
gcloudהבאה כדי ליצור אפליקציית App Engine ולציין באיזה אזור גיאוגרפי רוצים שהאפליקציה תפעל:gcloud app create- בגלל שינויים בהתנהגות ברירת המחדל של Cloud Build בנוגע לשימוש בחשבונות שירות בפרויקטים חדשים, ושינויים במדיניות הארגון שמוגדרת כמאובטחת כברירת מחדל, יכול להיות שתצטרכו להקצות תפקידים נוספים לחשבון השירות שמשמש לפריסה. מידע נוסף על מתן תפקידים ספציפיים זמין במדריך לפתרון בעיות.
המיקומים של App Engine
App Engine הוא אזורי, כלומר התשתית שמריצה את האפליקציות שלכם ממוקמת באזור ספציפי, ו-Google מנהלת אותה כך שהיא זמינה באופן יתירתי בכל התחומים באזור הזה.
הקריטריונים העיקריים לבחירת האזור שבו האפליקציות יפעלו הם זמן האחזור, הזמינות והעמידות. בדרך כלל אפשר לבחור את האזור הקרוב ביותר למשתמשים באפליקציה, אבל כדאי גם לבדוק איפה App Engine זמין ואיפה מוצרים ושירותים אחרים שבהם האפליקציה משתמשת. שימוש בשירותים בכמה מיקומים יכול להשפיע על זמן האחזור של האפליקציה וגם על התמחור שלה.Google Cloud
אחרי שמגדירים את האזור של אפליקציה, אי אפשר לשנות אותו.
אם כבר יצרתם אפליקציית App Engine, תוכלו לראות את האזור שלה באחת מהדרכים הבאות:
מריצים את הפקודה
gcloud app describe.פותחים את מרכז הבקרה של App Engine במסוף Google Cloud . האזור מופיע בחלק העליון של הדף.
הורדת אפליקציית Hello World
בוחרים באחת מהאפשרויות הבאות כדי להוריד את אפליקציית הדוגמה Hello World מ-GitHub למחשב המקומי:
משכפלים את אפליקציית הדוגמה Hello World מהמאגר הבא:
git clone https://github.com/GoogleCloudPlatform/appengine-custom-runtimes-samplesמורידים את הדוגמה כקובץ ZIP ומחלצים אותה לספרייה מקומית.
עוברים לספרייה
nginxשבה נמצא קוד לדוגמה, למשל:cd appengine-custom-runtimes-samples/nginx
הרצת Hello World במחשב המקומי
כדי לבדוק את האפליקציה לדוגמה, צריך להוריד ולהתקין את Docker, ואז להריץ את קובץ ה-Hello World container במחשב המקומי.
אין כאן שלבים ספציפיים ל-App Engine, כך שתוכלו לבדוק את האפליקציה לדוגמה באמצעות הכלים והגישה שאתם מעדיפים.
פריסת Hello World ב-App Engine
כדי לפרוס את האפליקציה לדוגמה ב-App Engine:
מהספרייה שבה נמצאים הקבצים
app.yamlו-Dockerfile, מריצים את הפקודה הבאה:gcloud app deployכדי לראות את האפליקציה פועלת בכתובת
https://PROJECT_ID.REGION_ID.r.appspot.com, מריצים את הפקודה הבאה כדי להפעיל את הדפדפן:gcloud app browse
דיווחים נפוצים של פקודת gcloud
-
כוללים את הדגל
--versionכדי לציין מזהה שמזהה באופן ייחודי את הגרסה הזו של האפליקציה, אחרת המערכת תיצור מזהה בשבילכם. לדוגמה:--version [YOUR_VERSION_ID] -
כוללים את הדגל
--projectכדי לציין מזהה פרויקט חלופי ב- Google Cloud , שונה מזה שהוגדר כברירת מחדל בכליgcloud. דוגמה:--project [YOUR_PROJECT_ID]
דוגמה:
gcloud app deploy --version pre-prod-5 --project my-sample-app
במאמר
בדיקה ופריסה של האפליקציה מוסבר איך לפרוס את האפליקציה משורת הפקודה. רשימה של כל הדגלים של הפקודות מופיעה במאמר בנושא gcloud app deploy.
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
המאמרים הבאים
מידע נוסף על קובצי Docker זמין בהפניה לקובץ Docker.
במאמר יצירת סביבות ריצה מותאמות אישית מוסבר איך ליצור סביבת ריצה מותאמת אישית משלכם.
סקר קוד
האפליקציה הכי פשוטה שאפשר ליצור ב-App Engine היא Hello World, כי היא יוצרת קונטיינר יחיד שמריץ רק שירות אחד וגרסה אחת. בקטע הזה מתואר כל אחד מהקבצים של האפליקציה בפירוט.
app.yamlמציינת את ההגדרה של האפליקציה. קובץ
app.yamlחייב להיות באותה תיקייה כמו קובץDockerfile.הערך
runtime: customמציין ל-App Engine לחפשDockerfileשיגדיר את תמונת זמן הריצה, והערךenv: flexמציין שאתם מבצעים פריסה בסביבה הגמישה.מידע נוסף זמין במאמר בנושא
app.yaml.Dockerfileהקובץ הזה מגדיר את קבוצת ההוראות שמשמשות ליצירת קובץ אימג' של Docker עבור הקונטיינר של האפליקציה לדוגמה. קובץ
Dockerfileצריך להיות באותה תיקייה כמו קובץapp.yaml. קובץDockerfileמתקין את שרת האינטרנט nginx ומעתיק כמה הגדרות בסיסיות:הפקודה FROM יוצרת קובץ אימג' בסיסי באמצעות קובץ האימג' הרשמי של Docker לשרת האינטרנט nginx.
באמצעות קובץ
Dockerfileהזה, קובץ אימג' של קונטיינר יכיל את nginx וכל התוכן בספרייהwww/יהיה זמין לאפליקציה.
אפליקציית הדוגמה Hello World כוללת גם את הקובץ nginx.conf, שמכיל את פרטי התצורה הבסיסיים של nginx, וגם את הקובץ index.html, שמשמש כדף בסיס של שרת האינטרנט nginx.