1. مقدمة
Cloud Run هو نظام أساسي مُدار يتيح لك تشغيل حاويات بدون حالة قابلة للإلغاء من خلال طلبات HTTP. ولا يعتمد تشغيل السحابة الإلكترونية على خوادم، بل يختصر كل عمليات إدارة البنية الأساسية، لذا يمكنك التركيز على الأمور الأكثر أهمية، ألا وهي إنشاء تطبيقات رائعة.
تم إنشاء هذه الأداة من Knative، ما يتيح لك اختيار تشغيل حاوياتك إما مُدارة بالكامل باستخدام Cloud Run أو في مجموعة Google Kubernetes Engine باستخدام Cloud Run على GKE.
يتمثّل الهدف من هذا الدرس التطبيقي في إنشاء صورة حاوية ونشرها في Cloud Run.
2. الإعداد والمتطلبات
إعداد بيئة ذاتية
- سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.
- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
- يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد تحديده). تنشئ Cloud Console سلسلة فريدة تلقائيًا. فعادةً لا تهتم بما هو. في معظم الدروس التطبيقية حول الترميز، يجب الإشارة إلى رقم تعريف المشروع (الذي يتم تحديده عادةً على أنّه
PROJECT_ID
). وإذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم تعريف عشوائي آخر. ويمكنك بدلاً من ذلك تجربة طلبك الخاص ومعرفة ما إذا كان متاحًا. ولا يمكن تغييره بعد هذه الخطوة ويبقى طوال مدة المشروع. - لمعلوماتك، هناك قيمة ثالثة، وهي رقم المشروع، الذي تستخدمه بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام الموارد/واجهات برمجة التطبيقات في Cloud. لن يؤدي إكمال هذا الدرس التطبيقي حول الترميز إلى فرض أي تكاليف، إن وُجدت. لإيقاف تشغيل الموارد لتجنب تحمُّل الفواتير إلى ما هو أبعد من هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج فترة تجريبية مجانية بقيمة 300 دولار أمريكي.
Google Cloud Shell
يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ولكن في هذا الدرس التطبيقي حول الترميز، سنستخدم Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.
Cloud Shell هي بيئة تطوير وعمليات على الإنترنت يمكن الوصول إليها من أي مكان باستخدام المتصفّح. يمكنك إدارة مواردك باستخدام الوحدة الطرفية الخاصة بها على الإنترنت والتي تم تحميلها مسبقًا بأدوات مساعدة، مثل أداة سطر الأوامر gcloud وkubectl وغير ذلك. يمكنك أيضًا تطوير التطبيقات المستنِدة إلى السحابة الإلكترونية وإنشائها وتصحيح أخطائها ونشرها باستخدام محرِّر Cloud Shell على الإنترنت.
يتم تحميل هذا الجهاز الافتراضي مع جميع أدوات التطوير التي تحتاجها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت ويتم تشغيلها مباشرةً في Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. وهذا يعني أنّ كل ما ستحتاجه في هذا الدرس التطبيقي حول الترميز هو متصفّح (نعم، يعمل على جهاز Chromebook).
- لتفعيل Cloud Shell من Cloud Console، ما عليك سوى النقر على تفعيل Cloud Shell :
إذا كانت هذه هي المرة الأولى التي تبدأ فيها Cloud Shell، ستظهر لك شاشة وسيطة تصف ماهيتها. إذا ظهرت لك شاشة وسيطة، انقر على متابعة.
لن يستغرق الأمر سوى بضع ثوانٍ لتوفير البيئة :
بعد الربط بخدمة Cloud Shell، من المفترض أن يظهر لك أنّه سبق أن تمت مصادقتك :
gcloud auth list
مخرجات الأمر
Credentialed Accounts ACTIVE: * ACCOUNT: <my-account>@<mydomain>
من المفترض أن يكون المشروع قد تم تعيينه بالفعل على PROJECT_ID
(بافتراض أنك اخترت مشروعًا في وحدة التحكم على الويب) :
gcloud config list project
مخرجات الأمر
[core] project = <PROJECT_ID>
إذا لم يتم ضبط المشروع لسبب ما، ما عليك سوى إصدار الأمر التالي:
gcloud config set project <PROJECT_ID>
هل تبحث عن PROJECT_ID
؟ يمكنك الاطّلاع على القائمة المنسدلة في أعلى Cloud Console :
يمكنك أيضًا الاطلاع على تفاصيل مشروعك باستخدام "الإعدادات والأدوات المساعدة" :
تضبط Cloud Shell أيضًا بعض متغيرات البيئة تلقائيًا، وهو ما قد يكون مفيدًا عند تشغيل الأوامر المستقبلية.
echo $GOOGLE_CLOUD_PROJECT
مخرجات الأمر
<PROJECT_ID>
- أخيرًا، يمكنك تعيين المنطقة الافتراضية :
gcloud config set compute/zone us-central1-f
ويمكنك اختيار مناطق مختلفة. لمزيد من المعلومات، راجع المناطق المناطق:
تفعيل Cloud Run API
من Cloud Shell، فعِّل Cloud Run API :
gcloud services enable run.googleapis.com
يُفترض أن ينتج عن هذا رسالة ناجحة مماثلة للرسالة التالية :
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully.
3- كتابة نموذج التطبيق
سننشئ تطبيق ASP.NET C# بسيط يستجيب لطلبات HTTP.
لإنشاء تطبيقك، استخدِم أداة سطر الأوامر dotnet
في Cloud Shell:
dotnet new web -o helloworld-csharp
التغيير إلى الدليل helloworld-csharp
:
cd helloworld-csharp
بعد ذلك، حدِّث "Program.cs
" ليتوافق مع ما يلي:
var builder = WebApplication.CreateBuilder(args); var port = Environment.GetEnvironmentVariable("PORT") ?? "8080"; var url = $"http://0.0.0.0:{port}"; builder.WebHost.UseUrls(url); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.Run();
ينشئ هذا الرمز خادم ويب أساسيًا يستمع عبر المنفذ الذي يحدده متغير بيئة PORT
ويرد باستخدام Hello World
.
يمكنك اختبار التطبيق من خلال تشغيله محليًا في Cloud Shell. من المفترض أن ترى أنّه يستجيب على المنفذ 8080:
$ dotnet run Using launch settings from /home/atameldev/helloworld-csharp/Properties/launchSettings.json... Hosting environment: Development Content root path: /home/atameldev/helloworld-csharp Now listening on: http://0.0.0.0:8080 Application started. Press Ctrl+C to shut down.
4. النشر إلى التشغيل في السحابة الإلكترونية
انشر تطبيقك في تشغيل السحابة الإلكترونية باستخدام الأمر التالي:
gcloud run deploy hello-world \ --allow-unauthenticated \ --region us-central1 \ --source .
hello-world
هو اسم الخدمة.- تعمل علامة
allow-unauthenticated
على نشر الخدمة كخدمة متاحة للجميع بدون متطلبات مصادقة. us-central1
هي المنطقة التي سيتم نشر التطبيق فيها.- تحدِّد العلامة
source
موقع المصدر المطلوب إنشائه. يستخدم Cloud Run حِزم إنشاء لإنشاء حاوية من رمز المصدر تلقائيًا.
انتظِر بضع دقائق حتى تكتمل عملية النشر. عند نجاح العملية، يعرض سطر الأوامر عنوان URL للخدمة :
Service [hello-world] revision [hello-world-00001-yos] has been deployed and is serving 100 percent of traffic. Service URL: https://helloworld-wdl7fdwaaa-uc.a.run.app
يمكنك الآن الانتقال إلى حاويتك المنشورة من خلال فتح عنوان URL للخدمة في متصفّح ويب :
تهانينا! لقد نشرت للتو تطبيقًا مجمّعًا في صورة حاوية على Cloud Run. يعمل Cloud Run تلقائيًا وأفقيًا على ضبط صورة الحاوية لمعالجة الطلبات التي تم استلامها، ثم يتقلّص عند انخفاض الطلب. لن تدفع إلا مقابل استخدام وحدة المعالجة المركزية (CPU) والذاكرة والشبكات أثناء معالجة الطلبات.
5- حان وقت التنظيف
يمكنك اختيار حذف مشروع Google Cloud Platform لتجنُّب تحمُّل الرسوم، الأمر الذي سيؤدي إلى إيقاف الفوترة لجميع الموارد المستخدَمة ضمن هذا المشروع، أو حذف خدمة Cloud Run:
gcloud run services delete helloworld
6- ما هي الخطوات التالية؟
تتمثل الخطوة الجيدة التالية في النشر إلى تشغيل السحابة الإلكترونية على GKE.
للحصول على مزيد من المعلومات حول إنشاء حاوية HTTP بدون حالة ومناسبة لتشغيل Cloud من مصدر الرمز البرمجي ثم إرسالها إلى Container Registry، يُرجى الاطّلاع على: