نشر تطبيق Spring Kiosk في بيئة App Engine العادية

نشر تطبيق Spring Kiosk في بيئة App Engine العادية

لمحة عن هذا الدرس التطبيقي حول الترميز

subjectتاريخ التعديل الأخير: أبريل 22, 2020
account_circleتأليف موظف Google

1. قبل البدء

يسهل إنشاء تطبيقات App Engine وكذلك صيانتها وصيانتها بسهولة، مع تغيّر عدد الزيارات وتخزين البيانات. مع App Engine، ليس هناك أي خوادم لصيانةها. ما عليك سوى تحميل تطبيقك ليكون جاهزًا للاستخدام.

يتم تغيير تطبيقات App Engine تلقائيًا استنادًا إلى الزيارات الواردة. ويتم دعم كل من موازنة الحمل، والخدمات الدقيقة، والتفويض، وقواعد بيانات SQL وNoSQL، والتخزين المؤقت للذاكرة، وتقسيم الزيارات، والتسجيل، والبحث، وتحديد الإصدارات، وعمليات الطرح والعودة إلى الإصدارات السابقة، وفحص الأمان في الأصل وقابلة للتخصيص بشكل كبير.

تتوافق البيئة العادية لـ App Engine والبيئة المرنة لـ App Engine مع مجموعة من لغات البرمجة، بما في ذلك جافا وPython وPHP وNodeJS وGo. تمنح البيئتان البيئتين أقصى قدر من المرونة من حيث سلوك التطبيق. لكل بيئة مواطن قوة معينة. ولمزيد من المعلومات، راجِع اختيار بيئة App Engine.

ستتعلّم كيفية نشر تطبيق Spring Bot في بيئة App Engine القياسية. تقلّل البيئة العادية من الصفر إلى صفر في الحالات التي لا يستخدم فيها أي مستخدم، ويزيد تلقائيًا.

المتطلبات الأساسية

  • الإلمام بلغة البرمجة Java وأدواتها
  • معرفة بالمحرِّرين النصيين العاديين لنظام التشغيل Linux، مثل Vim وEmacs وnano

المهام التي ستنفِّذها

  • كيفية إنشاء تطبيق جافا Spring Kiosk على App Engine

المتطلبات اللازمة

  • مشروع على Google Cloud
  • متصفح، مثل Google Chrome

2. الإعداد والمتطلبات

إعداد البيئة الذاتية

  1. سجِّل الدخول إلى Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. (إذا لم يكن لديك حساب في Gmail أو G Suite حاليًا، يجب إنشاء حساب.)

عذرًا! وسيُشار إليه لاحقًا في هذا الدرس التطبيقي بعنوان PROJECT_ID.

  1. بعد ذلك، ستحتاج إلى تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.

من المفترَض ألا يكلفك تنفيذ هذا الدرس التطبيقي أكثر من بضعة دولارات، ولكن قد يكلف ذلك أكثر إذا قررت استخدام المزيد من الموارد أو إذا تركتها قيد التشغيل.

يكون مستخدمو Google Cloud الجدد مؤهّلين للاستفادة من فترة تجريبية مجانية بقيمة 300 دولار أمريكي.

Cloud Shell

يجب استخدام Cloud Shell، وهو عبارة عن بيئة سطر أوامر يتم تشغيلها في Google Cloud.

تفعيل Cloud Shell

  1. من Cloud Console، انقر على تفعيل Cloud Shell .

إذا لم تكن قد بدأت استخدام Cloud Shell من قبل، ستظهر لك شاشة متوسطة (في الجزء السفلي غير المرئي من الصفحة) تصف المقصود بذلك. وإذا كان الأمر كذلك، انقر على متابعة (ولن تظهر لك مرة أخرى مطلقًا). في ما يلي الشكل الذي تظهر به الشاشة لمرة واحدة:

من المفترض أن تستغرق إدارة إمكانيات Cloud Shell والاتصال بها بضع لحظات فقط.

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. ويوفر دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت ويتم تشغيله في 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].

3. إنشاء تطبيق ويب Spring Bot جديد

بعد إطلاق Cloud Shell، يمكنك استخدام سطر الأوامر لإنشاء تطبيق Spring تمهيدي جديد باستخدام Spring Initializr.

$ 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

4. تعديل Maven pom.xml

هناك طريقتان لنشر تطبيق خادم جافا، إما باستخدام المكوّن الإضافي Maven App Engine أو المكوّن الإضافي Google Engine App من خلال Grave أو نشر دليل حزمة 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>

5. إضافة واصف محرك التطبيقات

  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

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
@RestController
public class DemoApplication {
 
public static void main(String[] args) {
   
SpringApplication.run(DemoApplication.class, args);
 
}

 
@GetMapping("/")
 
public String hello() {
   
return "hello world!";
 
}
}

7. تشغيل التطبيق محليًا

  1. يمكنك بدء تشغيل تطبيق Spring Kiosk باستخدام المكوِّن الإضافي Spring Bot:
$ ./mvnw -DskipTests spring-boot:run
  1. بعد بدء تشغيل التطبيق، انقر على معاينة الويب في شريط أدوات Cloud Shell، واختَر معاينة على المنفذ 8080.

يتم فتح علامة تبويب في المتصفِّح وتتصل بالخادم الذي بدأته.

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. وبعد ذلك، يمكنك نشر تطبيقك في بيئة 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]

9. تهانينا

تعلّمتَ كتابة أول تطبيق لكَ على App Engine.

مزيد من المعلومات