1. مقدمة
Cloud Tasks هي خدمة قائمة انتظار مُدارة بالكامل لإدارة عدد كبير من المهام وإرسالها وتسليمها.
تتيح لك "مهام السحابة الإلكترونية" فصل أجزاء العمل المسماة المهام التي يمكن تنفيذها بشكل مستقل (مثل مهمة لتعديل إدخال في قاعدة البيانات)، خارج التدفق الرئيسي للتطبيق، وإرسالها لتتم معالجتها بشكل غير متزامن باستخدام المعالِجات التي تنشئها.
تتم إضافة المهمة التي تم إلغاء تحميلها إلى قائمة انتظار، والتي تحتفظ بالمهمة إلى أن يتم تنفيذها بنجاح أو يتعذّر تنفيذها. استنادًا إلى الإعدادات، يمكن أن تعمل قائمة الانتظار أيضًا كعنصر تحكم في تدفق الإرسال. يمكنك إنشاء قائمة الانتظار وتهيئتها، والتي تتم إدارتها بعد ذلك بواسطة خدمة Cloud Tasks. بمجرد إضافة المهام، تقوم قائمة الانتظار بإرسال المهام والتأكد من أن العمال يعالجونها بشكل موثوق.
في ما يلي بعض الميزات الرئيسية لخدمة Cloud Tasks:
- أهداف HTTP: أضِف المهام التي تستهدف أي خدمة HTTP مُشغَّلة على Compute Engine أو Google Kubernetes Engine أو Cloud Run أو Cloud Functions أو الأنظمة داخل المؤسسة بطريقة آمنة باستخدام مصادقة OAuth/OIDC العادية في المجال.
- إزالة تكرار المهام: سيتم إرسال المهام التي تمت إضافتها عدة مرات مرة واحدة فقط.
- التسليم المضمون: يمكنك ضمان تسليم المهام مرة واحدة على الأقل ويتم تسليم معظم المهام مرة واحدة بالضبط.
- عناصر التحكّم في التقييم وإعادة المحاولة: يمكنك التحكّم في عملية التنفيذ من خلال ضبط معدّل إرسال المهام والحد الأقصى لعدد المحاولات والحدّ الأدنى لوقت الانتظار بين المحاولات.
- الجدولة المستقبلية: يمكنك التحكّم في وقت تشغيل مهمة.
في هذا الدرس التطبيقي، ستتعلم أولاً كيفية إنشاء واستخدام قائمة انتظار عادية في Cloud Tasks لمهام هدف HTTP. بعد ذلك، ستتعلّم كيفية استخدام ميزة إلغاء عنوان URI على مستوى قائمة الانتظار وواجهة برمجة التطبيقات BufferTask API الجديدة لتخزين طلبات HTTP مؤقتًا بشكل أكثر سهولة باستخدام "مهام Cloud".
ما ستتعرَّف عليه
- كيفية إنشاء مهام هدف HTTP
- كيفية إنشاء مهام هدف HTTP باستخدام ميزة تجاوز عنوان URI الجديد على مستوى قائمة الانتظار
- كيفية تغيير المهام المعلَّقة باستخدام ميزة تجاوز عنوان URI الجديد على مستوى قائمة الانتظار.
- كيفية التخزين المؤقت لطلبات HTTP بسهولة باستخدام واجهة برمجة التطبيقات BufferTask API الجديدة
2. الإعداد والمتطلبات
إعداد بيئة ذاتية
- سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.
- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
- يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد تحديده). تنشئ Cloud Console سلسلة فريدة تلقائيًا. فعادةً لا تهتم بما هو. في معظم الدروس التطبيقية حول الترميز، يجب الإشارة إلى رقم تعريف المشروع (الذي يتم تحديده عادةً على أنّه
PROJECT_ID
). وإذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم تعريف عشوائي آخر. ويمكنك بدلاً من ذلك تجربة طلبك الخاص ومعرفة ما إذا كان متاحًا. ولا يمكن تغييره بعد هذه الخطوة ويبقى طوال مدة المشروع. - لمعلوماتك، هناك قيمة ثالثة، وهي رقم المشروع، الذي تستخدمه بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام الموارد/واجهات برمجة التطبيقات في Cloud. لن يؤدي إكمال هذا الدرس التطبيقي حول الترميز إلى فرض أي تكاليف، إن وُجدت. لإيقاف تشغيل الموارد لتجنب تحمُّل الفواتير إلى ما هو أبعد من هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج فترة تجريبية مجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.
من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:
من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بالبيئة بضع لحظات فقط. عند الانتهاء، من المفترض أن يظهر لك شيء مثل هذا:
يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت وتعمل على Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. يمكنك تنفيذ جميع أعمالك في هذا الدرس التطبيقي حول الترميز من خلال متصفّح. لا تحتاج إلى تثبيت أي تطبيقات.
3- إنشاء قائمة انتظار منتظمة لمهام هدف HTTP
في هذه الخطوة الأولى، ستتعرف على كيفية إنشاء قائمة انتظار عادية في Cloud Tasks وإضافة مهام HTTP إليها لاستهداف خدمة Cloud Run.
ما هي مهام هدف HTTP؟
يمكن أن تستهدف مهام هدف HTTP أي خدمة HTTP قيد التشغيل على Compute Engine أو Google Kubernetes Engine أو Cloud Run أو Cloud Functions أو الأنظمة داخل المؤسسة، وذلك بطريقة آمنة باستخدام مصادقة OAuth/OIDC العادية في المجال.
نشر خدمة تشغيل السحابة الإلكترونية
أولاً، تأكَّد من تفعيل واجهات برمجة التطبيقات المطلوبة:
gcloud services enable \ cloudtasks.googleapis.com \ run.googleapis.com
انشر خدمة تشغيل في السحابة الإلكترونية ستكون بمثابة هدف لمهام HTTP:
SERVICE1=hello1 REGION=us-central1 gcloud run deploy $SERVICE1 \ --allow-unauthenticated \ --image=gcr.io/cloudrun/hello \ --region=$REGION
إنشاء قائمة انتظار في "مهام Google"
أنشئ قائمة انتظار عادية في Cloud Tasks:
QUEUE1=http-queue LOCATION=us-central1 gcloud tasks queues create $QUEUE1 --location=$LOCATION
قم بإيقاف قائمة الانتظار مؤقتًا، حتى تتمكن من مراقبة مهام HTTP أثناء إنشائها:
gcloud tasks queues pause $QUEUE1 --location=$LOCATION
4. إنشاء مهمة HTTP واختبارها
في هذه الخطوة، ستقوم بإنشاء مهمة HTTP لاستهداف قائمة الانتظار التي أنشأتها سابقًا.
إنشاء مهمة HTTP
يمكنك إنشاء مهام HTTP باستخدام gcloud
:
gcloud tasks create-http-task \ --queue=$QUEUE1 \ --location=$LOCATION \ --url=$SERVICE1_URL \ --method=GET
اختياري: يمكنك أيضًا إنشاء مهمة HTTP باستخدام مكتبات العملاء. على سبيل المثال، يمكنك الاطّلاع على Program.cs
لنموذج C# حيث يتم التفاف طلب HTTP في Task
وTaskRequest
قبل إرساله إلى "مهام Cloud" باستخدام CloudTasksClient
:
var taskRequest = new CreateTaskRequest { Parent = new QueueName(projectId, location, queue).ToString(), Task = new Task { HttpRequest = new HttpRequest { HttpMethod = HttpMethod.Get, Url = url } } }; var client = CloudTasksClient.Create(); var response = client.CreateTask(taskRequest);
يمكنك تشغيلها على النحو التالي لإنشاء المهمة وإضافتها إلى قائمة الانتظار:
dotnet run $PROJECT_ID $LOCATION $QUEUE1 $SERVICE1_URL
اختبار مهمة HTTP
في هذه المرحلة، يتم إنشاء المهمة ولكن لم يتم تنفيذها بعد، لأنّ قائمة الانتظار متوقفة مؤقتًا. يمكنك التحقق من ذلك من خلال إدراج قوائم الانتظار:
gcloud tasks queues list --location=$LOCATION
من المفترض أن تظهر قائمة المحتوى التالي بالحالة PAUSED
:
QUEUE_NAME STATE http-queue PAUSED
استئناف قائمة الانتظار:
gcloud tasks queues resume $QUEUE --location=$LOCATION
تحقق من سجلات خدمة Cloud Run:
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 1
من المفترض أن ترى أن خدمة Cloud Run تلقت طلب HTTP GET من Cloud Tasks:
httpRequest: latency: 0.227597158s protocol: HTTP/1.1 remoteIp: 35.243.23.192 requestMethod: GET requestSize: '415' requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/ responseSize: '5510' serverIp: 216.239.32.53 status: 200 userAgent: Google-Cloud-Tasks
5- إنشاء قائمة انتظار مع إعدادات التوجيه
في هذه الخطوة، ستتعرَّف على كيفية إنشاء قائمة انتظار في Cloud Tasks مع ضبط توجيه لإضافة إلغاء لمعرّف الموارد المنتظم (URI) لبروتوكول HTTP باستخدام ميزة ضبط توجيه المهام على مستوى قائمة الانتظار. ويمكنك بعد ذلك إضافة مهام HTTP إليها لاستهداف خدمة تشغيل السحابة الإلكترونية الأولى وملاحظة أن تهيئة التوجيه تلغي معرّف الموارد المنتظم (URI) لتوجيه المهام إلى خدمة تشغيل السحابة الإلكترونية الثانية.
ما هو إعداد توجيه المهام على مستوى قائمة الانتظار؟
يغير تهيئة توجيه المهام على مستوى قائمة الانتظار توجيه مهمة HTTP لقائمة الانتظار بأكملها لجميع المهام المعلقة والجديدة. ويسمح هذا الإجراء بإنشاء المهام بشكل أسهل، لأنّه لا يلزم ضبط هدف HTTP على مستوى المهمة وينقل المزيد من التحكّم إلى مقدِّم الخدمة لأنّه قادر على ضبط الهدف لكل المهام في قائمة انتظار (على سبيل المثال، توجيه حركة البيانات إلى واجهة خلفية مختلفة إذا كانت الواجهة الخلفية الأصلية معطَّلة).
يمكن ضبط الإعدادات التالية على مستوى قائمة الانتظار:
- العناوين: تؤدي الرؤوس على مستوى قائمة الانتظار عند تحديدها على مستوى قائمة الانتظار إلى تأكيد عناوين جميع المهام في قائمة الانتظار.
- طريقة HTTP: عند تحديد طريقة HTTP على مستوى قائمة الانتظار، ستلغي طريقة HTTP لجميع المهام في قائمة الانتظار.
- عنوان URI المستهدف: يمكن أن يتم تجاهل المضيف أو المسار أو طلب البحث أو المنفذ أو المخطط (HTTP أو HTTPS) بشكلٍ فردي.
- التفويض: سيؤدي ضبط OIDC/OAuth عندما يتم تحديده على مستوى قائمة الانتظار إلى إلغاء إعداد OIDC/OAuth على مستوى المهمة.
تفعيل خدمة ثانية من Cloud Run
انشر خدمة ثانية لتشغيل السحابة الإلكترونية ستكون بمثابة هدف لإلغاء عنوان URI لبروتوكول HTTP لاحقًا:
SERVICE2=hello2 REGION=us-central1 gcloud run deploy $SERVICE2 \ --allow-unauthenticated \ --image=gcr.io/cloudrun/hello \ --region=$REGION
احفظ مضيف عنوان URL للخدمة لوقت لاحق:
SERVICE2_URL=$(gcloud run services describe $SERVICE2 --region $REGION --format 'value(status.url)') SERVICE2_HOST=$(echo $SERVICE2_URL | sed 's,http[s]*://,,g')
إنشاء قائمة انتظار في "مهام Cloud" باستخدام إعدادات التوجيه
أنشئ قائمة انتظار تتضمن تهيئة توجيه مع تجاوز عنوان URI لبروتوكول HTTP إلى خدمة التشغيل في السحابة الإلكترونية الثانية.
QUEUE2=http-queue-uri-override gcloud beta tasks queues create $QUEUE2 \ --http-uri-override=host:$SERVICE2_HOST \ --location=$LOCATION
لاحظ أن تجاوز معرف الموارد المنتظم (URI) يشير إلى خدمة تشغيل السحابة الإلكترونية الثانية. سيتم تجاهل مضيف عنوان URI الأصلي لأي مهمة HTTP تتم إضافتها إلى قائمة الانتظار. يمكنك الاطّلاع على إعدادات قائمة المحتوى التالي:
gcloud beta tasks queues describe $QUEUE2 --location=$LOCATION
من المفترض أن تلاحظ أنّ httpTarget
به عنصر uriOverride
يشير إلى مضيف الخدمة الثانية:
httpTarget: uriOverride: host: hello2-idcwffc3yq-uc.a.run.app pathOverride: {} queryOverride: {} ...
قم بإيقاف قائمة الانتظار مؤقتًا، حتى تتمكن من مراقبة مهام HTTP أثناء إنشائها:
gcloud tasks queues pause $QUEUE2 --location=$LOCATION
6- إنشاء مهمة HTTP واختبارها لقائمة الانتظار باستخدام إعدادات التوجيه
في هذه الخطوة، ستنشئ مهمة HTTP لاستهداف الخدمة الأولى وتلاحظ أنه تم تجاوز معرّف الموارد المنتظم (URI) الخاص بها من خلال قائمة الانتظار للإشارة إلى الخدمة الثانية.
إنشاء مهمة HTTP
إنشاء مهمة HTTP باستخدام عنوان URL الخاص بالخدمة الأولى:
gcloud tasks create-http-task \ --queue=$QUEUE2 \ --location=$LOCATION \ --url=$SERVICE1_URL \ --method=GET
اختبار مهمة HTTP
استئناف قائمة الانتظار:
gcloud tasks queues resume $QUEUE2 --location=$LOCATION
من المفترض أن ترى أن خدمة التشغيل السحابي الثانية (وليس الأولى) تلقت طلب HTTP GET من مهام Cloud بسبب الإلغاء:
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE2" --limit 1
--- httpRequest: latency: 0.228982142s protocol: HTTP/1.1 remoteIp: 35.187.132.84 requestMethod: GET requestSize: '426' requestUrl: https://hello2-idcwffc3yq-uc.a.run.app/ responseSize: '5510' serverIp: 216.239.34.53 status: 200 userAgent: Google-Cloud-Tasks
7. تغيير المهام المعلَّقة باستخدام إعدادات التوجيه
يمكنك أيضًا استخدام تهيئة التوجيه لتغيير معرف الموارد المنتظم (URI) لـ HTTP لجميع المهام المعلَّقة في قائمة الانتظار. يكون ذلك مفيدًا في حال تعطل خدمة الخلفية وأردت التوجيه بسرعة إلى خدمة أخرى. لنتعرّف على طريقة عمل ذلك في هذه الخطوة.
إيقاف قائمة الانتظار مؤقتًا مرة أخرى:
gcloud tasks queues pause $QUEUE2 --location=$LOCATION
إنشاء مهمة HTTP باستخدام google.com
كعنوان URL للمهمة:
gcloud tasks create-http-task \ --queue=$QUEUE2 \ --location=$LOCATION \ --url=https://www.google.com \ --method=GET
لا تزال المهمة معلّقة بسبب إيقاف قائمة الانتظار مؤقتًا.
والآن، عليك تحديث إلغاء URI لبروتوكول HTTP للإشارة إلى الخدمة الأولى. سيؤدي هذا الإجراء إلى إلغاء مضيف المهمة المعلَّقة من google.com
إلى مضيف الخدمة الأولى:
SERVICE1_URL=$(gcloud run services describe $SERVICE1 --region $REGION --format 'value(status.url)') SERVICE1_HOST=$(echo $SERVICE1_URL | sed 's,http[s]*://,,g') gcloud beta tasks queues update $QUEUE2 \ --http-uri-override=host:$SERVICE1_HOST \ --location=$LOCATION
استئناف قائمة الانتظار:
gcloud tasks queues resume $QUEUE2 --location=$LOCATION
ينبغي أن ترى أن خدمة التشغيل في السحابة الإلكترونية الأولى تلقت طلب HTTP GET من "مهام Cloud" بسبب الإلغاء (بدلاً من google.com
):
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 1 --- httpRequest: latency: 0.228982142s protocol: HTTP/1.1 remoteIp: 35.187.132.84 requestMethod: GET requestSize: '426' requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/ responseSize: '5510' serverIp: 216.239.34.53 status: 200 userAgent: Google-Cloud-Tasks
8. إنشاء قائمة انتظار لواجهة BufferTask API
يمكنك عادةً إنشاء المهام باستخدام واجهة برمجة تطبيقات "مهام Google" إما من gcloud
أو من مكتبات عملاء "مهام Google". ويؤدي ذلك إلى تحميل التطبيقات عبء التفاف طلبات HTTP في "مهام Google" باستخدام مكتبات العملاء، كما يؤدي أيضًا إلى إنشاء تبعية بين التطبيقات ومكتبات عملاء "مهام Google".
في هذه الخطوة، ستتعرف على كيفية الاستفادة من تجاوز عنوان URI على مستوى قائمة الانتظار وواجهة برمجة التطبيقات BufferTask API الجديدة لإنشاء مهام هدف HTTP بسهولة أكبر عن طريق إرسال طلب HTTP. يمكن الآن لأي تطبيق يمكنه إرسال طلبات HTTP إنشاء مهام هدف HTTP.
ما هي واجهة برمجة التطبيقات BufferTask API؟
واجهة برمجة التطبيقات CreateTask هي الطريقة القديمة لإنشاء "مهام Google" وتتطلب من العميل إرسال كائن "Task" (مهمة) إلى واجهة برمجة التطبيقات مع ضبط جميع الحقول المطلوبة.
BufferTask API هي ميزة جديدة تتيح للمستخدمين إنشاء مهمة HTTP بدون الحاجة إلى توفير أي إعدادات للمهام (عنوان URL لـ HTTP أو الرؤوس أو التفويض)، ما يسمح لك بإرسال رسالة أو نص طلبك إلى واجهة برمجة التطبيقات Buffer API.
ويتيح ذلك تكاملاً أسهل مع الخدمات، إذ يمكن الآن نشر "مهام Cloud" أمام خدمتك بدون الحاجة إلى إجراء أيّ تغييرات على الرموز من جهة العميل. سيتم ربط أي طلب HTTP عشوائي يتم إرساله إلى واجهة برمجة التطبيقات BufferTask API ككائن مهمة ويتم تسليمه إلى الوجهة المعيّنة على مستوى قائمة الانتظار.
لاستخدام واجهة برمجة التطبيقات BufferTask API، يجب ضبط إعدادات ضبط URI الهدف في قائمة الانتظار، أو بعبارة أخرى، تُعدّ ميزة ضبط التوجيه على مستوى قائمة الانتظار شرطًا أساسيًا لاستخدام واجهة برمجة التطبيقات BufferTask API.
إنشاء قائمة انتظار في Cloud Tasks مع ضبط التوجيه
أنشئ قائمة انتظار مع تهيئة توجيه تشير إلى الخدمة الأولى التي نشرناها في الخطوة السابقة:
SERVICE1=hello1 SERVICE1_URL=$(gcloud run services describe $SERVICE1 --region $REGION --format 'value(status.url)') SERVICE1_HOST=$(echo $SERVICE1_URL | sed 's,http[s]*://,,g') QUEUE3=http-queue-uri-override-buffer gcloud beta tasks queues create $QUEUE3 \ --http-uri-override=host:$SERVICE1_HOST \ --location=$LOCATION
قم بإيقاف قائمة الانتظار مؤقتًا، حتى تتمكن من مراقبة مهام HTTP أثناء إنشائها:
gcloud tasks queues pause $QUEUE3 --location=$LOCATION
9. طلبات HTTP للمخزن المؤقت باستخدام واجهة برمجة التطبيقات BufferTask API
في هذه الخطوة، سيتم تخزين طلبات HTTP GET أو POST البسيطة مؤقتًا باستخدام واجهة برمجة التطبيقات BufferTask API. ضمن الغلاف، ستعمل خدمة "مهام Cloud" على دمج طلبات HTTP هذه في مهام HTTP باستخدام إعدادات ضبط التوجيه التلقائية لقائمة الانتظار.
أولاً، سجِّل الدخول للحصول على رمز الدخول وضبط بعض المتغيرات:
gcloud auth application-default login ACCESS_TOKEN=$(gcloud auth application-default print-access-token) PROJECT_ID=$(gcloud config get-value project) TASKS_QUEUES_API="https://cloudtasks.googleapis.com/v2beta3/projects/$PROJECT_ID/locations/$LOCATION/queues"
إنشاء مهمة HTTP
إنشاء مهمة HTTP باستخدام واجهة برمجة التطبيقات BufferTask API. لاحظ كيف يكون طلب HTTP GET بسيطًا بدون الحاجة إلى إنشاء مهمة:
curl -X GET "$TASKS_QUEUES_API/$QUEUE3/tasks:buffer" \ -H "Authorization: Bearer $ACCESS_TOKEN"
إنشاء مهمة HTTP أخرى باستخدام طلب HTTP POST ونص أساسي:
curl -X POST "$TASKS_QUEUES_API/$QUEUE3/tasks:buffer" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d "{'message': 'Hello World'}"
اختياري: يمكنك أيضًا إنشاء مهمة HTTP باستخدام مكتبات العملاء. على سبيل المثال، يمكنك الاطّلاع على Program.cs
لنموذج C# حيث يتم إرسال طلب HTTP GET مباشرةً إلى BufferTask API بدون الحاجة إلى لفّه في Task
أو الحاجة إلى مكتبة العميل لمهام Cloud:
var BufferTaskApiUrl = $"https://cloudtasks.googleapis.com/v2beta3/projects/{ProjectId}/locations/{Location}/queues/{Queue}/tasks:buffer"; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Authorization", $"Bearer {AccessToken}"); var response = await client.GetAsync(BufferTaskApiUrl); var content = await response.Content.ReadAsStringAsync(); Console.WriteLine($"Response: {content}"); }
يمكنك تشغيله على النحو التالي:
dotnet run $PROJECT_ID $LOCATION $QUEUE3 $ACCESS_TOKEN
تعتني واجهة برمجة التطبيقات BufferTask API بإنشاء مهمة من طلبات HTTP وتضيف عنوان URL من إعدادات ضبط توجيه قائمة الانتظار لمعرّف الموارد المنتظم (URI).
اختبار مهمة HTTP
استئناف قائمة الانتظار:
gcloud tasks queues resume $QUEUE3 --location=$LOCATION
من المفترض أن ترى أنّ خدمة Cloud Run تلقت طلبات HTTP GET وPOST من Cloud Tasks:
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 4
--- httpRequest: latency: 0.002279292s protocol: HTTP/1.1 remoteIp: 35.243.23.42 requestMethod: POST requestSize: '777' requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/ responseSize: '5450' serverIp: 216.239.32.53 status: 200 userAgent: Google-Cloud-Tasks ... httpRequest: latency: 0.228982142s protocol: HTTP/1.1 remoteIp: 35.187.132.84 requestMethod: GET requestSize: '426' requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/ responseSize: '5510' serverIp: 216.239.34.53 status: 200 userAgent: Google-Cloud-Tasks
10. تهانينا
تهانينا، لقد أنهيت الدرس التطبيقي حول الترميز.
للمتابعة، يمكنك تجربة Cloud Tasks كمخزن مؤقت بين Pub/Sub وCloud Run، حيث يمكنك الاطّلاع على مثال واقعي حول كيفية مساعدة هذه الميزات الجديدة في Cloud Tasks في إنشاء قائمة انتظار للمخزن المؤقت بسهولة بين الخدمات.
تنظيف البيانات (اختياري)
لتجنب تكبد أي رسوم، من الجيد تنظيف الموارد.
إذا لم تكن بحاجة إلى المشروع، يمكنك ببساطة حذفه من خلال اتّباع الخطوات التالية:
gcloud projects delete $PROJECT_ID
إذا كنت بحاجة إلى المشروع، يمكنك حذف الموارد بشكل فردي.
احذف خدمات تشغيل السحابة الإلكترونية:
gcloud run services delete $SERVICE1 --region $REGION gcloud run services delete $SERVICE2 --region $REGION
حذف قوائم انتظار "مهام Google":
gcloud tasks queues delete $QUEUE1 --location=$LOCATION gcloud tasks queues delete $QUEUE2 --location=$LOCATION gcloud tasks queues delete $QUEUE3 --location=$LOCATION
المواضيع التي تناولناها
- كيفية إنشاء مهام هدف HTTP
- كيفية إنشاء مهام هدف HTTP باستخدام ميزة تجاوز عنوان URI الجديد على مستوى قائمة الانتظار
- كيفية تغيير المهام المعلَّقة باستخدام ميزة تجاوز عنوان URI الجديد على مستوى قائمة الانتظار.
- كيفية التخزين المؤقت لطلبات HTTP بسهولة باستخدام واجهة برمجة التطبيقات BufferTask API الجديدة