פריסה של אפליקציית Spring Bot לסביבה רגילה של App Engine

אפליקציות של Engine Engine מאפשרות ליצור, לנהל ולתחזק אותן בקלות, בהתאם לשינויים בנפח התנועה ובאחסון הנתונים. ב-App Engine אין שרתים לתחזוקה. פשוט מעלים את האפליקציה והיא מוכנה.

אפליקציות App Engine מותאמות באופן אוטומטי בהתבסס על תנועה נכנסת. איזון עומסים, מיקרו-שירותים, הרשאה, מסדי נתונים של SQL ו-NoSQL, שמירת קובצי מטמון, פיצול תנועה, רישום ביומן, חיפוש, ניהול גרסאות, השקות וחזרה לגרסה קודמת וסריקת אבטחה, כולם נתמכים באופן מקורי וניתן להתאמה אישית רבה.

הסביבה הרגילה של App Engine והסביבה הגמישה של App Engine תומכות במגוון שפות תכנות, כולל Java , Python , PHP , NodeJS ו-Go. שתי הסביבות מאפשרות למפתחים גמישות מקסימלית על התנהגות האפליקציה שלהם. לכל סביבה יש חוזקות מסוימות. מידע נוסף זמין במאמר בחירת סביבה של App Engine.

נלמד אותך לפרוס את אפליקציית אתחול האביב בסביבה רגילה של App Engine. הסביבה הרגילה יורדת לאפס מופעים כשאף אחד לא משתמש בה וגדל באופן אוטומטי!

דרישות מוקדמות

  • היכרות עם השפה והתכנות של Java
  • ידע בעורכי טקסט רגילים של Linux, כמו Vim , Emacs ו-nano

מה צריך לעשות

  • איך ליצור אפליקציית אתחול Spring ב-App Engine

מה צריך?

הגדרת סביבה בקצב עצמי

  1. נכנסים ל-Cloud Console ויוצרים פרויקט חדש או משתמשים שוב בפרויקט קיים. (אם עדיין אין לכם חשבון Gmail או G Suite, עליכם ליצור חשבון).

חשוב לזכור את מזהה הפרויקט הוא שם ייחודי בכל הפרויקטים ב-Google Cloud (השם הקודם כבר תפוס, והוא לא יעבוד בשבילך.) נתייחס אליו מאוחר יותר ב-codelab הזה בתור PROJECT_ID.

  1. לאחר מכן, עליך להפעיל חיוב ב-Cloud Console כדי להשתמש במשאבים של Google Cloud.

התהליך של קוד Lab זה לא אמור לעלות יותר מדולר אחד, אבל אם החלטתם להשתמש במשאבים נוספים או להשאיר אותם, ייתכן שהסכום יהיה גבוה יותר.

משתמשים חדשים ב-Google Cloud זכאים לתקופת ניסיון בחינם ב-1200 ש"ח.

Cloud Shell

אתם תשתמשו ב-Cloud Shell – סביבת שורת פקודה שפועלת ב-Google Cloud.

הפעלת Cloud Shell

  1. ב-Cloud Console, לוחצים על Activate Cloud Shell .

אם אף פעם לא התחלת להשתמש ב-Cloud Shell, יוצג לך מסך ביניים (בחלק הנגלל) שמתאר את הבעיה. אם זה קורה, יש ללחוץ על המשך (ולא יוצג לך שוב). כך נראה המסך החד-פעמי הזה:

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

המכונה הווירטואלית הזו נטענת באמצעות כל כלי הפיתוח הדרושים לך. יש בה ספריית בית בנפח עקבי של 5GB והיא פועלת ב-Google Cloud, וכך משפרת באופן משמעותי את הביצועים ואת האימות של הרשת. את רוב העבודה במעבדה זו אפשר לבצע, אם לא את כולם, באמצעות דפדפן או ה-Chromebook בלבד.

לאחר החיבור ל-Cloud Shell, אתם אמורים לראות שכבר בוצע אימות, ושהפרויקט כבר מוגדר כמזהה הפרויקט.

  1. מריצים את הפקודה הבאה ב-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`
gcloud config list project

פלט הפקודה

[core]
project = <PROJECT_ID>

אם לא, אפשר להגדיר אותה באמצעות הפקודה הבאה:

gcloud config set project <PROJECT_ID>

פלט הפקודה

Updated property [core/project].

אחרי ההשקה של Cloud Shell, תוכלו להשתמש בשורת הפקודה כדי ליצור אפליקציה חדשה לאביב של Spring אתחול.

$ curl https://start.spring.io/starter.tgz \
  -d bootVersion=2.1.8.RELEASE \
  -d dependencies=web \
  -d baseDir=gae-standard-example | tar -xzvf -
$ cd gae-standard-example

יש שתי דרכים לפרוס אפליקציית שרת Java – באמצעות הפלאגין Maven App Engine או הפלאגין Gradle App Engine, או על ידי פריסת ספריית החבילה war. תשתמשו בפלאגין של Maven App Engine כדי לפרוס את האפליקציה.

הוספת פלאגין של Maven App Engine

יש לעדכן את 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.1.0</version>
        <configuration>
          <version>1</version>
          <projectId>GCLOUD_CONFIG</projectId>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
</project>
  1. כדי לפרוס את האפליקציה בסביבה סטנדרטית של App Engine, עליך ליצור קובץ מתאר חדש של src/main/appengine/app.yaml.
$ mkdir -p src/main/appengine/
$ touch src/main/appengine/app.yaml
  1. יש לערוך את הקובץ src/main/appengine/app.yaml ולהוסיף את התוכן הבא:

src/main/appengine/app.yaml

runtime: java11
instance_class: F4

צריך להוסיף בקר חדש שמחזיר את "hello world!" בתוך DemoApplication.java.

src/main/javascript/com/example/demo/DemoApplication.JavaScript

package com.example.demo;

...

// Add imports
import org.springframework.web.bind.annotation.*;

@SpringBootApplication
@RestController
public class DemoApplication {
  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }

  @GetMapping("/")
  public String hello() {
    return "hello world!";
  }
}
  1. אפשר להפעיל את האפליקציה Spring Boot באמצעות הפלאגין Spring אתחול:
$ ./mvnw -DskipTests spring-boot:run
  1. לאחר הפעלת האפליקציה, לוחצים על תצוגה מקדימה באינטרנט בסרגל הכלים של Cloud Shell ובוחרים באפשרות תצוגה מקדימה ביציאה 8080.

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

  1. ראשית, מפעילים את הפרויקט כדי שתוכלו להפעיל אפליקציות של 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
  1. לאחר מכן, לפרוס את האפליקציה לסביבה הרגילה של App Engine על ידי הפעלת mvn appengine:deploy.
$ ./mvnw -DskipTests package appengine:deploy
... first time deploy may take a couple of minutes
  1. לאחר פריסת האפליקציה, תוכלו להיכנס אליה בכתובת http://<project-id>.appspot.com בדפדפן האינטרנט או באמצעות הפקודה הבאה ב-Cloud Shell:
$ gcloud app browse
... [It may print out the URL for your app]

למדת לכתוב את אפליקציית האינטרנט הראשונה שלך ב-App Engine!

למידע נוסף