إعداد ميزة وضع العلامات من جهة الخادم باستخدام App Engine

يوضّح هذا الدليل كيفية تنفيذ ما يلي:

  • وفِّر خادم وضع العلامات على Google Cloud Platform (GCP) App Engine.
  • ترقية خادم وضع العلامات لمعالجة الزيارات المباشرة
  • يمكنك زيادة عدد الخوادم التي تعمل على تشغيل حاوية أداة "إدارة العلامات من Google" أو تقليل هذا العدد.
  • يجب إبقاء إصدار خادم وضع العلامات محدّثًا بعد توفير الخادم.

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

  1. يجب أن يكون لديك حساب على Google Cloud Platform. إذا لم يكُن لديك حساب، يمكنك إنشاء حساب Google Cloud Platform جديد.
  2. يجب أن يكون لديك حساب فوترة على Google Cloud Platform. إذا لم يكن لديك حساب، أنشئ حساب فوترة في Google Cloud Platform (يتطلب ذلك دور "صانع حساب الفوترة").
  3. يجب أن يكون لديك دور "منشئ المشروع" ودور "مستخدم حساب الفوترة". اطّلِع على مزيد من المعلومات حول إضافة أدوار.

1. توفير خادم

لإنشاء خادم وضع علامات جديد على نسخة افتراضية من App Engine، عليك إجراء ما يلي:

  • أنشِئ حاوية خادم جديدة في أداة "إدارة العلامات من Google".
  • إنشاء مشروع جديد على Google Cloud (GCP)
  • توفير خادم وضع علامات جديد على App Engine
  • إضافة عنوان URL لخادم وضع العلامات الجديد إلى حاوية خادم أداة "إدارة العلامات من Google"

إنشاء حاوية خادم على أداة "إدارة العلامات من Google"

  1. افتح أداة "إدارة العلامات من Google".

  2. في صف الحساب، انقر على رمز القائمة الكاملة > إنشاء حاوية.

  3. أنشئ حاوية خادم جديدة.

  4. انقر على زرّ الاختيار "توفير خادم وضع العلامات يدويًا". يُرجى تحديد إعدادات الحاوية. ستحتاج إلى هذه المعلومات لتوفير خادمك.

إنشاء مشروع جديد على Google Cloud Platform

لإنشاء مشروع جديد على Google Cloud Platform لخادم وضع العلامات:

  1. افتح Google Cloud Console.

  2. أنشئ مشروعًا جديدًا على Google Cloud Platform.

  3. أدخِل اسمًا لمشروعك. ننصحك باستخدام رقم تعريف الحاوية لتيسير الأمر. لا يُستخدَم هذا الاسم إلا في Google Cloud Platform.

  4. دوِّن رقم تعريف مشروع Google Cloud Platform، لأنّك ستحتاج إليه لإنشاء خادم وضع العلامات.

توفير خادم وضع علامات جديد

لإنشاء خادم وضع العلامات:

  1. افتح Cloud Shell.

  2. اضبط مشروع Google Cloud Platform في Cloud Shell. استبدِل project ID برقم تعريف مشروع Google Cloud Platform الذي دونته سابقًا:

    gcloud config set project project ID
    
  3. أنشِئ خادم وضع العلامات من خلال اتّباع نص واجهة الأوامر. اضبط نوع النشر على testing

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

إضافة عنوان URL لخادم وضع العلامات إلى أداة "إدارة العلامات من Google"

  1. افتح أداة "إدارة العلامات من Google".

  2. في قسم المشرف > إعدادات الحاوية، انقر على إضافة عنوان URL. إذا لم تكن تعرف عنوان URL الخاص بخادمك، نفِّذ الأمر التالي في Cloud Shell:

    gcloud app browse
    

    النتيجة: لقد أعددت خادم وضع العلامات ووفّرت له إعدادات testing. يمكنك الآن اختبار وضع العلامات من جهة الخادم.

الإعداد المبدئي للخادم (testing)

إنّ إعدادات الاختبار مناسبة لاستكشاف المنتج من خلال إرسال كميات صغيرة من الزيارات الاختبارية واستخدام ميزة "المعاينة" في أداة "إدارة العلامات من Google". هذه الإعدادات هي فئة مثيل F1 في بيئة App Engine في المستوى العادي، ولن تتحمل أي تكاليف في معظم الحالات.

2. استخدام App Engine في مرحلة الإنتاج

في إعدادات production، تبلغ تكلفة كل خادم 40 دولار أمريكي تقريبًا في الشهر (بالدولار الأمريكي). كل خادم هو مثيل App Engine مزوّد بوحدة معالجة مركزية افتراضية واحدة وذاكرة بسعة 0.5 غيغابايت وقرص بسعة 10 غيغابايت في البيئة المرنة.

اطّلِع على إدارة تكاليف App Engine لفهم الفوترة في App Engine وكيفية ضبط تنبيهات الفوترة. ننصحك بشدة بإعداد تنبيه للفوترة.

ننصحك باستخدام 3 خوادم على الأقل للحد من خطر فقدان البيانات في حال تعطُّل أحد الخوادم. ومع ذلك، يمكنك اختيار تشغيل عدد أقل (أو أكثر) من الخوادم. نتوقع أن تعالج الخوادم التي تتزايد أو تنقص أعدادها تلقائيًا من 3 إلى 6 خوادم (الإعداد التلقائي) من 50 إلى 200 طلب في الثانية. يعتمد الأداء على عدد العلامات وفعاليتها.

لضبط خادم وضع العلامات:

  1. افتح Cloud Shell في Google Cloud Platform.
  2. اضبط مشروع Cloud Platform في Cloud Shell. استبدِل project ID برقم تعريف مشروع Google Cloud Platform الذي سجّلته سابقًا:
    gcloud config set project project ID
  3. لإعادة ضبط خادم وضع العلامات في بيئة الإنتاج، شغِّل ملف برمجي دوار للإعداد أدناه. نفِّذ المهام التالية:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. غيِّر نوع النشر إلى "production".
    2. إعداد خوادم إضافية لعرض الزيارات في قناة الإصدار العلني وننصح بثلاثة خوادم على الأقل.

اختياري: إيقاف التسجيل

تسجيل الطلبات

يُسجِّل App Engine تلقائيًا معلومات عن كل طلب (مثل مسار الطلب ومَعلمات طلب البحث وما إلى ذلك) يتلقّاه. إذا كان خادم وضع العلامات يعالج الكثير من الطلبات شهريًا (مثلاً أكثر من مليون طلب)، قد تؤدي رسائل السجلّ هذه إلى تحصيل رسوم تسجيل كبيرة. للحدّ من رسوم التسجيل أو إلغائها، ننصحك بإيقاف تسجيل طلبات App Engine.

لإيقاف تسجيل طلبات App Engine:

  1. في Google Cloud Platform، افتح جهاز توجيه السجلات. تأكَّد من أنّك في المشروع الذي يتطابق مع رقم تعريف الحاوية:
    لقطة شاشة لأداة اختيار مشروع Google Cloud Platform، تعرِض عيّنة من رقم تعريف حاوية "إدارة العلامات من Google"
  2. بالنسبة إلى النوع: حزمة Cloud Logging، الاسم: سطر _Default، اختَر القائمة المنسدلة، ثم انقر على تعديل نقطة الربط.
  3. ضمن وجهة التصدير، اختَر حزمة السجلات _Default.
  4. ضمن اختيار السجلات المطلوب تضمينها في وحدة تخزين البيانات، أضِف سطرًا جديدًا. أدخِل القاعدة التالية في فلتر الإدراج الحالي:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. لإيقاف التسجيل من موازن الحمولة أيضًا، أضِف سطرًا جديدًا وأدخِل القاعدة التالية إلى فلتر التضمين الحالي:

    NOT LOG_ID("requests")
    
  6. عدِّل "الوحدة المستهلكة" لتطبيق التغييرات. سيتم الآن استبعاد طلبات App Engine من التسجيل.

  7. تأكَّد من عدم ظهور أي طلبات جديدة في سجلّات مستكشف السجلّات.

تسجيل وحدة التحكّم

يمكن لخادم وضع العلامات أو العملاء أو العلامات في حاوية تسجيل الرسائل فيconsole التي قد تؤدي إلى تحمُّل رسوم تسجيل. لتقليل رسوم التسجيل أو إلغاؤها، يمكنك تعطيل رسائل سجل وحدة التحكم غير المرغوب فيها.

تحديد سجلات وحدة التحكّم غير المرغوب فيها:

  1. في Google Cloud Platform، افتح مستكشف السجلات.
  2. ابحث عن أي رسائل سجلّ غير مرغوب فيها مصدرها علاماتك. على سبيل المثال:

    قد ترسل العلامة السجلّات التالية:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    ابحث عن رسائل السجلّ المقابلة في حقل textPayload:
    لقطة شاشة لـ "مستكشف سجلات Google Cloud Platform"
تعرض نماذج لسجلات

لإيقاف رسالة سجلّ وحدة التحكّم:

  1. في Google Cloud Platform، افتح Logs Router. تأكَّد من أنّك في المشروع الذي يتطابق مع رقم تعريف الحاوية:
    لقطة شاشة لأداة اختيار مشروع Google Cloud Platform، وتعرض نموذج رقم تعريف
لحاوية "إدارة العلامات من Google".
  2. بالنسبة إلى النوع: حزمة Cloud Logging، الاسم: سطر _Default، اختَر القائمة المنسدلة، ثم انقر على تعديل نقطة الربط.
  3. ضمن وجهة التصدير، اختَر حزمة السجلات _Default.
  4. ضمن اختيار السجلات المطلوب تضمينها في وحدة تخزين البيانات، أضِف سطرًا جديدًا. أدخِل القاعدة التالية في فلتر الإدراج الحالي:

    NOT textPayload:"Custom message:"
    

    بالنسبة إلى سجلات وحدة التحكّم، استبدِل النص Custom message: بسلسلة فرعية من سجلّ وحدة التحكّم الذي تريد إيقافه. للحصول على فلاتر أكثر تفصيلاً، استخدِم لغة طلبات البحث عن التسجيل.

  5. تعديل الحوض لتطبيق التغييرات. يجب استبعاد رسالة logToConsole المطابقة من التسجيل.

  6. تأكَّد من عدم ظهور أي رسائل جديدة في سجلّ وحدة التحكّم في مستكشف السجلّات.

3- ربط عملية النشر بنطاقك المخصّص

يتم استضافة عملية نشر وضع العلامات من جهة الخادم التلقائية على نطاق App Engine. ننصحك بتعديل عملية النشر لاستخدام نطاق فرعي لموقعك الإلكتروني.

ربط النطاق الفرعي لموقعك الإلكتروني بخادم وضع العلامات

4. إضافة عنوان URL للخادم إلى أداة "إدارة العلامات من Google"

والآن بعد أن أصبح لديك خادم، عليك التأكّد من أنّ أداة "إدارة العلامات من Google" تعرف أنّها يجب أن تستخدِم خادمك.

  1. افتح أداة "إدارة العلامات من Google".

  2. انقر على حاوية الخادم التي تريد توجيهها إلى خادم وضع العلامات.

  3. افتح إعدادات حاوية الخادم في علامة التبويب المشرف > إعدادات الحاوية.

  4. انقر على إضافة عنوان URL والصق عنوان URL الخاص بالخادم.

  5. احفظ الإعدادات ثم ارجع إلى مساحة العمل.

5- التحقّق من الصحة

بعد الانتهاء من إعداد خادم وضع العلامات، تأكَّد من أنّه يعمل على النحو المطلوب. في مساحة العمل في أداة "إدارة العلامات من Google"، انقر على الزرّ معاينة. إذا ظهرت صفحة المعاينة، هذا يعني أنّه تم إعداد كل شيء بشكل صحيح.

معاينة عناوين URL متعددة

إذا ربطت نطاقات متعددة بخادم وضع العلامات واحد، تأكَّد من إضافة كل عنوان URL إلى إعدادات الحاوية.

إذا قدّمت عناوين URL متعددة، يجب أن تتم مطابقة جميع المسارات (السلسلة بعد اسم النطاق).

الأعمال لا تعمل
عنوان URL 1: example.com/abc
عنوان URL 2: example2.com/abc
عنوان URL 1: example.com/abc
عنوان URL 2: example2.com/def

في حال إضافة عناوين URL متعددة، سيظهر لك رمز بجانب الزر معاينة يتيح لك اختيار عنوان URL المطلوب معاينته.

تحديث إصدار خادم وضع العلامات

تتضمّن تحديثات خادم وضع العلامات الجديدة إصلاحات للثغرات الأمنية وميزات جديدة. ننصحك بتحديث خادم وضع العلامات على الأقل لكل إصدار أساسي من الإصدار (مثل الترقية من الإصدار 1.x.x إلى الإصدار 2.x.x) عندما تُعلمك أداة "إدارة العلامات من Google" بالحاجة إلى التحديث.

لتعديل خادم وضع العلامات، عليك إعادة تشغيل نص إعدادات الربط باستخدام الإعدادات نفسها التي استخدمتها سابقًا. يتم ضبط الإعدادات الحالية تلقائيًا.

لتعديل خادم وضع العلامات:

  1. افتح Cloud Shell في Google Cloud Platform.
  2. اضبط مشروع Cloud Platform في Cloud Shell. استبدِل project ID برقم تعريف مشروع Google Cloud Platform الذي سجّلته سابقًا:
    gcloud config set project project ID
  3. شغِّل نص إعدادات الربط باستخدام الإعدادات نفسها التي استخدمتها سابقًا. يتم ضبط الإعدادات الحالية تلقائيًا.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

للتأكّد من نجاح عملية التعديل:

  1. في حاوية الخادم، انقر على الزر معاينة لبدء جلسة تصحيح أخطاء جديدة وإرسال طلب في علامة تبويب منفصلة.
  2. في "الملخّص"، اختَر علامة التبويب وحدة التحكّم وتأكَّد من عدم تلقّي رسائل تطلب منك تعديل خادم وضع العلامات.

قد تعرِض أداة "إدارة العلامات من Google" رسائل تطلب منك تعديل خادم وضع العلامات لمدة تصل إلى يوم واحد بعد الانتهاء من تعديل الخادم بنجاح. ومع ذلك، ستعرض صفحة المعاينة رسالة محدّثة عن إصدار خادم وضع العلامات.

تحديد وحلّ المشاكل المتعلّقة بالمهلة القصوى لنشر الإصدار العلني

عند تشغيل النص البرمجي للإعداد لإنشاء خادم وضع العلامات أو إعادة ضبطه، قد تنتهي مهلة النص البرمجي. هناك عدة أسباب قد يؤدي كلٌّ منها إلى حدوث ذلك. وهما الأكثر شيوعًا:

  1. توفُّر أذونات غير صحيحة لحسابات الخدمة: تتحمّل حسابات الخدمة في Compute Engine وApp Engine مسؤولية نشر الإصدار العلني والحفاظ عليه. بشكل افتراضي، يتم ضبطها مسبقًا على الأذونات المناسبة. ومع ذلك، في بعض الحالات، قد تؤدي سياسة المؤسسة إلى أن تكون هذه البيانات غير صحيحة.

    1. انتقِل إلى صفحة إدارة الهوية وإمكانية الوصول والمشرف في شريط التنقّل الأيمن في وحدة تحكّم Google Cloud.
    2. ابحث عن حساب خدمة Compute Engine <project_number>-compute@developer.gserviceaccount.com وحساب خدمة App Engine<project_name>@appspot.gserviceaccount.com.
    3. يجب أن يكون لكلا حسابَي الخدمة دور Editor. إذا لم يكن لأيّ من الحسابين دور Editor، عدِّل الدور بالنقر على رمز القلم الرصاص على يسار الحساب، ثمّ انقر على القائمة المنسدلة للدور الحالي ، وانتقِل إلى أعلى الصفحة وانقر على المشروع، ثمّ المحرِّر.
  2. الحصة غير كافية: يستهلك النشر في قناة الإصدار العلني حصة Compute Engine. إذا لم يكن للمشروع حصة كافية، فقد تنتهي مهلة النشر أثناء محاولة توفير الموارد.

    1. انتقِل إلى صفحة إدارة الهوية وإمكانية الوصول والمشرف في شريط التنقّل الأيمن في وحدة تحكّم Google Cloud، ثم انقر على علامة التبويب الحصص في شريط التنقّل الأيمن.
    2. بالقرب من أعلى الصفحة، انقر على مربّع النص المسمى جدول الفلاتر واكتب Compute Engine API. انقر على النتيجة الوحيدة.
    3. تأكَّد من أنّ جميع حالات الحصة ضمن الحدّ المسموح به أو أنّها تحمل علامة اختيار خضراء.
    4. ابحث عن وحدات المعالجة المركزية وانقر عليها. تأكَّد من أنّ الاستخدام الحالي بالإضافة إلى عدد المثيلات التي يتم نشرها سيظل أقل من الحد الأقصى لمنطقة النشر.