יצירת אפליקציה עם זמן ריצה מותאם אישית בסביבה גמישה של 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 על המשאבים שבהם השתמשתם בדף הזה:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
המאמרים הבאים
מידע נוסף על קובצי Docker זמין בהפניה לקובץ Docker.
במאמר יצירת סביבות ריצה מותאמות אישית מוסבר איך ליצור סביבת ריצה מותאמת אישית משלכם.
בדיקת קוד
אפליקציית Hello World היא אפליקציית App Engine הכי פשוטה שאפשר ליצור, כי היא יוצרת קונטיינר יחיד שמריץ רק שירות אחד וגרסה אחת. בקטע הזה מפורטים כל הקבצים של האפליקציה.
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.