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

۱. قبل از شروع

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

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

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

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

پیش‌نیازها

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

کاری که انجام خواهید داد

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

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

۲. تنظیمات و الزامات

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

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

پوسته ابری

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

فعال کردن پوسته ابری

  1. از کنسول ابری، روی فعال کردن پوسته ابری کلیک کنید 853e55310c205094.png .

55efc1aaa7a4d3ad.png

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

9c92662c6a846a5c.png

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

9f0e51b578fecce5.png

این ماشین مجازی مجهز به تمام ابزارهای توسعه مورد نیاز است. این ماشین یک دایرکتوری خانگی پایدار ۵ گیگابایتی ارائه می‌دهد و در فضای ابری گوگل اجرا می‌شود که عملکرد شبکه و احراز هویت را تا حد زیادی افزایش می‌دهد. بخش عمده‌ای از کار شما در این آزمایشگاه کد، اگر نگوییم همه، را می‌توان با یک مرورگر انجام داد.

پس از اتصال به 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`
  1. دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد:
gcloud config list project

خروجی دستور

[core]
project = <PROJECT_ID>

اگر اینطور نیست، می‌توانید با این دستور آن را تنظیم کنید:

gcloud config set project <PROJECT_ID>

خروجی دستور

Updated property [core/project].

۳. یک برنامه وب 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

۴. به‌روزرسانی Maven pom.xml

دو راه برای استقرار یک برنامه سرور جاوا وجود دارد - یا با استفاده از Maven App Engine Plugin یا Gradle App Engine Plugin، یا با استقرار دایرکتوری بسته war . شما از Maven App Engine Plugin برای استقرار برنامه استفاده خواهید کرد.

افزونه موتور برنامه Maven را اضافه کنید

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>

۵. اضافه کردن توصیفگر موتور برنامه

  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

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

یک کنترلر جدید که عبارت "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!";
  }
}

۷. اجرای محلی برنامه

  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. پس از شروع برنامه، روی پیش‌نمایش وب کلیک کنید ۱a۹۴d۵bd۱۰bfc۰۷۲.png در نوار ابزار Cloud Shell کلیک کنید و پیش‌نمایش را روی پورت ۸۰۸۰ انتخاب کنید.

3aca52f76c6c22a3.png

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

7b0d8494f647822a.png

۸. برنامه را در 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]

۹. پاکسازی

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

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

8052c1e4ad73d70e.png

روش دیگر، حذف کل پروژه است:

$ gcloud projects delete YOUR-PROJECT-ID

۱۰. تبریک

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

بیشتر بدانید