إنشاء حاوية Spring Kiosk Kotlin ونشرها في Cloud Run

إنشاء حاوية Spring Kiosk Kotlin ونشرها في Cloud Run

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

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

1. قبل البدء

توفّر Google أداة إنشاء صور فعّالة يمكنك بسهولة إنشاء صورة حاوية محسّنة ونشرها لتطبيقات Java في وقت قصير وبدون docker أو dockerfile. توفّر خدمة Google Cloud أيضًا خادمًا بدون حاويات باستخدام Cloud Run، وهي منصّة للحوسبة مُدارة تعمل تلقائيًا على تطوير حاوياتك بلا حالة. في هذا الدرس التطبيقي حول الترميز، ستتعرّف على مدى سهولة إنشاء تطبيق Spring Bot Kotlin ونشره في حاويات السجلّ وعرض الصورة على Google Cloud بطريقة سلسة.

يرشدك هذا الدرس التطبيقي إلى خطوات إعداد تطبيق بسيط بلغة Kotlin والذي يوضح استخدام خدمات Google Cloud وأدواتها، بما في ذلك Jib وcontainer Registry وCloud Run.

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

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

الإجراءات التي ستنفذّها

  • يمكنك إعداد تطبيق Springboot Kotlin.
  • إنشاء صورة إرساء محسّنة.
  • انشر الصورة في سجل الحاوية.
  • شغِّل التطبيق المُحوَّى على السحابة الإلكترونية.

الأشياء التي تحتاج إليها

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

2. البدء في الإعداد

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

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

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

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

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

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

Cloud Shell

على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، إلا أنك ستستخدم 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 Kiosk

  1. أنشئ تطبيق Spring Power جديدًا باستخدام Spring Initializr.
$ curl https://start.spring.io/starter.tgz \
    -d language=kotlin \
    -d dependencies=web \
    -d baseDir=kotlin-jib-cloud-run | tar -xzvf -

يُرجى العِلم أنّه ستتم إضافة spring-boot-starter-web تلقائيًا إلى تبعيات تطبيقك في pom.xml من خلال نموذج النموذج.

  1. يمكنك التغيير إلى دليل تطبيق النموذج.
$ cd kotlin-jib-cloud-run
  1. إنشاء التطبيق وتشغيله باستخدام Maven
$ ./mvnw -DskipTests spring-boot:run
  1. بعد بدء تشغيله، سيبدأ التطبيق في الاستماع إلى المنفذ 8080. انقر على معاينة الويبفي شريط أدوات Cloud Shell واختَر معاينة على المنفذ 8080 للوصول إلى التطبيق.

  1. من المفترض أن تحصل على ردّ 404 لأن التطبيق لا ينفذ أي إجراء مفيد بعد. يمكنك إيقاف التطبيق باستخدام Control+C.

4. إضافة وحدة تحكُّم على الويب

  1. إنشاء فئة Controller التالية في الحزمة التجريبية:
$ vi src/main/kotlin/com/example/demo/Controller.kt
    or
$ nano src/main/kotlin/com/example/demo/Controller.kt

src/main/kotlin/com/example/demo/Controller.kt

package com.example.demo

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class Controller {
 
 
@GetMapping("/")
  fun saySomething
(): String {
   
return "Kotlin app on Cloud Run, containerized by Jib!"
 
}
}
  1. إعادة إنشاء التطبيق وتشغيله.
$ ./mvnw spring-boot:run
  1. تحقّق من التطبيق مرة أخرى باستخدام معاينة الويب . في هذه المرة، ستظهر لك الرسالة، "Kotlin app on Cloud Run, containerized by Jib!". أوقِف التطبيق باستخدام Control+C.

5. إنشاء حاوية الاستخدام ونشرها على حاويات السجلّ

باستخدام Jib، يمكنك إضافة حاوية إلى تطبيق بطريقة محسَّنة بدون docker ونشره في أي سجلّ للحاويات.

  1. قبل المتابعة، عليك تفعيل واجهة برمجة تطبيقات قاعدة بيانات المسجّلين. ولا يجب تنفيذ هذا الإجراء سوى مرة واحدة لكل مشروع لتسهيل الوصول إلى واجهة برمجة التطبيقات.
$ gcloud services enable containerregistry.googleapis.com
  1. شغِّل Jib لإنشاء صورة docker ونشرها في حاويات السجلّ.
$ ./mvnw com.google.cloud.tools:jib-maven-plugin:1.8.0:build \
    -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/kotlin-jib-cloud-run

وفي نهاية الأمر، ستظهر لك الرسالة التالية التي تفيد بأن التطبيق حاوية وقد تم إرساله إلى سجلّ الحاويات.

[INFO] Built and pushed image as gcr.io/PROJECT_ID/kotlin-jib-cloud-run
...
[INFO] BUILD SUCCESS

وإذا ظهر لك خطأ، تحقَّق جيدًا مما إذا تم ضبط $GOOGLE_CLOUD_PROJECT بشكلٍ صحيح على رقم تعريف مشروع Google Cloud (PROJECT_ID).

  1. قبل المتابعة، تحقق مما إذا تم نشر الصورة بنجاح. ارجع إلى Cloud Console، وانقر على قائمة التنقل، ثم اختَر حاويات السجلّ.

ستلاحظ أنّه تمّ نشر الصورة بنجاح.

6. تشغيل التطبيق المُحوَّى على السحابة الإلكترونية على Cloud Run

يتيح التشغيل عبر السحابة الإلكترونية تشغيل الخوادم بدون حاويات، ما يؤدي إلى توسيع حاويات بلا بيانات تلقائيًا.

  1. انقر على قائمة التنقل مرة أخرى واختَر Cloud Run.

إذا كانت هذه هي المرة الأولى التي تستخدم فيها Cloud Run، سيظهر لك مربع الحوار التالي للإعداد لمرة واحدة. انقر على بدء استخدام Cloud Cloud في حال ظهوره.

  1. في صفحة Cloud Run (التشغيل في السحابة الإلكترونية)، انقر على Create Service (إنشاء خدمة).

  1. في الشاشة التالية، انقر على اختيار ضمن المصدر. المصدر هو الصورة التي تريد تشغيلها على Cloud Run.

  1. وسيعرض مربع الحوار الصورة التي أنشأتها سابقًا. اختَر الصورة وانقر على متابعة.

  1. لم يتبقَّ أمامك سوى بضع خطوات لنشر التطبيق. ضمن النظام الأساسي للنشر، اختر تشغيل Cloud (مُدار بالكامل) لإدارة الخدمة بالكامل على Google Cloud. اختَر منطقة مناسبة لموقعك الجغرافي، واختَر السماح بالاستدعاءات التي لم تتم مصادقتها، وانقر على إنشاء. أكملت هذه الخطوة.

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

في النهاية، ستظهر لك الرسالة التي تتوقعها من التطبيق.

Kotlin app on Cloud Run, containerized by Jib!

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

7. تنظيف

  1. لإزالة بيئتك، عليك حذف التطبيق الذي تم نشره على Cloud Run والصورة التي تم نشرها في container Registry. انتقِل إلى التشغيل على السحابة الإلكترونية، واختَر التطبيق، ثم انقر على حذف.

  1. وبالمثل، انتقِل إلى صفحة حاويات السجلّ واحذف الصورة.

8. تهانينا

تهانينا. نجحت في إنشاء تطبيق Spring Kiosk Kotlin ونشره في Cloud Run.

باستخدام ملف Jib، صمّمت صورة حاوية مُحسَّنة بدون تثبيت docker أو كتابتها في ملف dockerfile ونشرته في Registry Registry. يحسِّن Jib عملية إنشاء الصور، بحيث يمكن لأي شخص لا يعرف المعرفة المتعمّقة باستخدام docker أن يعمل على تشغيل تطبيقات Java بسرعة وكفاءة. وبعد ذلك ببضع نقرات، نشرت التطبيق على Cloud Run لبدء عرضه في وقت قصير.

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