یک برنامه Spring Boot را در محیط استاندارد App Engine اجرا کنید

1. قبل از شروع

ایجاد برنامه‌های App Engine آسان است، نگهداری آن‌ها آسان است و با تغییر نیازهای ترافیک و ذخیره‌سازی داده‌های شما، به راحتی قابل مقیاس‌بندی هستند. با App Engine، هیچ سروری برای نگهداری وجود ندارد. شما به سادگی برنامه خود را آپلود می کنید و آماده کار است.

برنامه های App Engine به طور خودکار بر اساس ترافیک ورودی مقیاس می شوند. متعادل‌سازی بار، میکروسرویس‌ها، مجوز، پایگاه‌های داده SQL و NoSQL، ذخیره‌سازی حافظه، تقسیم ترافیک، گزارش‌گیری، جستجو، نسخه‌سازی، عرضه‌ها و بازگردانی‌ها، و اسکن امنیتی همگی به صورت بومی پشتیبانی می‌شوند و بسیار قابل تنظیم هستند.

محیط استاندارد App Engine و محیط انعطاف پذیر App Engine از تعداد زیادی از زبان های برنامه نویسی از جمله Java، Python، PHP، NodeJS و Go پشتیبانی می کند. این دو محیط حداکثر انعطاف پذیری را در مورد نحوه عملکرد برنامه به توسعه دهندگان می دهد. هر محیطی دارای نقاط قوت خاصی است. برای اطلاعات بیشتر، به انتخاب محیط App Engine مراجعه کنید.

شما یاد خواهید گرفت که یک برنامه Spring Boot را در محیط استاندارد App Engine اجرا کنید. محیط استاندارد در مواردی که کسی از آن استفاده نمی کند به صفر می رسد و به طور خودکار مقیاس می شود!

پیش نیازها

  • آشنایی با زبان و ابزارهای برنامه نویسی جاوا
  • آشنایی با ویرایشگرهای متن استاندارد لینوکس مانند Vim، Emacs و nano

کاری که خواهی کرد

  • نحوه ایجاد برنامه Spring Boot Java در App Engine

آنچه شما نیاز دارید

2. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

پوسته ابری

شما از Cloud Shell ، یک محیط خط فرمان که در Google Cloud اجرا می شود، استفاده خواهید کرد.

Cloud Shell را فعال کنید

  1. از Cloud Console، روی Activate Cloud Shell کلیک کنید 853e55310c205094.png .

55efc1aaa7a4d3ad.png

اگر این اولین باری است که Cloud Shell را راه اندازی می کنید، با یک صفحه میانی روبرو می شوید که آن را توصیف می کند. اگر با یک صفحه میانی مواجه شدید، روی Continue کلیک کنید.

9c92662c6a846a5c.png

تهیه و اتصال به Cloud Shell فقط باید چند لحظه طول بکشد.

9f0e51b578fecce5.png

این ماشین مجازی با تمام ابزارهای توسعه مورد نیاز بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه می‌کند و در Google Cloud اجرا می‌شود، که عملکرد و احراز هویت شبکه را بسیار افزایش می‌دهد. بسیاری از کارهای شما، اگر نه همه، در این کد لبه با مرورگر قابل انجام است.

پس از اتصال به Cloud Shell، باید ببینید که احراز هویت شده اید و پروژه به ID پروژه شما تنظیم شده است.

  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`
  1. دستور زیر را در 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 را به روز کنید

دو راه برای استقرار یک برنامه سرور جاوا وجود دارد - یا با استفاده از Maven App Engine Plugin یا Gradle App Engine Plugin یا با استقرار فهرست بسته 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.4.4</version>
        <configuration>
          <version>1</version>
          <projectId>GCLOUD_CONFIG</projectId>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
</project>

5. توصیفگر App Engine را اضافه کنید

  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: java17
instance_class: F1

6. یک کنترلر اضافه کنید

یک کنترلر جدید اضافه کنید که "hello world!" در DemoApplication.java .

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. برنامه را به صورت محلی اجرا کنید

  1. مطمئن شوید که JAVA_HOME روی نسخه JDK صحیح تنظیم شده است:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
  1. می توانید برنامه Spring Boot را با افزونه Spring Boot راه اندازی کنید:
$ ./mvnw -DskipTests spring-boot:run
  1. پس از شروع برنامه، روی Web Preview کلیک کنید 1a94d5bd10bfc072.png در نوار ابزار Cloud Shell و Preview در پورت 8080 را انتخاب کنید.

3aca52f76c6c22a3.png

یک برگه در مرورگر شما باز می شود و به سروری که راه اندازی کرده اید متصل می شود.

7b0d8494f647822a.png

8. برنامه را در App Engine قرار دهید

  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. سپس، برنامه خود را با اجرای mvn appengine:deploy در محیط استاندارد App Engine قرار دهید.
$ ./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]

9. پاکسازی

شما نمی توانید یک برنامه App Engine را حذف کنید اما می توانید آن را غیرفعال کنید.

به App Engine و Settings در Google Cloud Console بروید و Disable Application انتخاب کنید:

8052c1e4ad73d70e.png

یا می توانید کل پروژه را حذف کنید:

$ gcloud projects delete YOUR-PROJECT-ID

10. تبریک می گویم

شما یاد گرفتید که اولین برنامه وب موتور App خود را بنویسید!

بیشتر بدانید