1. مقدمة
نظرة عامة
توفّر "وظائف Cloud Run" طريقة جديدة لنشر أحمال العمل باستخدام نماذج معالجة الأحداث وتوقيع الدوال المألوفة في "وظائف السحابة الإلكترونية من Google". بدلاً من استخدام عملية الإنشاء والضبط المسبقين لعمليات النشر، تمنحك دوال Cloud Run إمكانية التحكّم المباشر في الخدمة الأساسية التي تم إنشاؤها على Cloud Run.
من خلال دوال Cloud Run، نوفّر تجربة مستخدم بسيطة لنشر المصدر في Cloud Run، ما يمنح المطوّرين تحكّمًا كاملاً في أحمال العمل باستخدام إعدادات Cloud Run.
يستخدم هذا الدرس التطبيقي حول الترميز عيّنات nodejs في الأمثلة أدناه. ومع ذلك، يمكنك استخدام نماذج التعليمات البرمجية من الجيل الثاني من Cloud Functions باللغة التي تختارها:
- أمثلة على دوال Python
- أمثلة على دوال Node.js
- أمثلة على دوال Go
- أمثلة على دوال Java
- أمثلة على دوال PHP
- أمثلة على دوال Ruby
- أمثلة على دوال .NET
ما ستتعلمه
- كيفية نشر دالة Cloud Run يتم تشغيلها من خلال طلب HTTP
2. ضبط متغيرات البيئة وتفعيل واجهات برمجة التطبيقات
ترقية gcloud CLI
أولاً، يجب تثبيت إصدار حديث من gcloud CLI. يمكنك تعديل واجهة سطر الأوامر من خلال تنفيذ الأمر التالي:
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
يستخدم هذا الأمر حِزم الإنشاء لتحويل رمز المصدر الخاص بالدالة إلى صورة حاوية جاهزة للإنتاج.
يُرجى مراعاة ما يلي:
- يتم استخدام العلامة –source لإخبار Cloud Run بإنشاء الدالة في خدمة مستندة إلى حاوية قابلة للتشغيل
- يتم استخدام العلامة --function (جديدة) لضبط نقطة دخول الخدمة الجديدة لتكون توقيع الدالة التي تريد استدعاءها
- (اختياري) –no-allow-unauthenticated لمنع استدعاء وظيفتك بشكل علني
5- اختبار الدالة
عند اكتمال عملية النشر، سيظهر لك عنوان URL الخاص بالخدمة. لاستدعاء الدالة، عليك إرسال طلب مصادَق عليه باستخدام رمز الهوية أو رمز هوية أساسي لديه دور Cloud Run Invoker، كما هو موضّح أدناه:
# 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.
المواضيع التي تناولناها
- كيفية نشر دالة Cloud Run يتم تشغيلها من خلال طلب HTTP
7. تَنظيم
لتجنُّب الرسوم غير المقصودة (على سبيل المثال، إذا تم استدعاء خدمات Cloud Run مرات أكثر من مخصص استدعاء Cloud Run الشهري في المستوى المجاني)، يمكنك إما حذف Cloud Run أو حذف المشروع الذي أنشأته في الخطوة 2.
لحذف وظيفة Cloud Run، انتقِل إلى Cloud Run Cloud Console على الرابط https://console.cloud.google.com/run واحذف خدمة crf-http-codelab.
إذا اخترت حذف المشروع بأكمله، يمكنك الانتقال إلى https://console.cloud.google.com/cloud-resource-manager، واختيار المشروع الذي أنشأته في الخطوة 2، ثم النقر على "حذف". إذا حذفت المشروع، عليك تغيير المشاريع في Cloud SDK. يمكنك الاطّلاع على قائمة بجميع المشاريع المتاحة من خلال تنفيذ gcloud projects list.