1. לפני שמתחילים
קל ליצור אפליקציות ב-App Engine, קל לתחזק אותן וקל להרחיב אותן כשהתנועה וצרכי אחסון הנתונים משתנים. ב-App Engine אין שרתים לתחזוקה. פשוט מעלים את האפליקציה והיא מוכנה לשימוש.
אפליקציות App Engine עוברות התאמה אוטומטית לעומס בהתאם לתעבורת הנתונים הנכנסת. איזון עומסים, מיקרו-שירותים, הרשאות, מסדי נתונים של SQL ו-NoSQL, אחסון במטמון של זיכרון, פיצול תעבורה, רישום ביומן, חיפוש, ניהול גרסאות, השקות והחזרות לאחור וסריקת אבטחה – כל אלה נתמכים באופן מקורי וניתנים להתאמה אישית.
סביבת App Engine סטנדרטית וסביבת App Engine גמישה תומכות במגוון רחב של שפות תכנות, כולל Java, Python, PHP, NodeJS ו-Go. שתי הסביבות האלה מאפשרות למפתחים גמישות מקסימלית בהתנהגות האפליקציה שלהם. לכל סביבה יש יתרונות מסוימים. מידע נוסף זמין במאמר בנושא בחירת סביבת App Engine.
תלמדו איך לפרוס אפליקציית Spring Boot בסביבה רגילה של App Engine. הסביבה הרגילה מצטמצמת לאפס מופעים כשלא משתמשים בה, ומתרחבת אוטומטית כשמתחילים להשתמש בה.
דרישות מוקדמות
- היכרות עם שפת התכנות Java ועם כלים
- ידע בכלי עריכת טקסט סטנדרטיים של Linux, כמו Vim, Emacs ו-nano
מה תעשו
- איך יוצרים אפליקציית Java ב-Spring Boot ב-App Engine
מה תצטרכו
- פרויקט ב-Google Cloud
- דפדפן, כמו Google Chrome
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שהוא מוגדר. מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
Cloud Shell
תשתמשו ב-Cloud Shell, סביבת שורת פקודה שפועלת ב-Google Cloud.
הפעלת Cloud Shell
- ב-Cloud Console, לוחצים על Activate Cloud Shell
.

אם זו הפעם הראשונה שאתם מפעילים את Cloud Shell, יוצג לכם מסך ביניים עם תיאור של השירות. אם הוצג לכם מסך ביניים, לחצו על המשך.

הקצאת המשאבים והחיבור ל-Cloud Shell נמשכים רק כמה רגעים.

המכונה הווירטואלית הזו כוללת את כל הכלים הדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את רוב העבודה ב-codelab הזה, אם לא את כולה, באמצעות דפדפן.
אחרי שמתחברים ל-Cloud Shell, אמור להופיע אימות ושהפרויקט מוגדר לפי מזהה הפרויקט.
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שעברתם אימות:
gcloud auth list
פלט הפקודה
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שפקודת gcloud מכירה את הפרויקט:
gcloud config list project
פלט הפקודה
[core] project = <PROJECT_ID>
אם לא, אפשר להגדיר אותו באמצעות הפקודה הבאה:
gcloud config set project <PROJECT_ID>
פלט הפקודה
Updated property [core/project].
3. יצירת אפליקציית אינטרנט חדשה של Spring Boot
אחרי ההפעלה של Cloud Shell, אפשר להשתמש בשורת הפקודה כדי ליצור אפליקציית Spring Boot חדשה באמצעות Spring Initializr.
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=3.0.5 \ -d dependencies=web \ -d type=maven-project \ -d baseDir=gae-standard-example | tar -xzvf - $ cd gae-standard-example
4. עדכון הקובץ Maven pom.xml
יש שתי דרכים לפרוס אפליקציית שרת Java: באמצעות Maven App Engine Plugin או Gradle App Engine Plugin, או באמצעות פריסה של ספריית החבילה war. תשתמשו ב-Maven App Engine Plugin כדי לפרוס את האפליקציה.
הוספה של Maven App Engine Plugin
עדכון של pom.xml כך שיכלול פלאגין של Google Cloud שמפשט את תהליך הפריסה. אפשר להשתמש ב-Vim, ב-nano או ב-Emacs כדי לערוך את הקובץ.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
...
<build>
<plugins>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.4.4</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
5. הוספת קובץ תיאור של App Engine
- כדי לפרוס את האפליקציה בסביבה הרגילה של App Engine, צריך ליצור
src/main/appengine/app.yamlקובץ תיאור חדש.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- עורכים את קובץ
src/main/appengine/app.yamlומוסיפים את התוכן הבא:
src/main/appengine/app.yaml
runtime: java17
instance_class: F1
6. הוספת בקר
מוסיפים ב-DemoApplication.java בקר חדש שמחזיר "hello world!".
src/main/java/com/example/demo/DemoApplication.java
package com.example.demo;
...
// Add imports
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
// Add the controller.
@RestController
class HelloWorldController {
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
7. הפעלת האפליקציה באופן מקומי
- מוודאים שהמשתנה JAVA_HOME מוגדר לגרסת ה-JDK הנכונה:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
- אפשר להפעיל את אפליקציית Spring Boot באמצעות התוסף Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- אחרי שהאפליקציה מופעלת, לוחצים על תצוגה מקדימה באינטרנט
בסרגל הכלים של Cloud Shell ובוחרים באפשרות תצוגה מקדימה ביציאה 8080.

תיפתח כרטיסייה בדפדפן והיא תתחבר לשרת שהפעלתם.

8. פריסת האפליקציה ב-App Engine
- קודם כל, מאתחלים את הפרויקט כדי להפעיל אפליקציות של App Engine. בנוסף, מאתחלים את הפרויקט להרצה באזור המרכזי של ארה"ב.
$ gcloud app create --region us-central You are creating an app for project [...]. WARNING: Creating an App Engine application for a project is irreversible and the region cannot be changed. More information about regions is at https://cloud.google.com/appengine/docs/locations
- לאחר מכן, פורסים את האפליקציה בסביבה הרגילה של App Engine על ידי הפעלת הפקודה
mvn appengine:deploy.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- אחרי שהאפליקציה נפרסת, אפשר להיכנס אליה על ידי פתיחת הכתובת http://<project-id>.appspot.com בדפדפן אינטרנט או באמצעות הפקודה הבאה ב-Cloud Shell:
$ gcloud app browse ... [It may print out the URL for your app]
9. הסרת המשאבים
אי אפשר למחוק אפליקציית App Engine, אבל אפשר להשבית אותה.
נכנסים אל App Engine ו-Settings במסוף Google Cloud ובוחרים באפשרות Disable Application:

אפשר גם למחוק את כל הפרויקט:
$ gcloud projects delete YOUR-PROJECT-ID
10. מזל טוב
למדתם לכתוב את אפליקציית האינטרנט הראשונה שלכם ב-App Engine.