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
- متصفّح، مثل Google Chrome
2. الإعداد والمتطلبات
إعداد البيئة بالسرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
- رقم تعريف المشروع هو معرّف فريد في جميع مشاريع Google Cloud ولا يمكن تغييره بعد ضبطه. تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس البرمجة، عليك الرجوع إلى رقم تعريف مشروعك (يُشار إليه عادةً باسم
PROJECT_ID). إذا لم يعجبك المعرّف الذي تم إنشاؤه، يمكنك إنشاء معرّف عشوائي آخر. يمكنك بدلاً من ذلك تجربة اسم مستخدم من اختيارك ومعرفة ما إذا كان متاحًا. لا يمكن تغيير هذا الخيار بعد هذه الخطوة وسيظل ساريًا طوال مدة المشروع. - للعلم، هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات عن كل هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير، إن وُجدت أي تكلفة على الإطلاق. لإيقاف الموارد وتجنُّب تحمّل تكاليف تتجاوز هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
Cloud Shell
ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud.
تفعيل Cloud Shell
- من Cloud Console، انقر على تفعيل Cloud Shell
.

إذا كانت هذه هي المرة الأولى التي تبدأ فيها Cloud Shell، ستظهر لك شاشة وسيطة توضّح ماهية هذه الخدمة. إذا ظهرت لك شاشة وسيطة، انقر على متابعة.

يستغرق توفير Cloud Shell والاتصال به بضع لحظات فقط.

يتم تحميل هذا الجهاز الافتراضي بجميع أدوات التطوير اللازمة. توفّر هذه الخدمة دليلًا رئيسيًا دائمًا بسعة 5 غيغابايت وتعمل في Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إنجاز معظم عملك في هذا الدرس التطبيقي حول الترميز، إن لم يكن كله، باستخدام متصفح.
بعد الاتصال بـ 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. تعديل ملف pom.xml في Maven
هناك طريقتان لنشر تطبيق خادم 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. إضافة وحدة تحكّم
أضِف وحدة تحكّم جديدة تعرض "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. تشغيل التطبيق محليًا
- تأكَّد من ضبط 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 Console واختَر Disable Application:

بدلاً من ذلك، يمكنك حذف المشروع بأكمله باتّباع الخطوات التالية:
$ gcloud projects delete YOUR-PROJECT-ID
10. تهانينا
لقد تعلّمت كيفية كتابة أول تطبيق ويب لك على App Engine.