1. مقدمة
نظرة عامة
تعتبر وظائف Cloud Run طريقة جديدة لنشر أعباء العمل باستخدام نماذج أحداث GCF المألوفة وتوقيع الوظائف. بدلاً من استخدام عملية الإنشاء التي تستند إلى رأينا وعمليات ضبط النشر، تمنحك وظائف Cloud Run إمكانية تحكُّم مباشر في "الخدمة" الأساسية التي تم إنشاؤها على Cloud Run.
من خلال وظائف Cloud Run، نقدّم تجربة مستخدم بسيطة لنشر المصدر في Cloud Run، ما يتيح للمطوّرين التحكّم بشكل كامل في أعباء العمل باستخدام إعدادات Cloud Run.
يستخدم هذا الدرس التطبيقي حول الترميز نماذج العقدة في الأمثلة أدناه. ومع ذلك، يمكنك استخدام نماذج الرموز من الجيل الثاني لـ Cloud Functions باللغة التي تختارها:
- نماذج لدوال بايثون
- نماذج لدوال Nodejs
- الانتقال إلى نماذج للدوال
- نماذج دوال Java
- نماذج دوال PHP
- نماذج لدوال Ruby
- نماذج لدوال.NET
المعلومات التي ستطّلع عليها
- كيفية نشر دالة Cloud Run التي يتم تشغيلها بواسطة طلب HTTP
2. ضبط متغيّرات البيئة وتفعيل واجهات برمجة التطبيقات
ترقية gcloud CLI
يجب أولاً تثبيت إصدار حديث من واجهة سطر الأوامر gcloud. يمكنك تحديث واجهة سطر الأوامر من خلال تنفيذ الأمر التالي:
gcloud components update
إعداد متغيرات البيئة
يمكنك ضبط متغيّرات البيئة التي سيتم استخدامها خلال هذا الدرس التطبيقي حول الترميز.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
تفعيل واجهات برمجة التطبيقات
قبل بدء استخدام هذا الدرس التطبيقي حول الترميز، عليك تفعيل العديد من واجهات برمجة التطبيقات. يتطلّب هذا الدرس التطبيقي حول الترميز استخدام واجهات برمجة التطبيقات التالية. يمكنك تمكين واجهات برمجة التطبيقات هذه عن طريق تشغيل الأمر التالي:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3- إنشاء دالة HTTP
أولاً، أنشئ دليلاً لرمز المصدر والقرص المضغوط في هذا الدليل.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
بعد ذلك، أنشِئ ملف package.json
يتضمّن المحتوى التالي:
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
بعد ذلك، أنشِئ ملف index.js
يتضمّن المحتوى التالي:
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. نشر الدالة
يمكنك الآن نشر دالة Cloud Run من خلال تشغيل الأمر التالي:
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
يستخدِم هذا الأمر buildpacks لتحويل رمز مصدر الدالة إلى صورة حاوية جاهزة للإنتاج.
ملاحظات:
- تُستخدَم علامة –source لإخبار Cloud Run بإنشاء الدالة في خدمة مستندة إلى حاوية قابلة للتشغيل
- يتم استخدام علامة –الدالة (جديدة) لضبط نقطة دخول الخدمة الجديدة لتكون توقيع الدالة الذي تريد أن يتم استدعاؤه.
- (اختياري) عدم مصادقة –no-allow، لمنع أن تكون وظيفتك قابلة للاستدعاء بشكل علني
5- اختبار الدالة
عند اكتمال النشر، سيظهر لك عنوان URL للخدمة. ولاستدعاء الوظيفة، يجب إرسال طلب تمت مصادقته مع رمز الهوية أو رمز الهوية لمبدأ لديه دور "مُستدعي Cloud Runker"، كما هو موضّح أدناه:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6- تهانينا!
تهانينا على إكمال الدرس التطبيقي حول الترميز.
ننصحك بمراجعة المستندات حول وظائف التشغيل في السحابة الإلكترونية.
النقاط التي تناولناها
- كيفية نشر دالة Cloud Run التي يتم تشغيلها بواسطة طلب HTTP
7. تَنظيم
لتجنب دفع رسوم غير مقصودة، (على سبيل المثال، إذا تم استدعاء خدمات Cloud Run عن غير قصد أكثر من تخصيص استدعاء Cloud Run الشهري في الفئة المجانية)، يمكنك إما حذف Cloud Run أو حذف المشروع الذي أنشأته في الخطوة 2.
لحذف دالة Cloud Run، انتقِل إلى Cloud Run Console على https://console.cloud.google.com/run واحذف خدمة crf-http-codelab
.
إذا اخترت حذف المشروع بالكامل، يمكنك الانتقال إلى https://console.cloud.google.com/cloud-resource-manager، واختيار المشروع الذي أنشأته في الخطوة الثانية، ثم اختيار "حذف". إذا حذفت المشروع، ستحتاج إلى تغيير المشاريع في حزمة تطوير البرامج (SDK) للسحابة الإلكترونية. يمكنك عرض قائمة بجميع المشاريع المتاحة من خلال تشغيل gcloud projects list
.