مهام الأهداف المستضافة

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

إلغاء نشر خادم وكيل للأهداف المستضافة

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

حذف خادم وكيل للأهداف المستضافة

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

الوصول إلى ملفات السجلّ

تُعد ملفات السجلّ مفيدة لتصحيح الأخطاء وتحديد المشاكل وحلّها. يمكنك عرض نوعَين من ملفات السجلّ لعملية نشر الأهداف المستضافة:

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

الوصول إلى السجلات من واجهة مستخدم Edge

  1. انتقِل إلى: apigee.com/edge
  2. أدخِل بيانات اعتماد تسجيل الدخول وانقر على تسجيل الدخول.
  3. اختر التطوير > الخوادم الوكيلة لواجهة برمجة التطبيقات في قائمة التنقل الجانبية.
  4. اختَر الخادم الوكيل الذي تريد عرض سجلّاته.
  5. انقر على علامة التبويب التطوير.
  6. للاطّلاع على سجلّ الإصدار، انقر على إنشاء السجلّات.
  7. للاطّلاع على سجلّ وقت التشغيل، انقر على سجلّات وقت التشغيل.

الوصول إلى السجلات باستخدام واجهة برمجة التطبيقات

يمكنك أيضًا استخدام واجهة برمجة تطبيقات Edge لاسترداد سجلات الأهداف المستضافة. لمعرفة التفاصيل، يُرجى الاطّلاع على الحصول على سجلات Node.js المخزّنة مؤقتًا.

استخدام مستودع npm الخاص

يوضِّح هذا القسم كيفية نشر خادم وكيل Node.js في الأهداف المستضافة في الحالات التي تستخدم فيها مستودع NPM الخاص في بيئة التطوير.

المعلومات التي تحتاج إلى معرفتها عن استخدام المستودع الخاص

عند نشر تطبيق Node.js على Edge، يتم استيراد جميع تبعيات المشروع تلقائيًا كجزء من عملية النشر. وفي الأساس، تشغِّل الأهداف المستضافة npm install على الرمز عند نشره. ومع ذلك، إذا كنت تستخدم مستودع NPM الخاص في بيئة التطوير، لا يمكن حلّ التبعيات الخاصة في السحابة الإلكترونية. في هذه الحالة، يكون الحل هو استخدام الخيار --bundled-dependencies عند استخدام أداة النشر apigeetool. راجِع أيضًا نشر Node.js من النظام إلى Edge.

عند استخدام علامة --bundled-dependencies في apigeetool، سيتم تحميل تطبيق Node.js إلى الأهداف المستضافة وسيتم ضغط أي ملفات محلية/خاصة مُدرجة في مصفوفة bundledCredentialions في package.json وتحميلها مع الحزمة.

يُرجى العلم أنّه في حال إجراء نسخ مطابق لمستودع علني من NPM داخليًا، سيتعذّر النشر إذا كانت حزمة النشر الخاصة بك تتضمن ملف .npmrc أو package-lock.json يشير إلى النسخة المطابقة الخاصة بك. وفي هذه الحالة، تأكَّد من حذف .npmrc أو package-lock.json من حزمة الخادم الوكيل التي تنوي نشرها.

النشر باستخدام مستودع خاص لإدارة الأجهزة الجوّالة للمؤسسات (NPM)

لاستخدام الوحدات المتوفرة من مستودع خاص تابع لإدارة NPM، اتبع الخطوات التالية:

  1. تسجيل الدخول إلى npm:
    npm login
  2. الحصول على الرمز المميز لمصادقة npm:
    1. حدد موقع .npmrc (يجب أن يكون في ~/.npmrc).
    2. في .npmrc، لاحظ الرمز المميز في نهاية السطر الذي يبدو على النحو التالي:

      //registry.npmjs.org/:_authToken=****
    3. أو استخدم طلبات npm token <list | create | revoke> لإدراج رمز مميّز للمصادقة أو إنشائه أو إبطاله. اطّلِع على مستندات npm-token لمزيد من التفاصيل.
  3. ادخل إلى صفحة إعداد خرائط القيم الرئيسية، كما هو موضَّح أدناه.

    Edge

    للوصول إلى صفحة إعداد خرائط القيمة الرئيسية باستخدام واجهة مستخدم Edge:

    1. سجِّل الدخول إلى apigee.com/edge.
    2. اختَر المشرف > البيئات > خرائط القيم الرئيسية في شريط التنقّل الأيمن.

    كلاسيكي Edge (السحابة الإلكترونية الخاصة)

    للوصول إلى صفحة إعداد خرائط القيمة الرئيسية باستخدام واجهة مستخدم الإصدار الكلاسيكي من Edge:

    1. سجِّل الدخول إلى http://ms-ip:9000، حيث يشير ms-ip إلى عنوان IP أو اسم نظام أسماء النطاقات لعقدة خادم الإدارة.
    2. حدد واجهات برمجة التطبيقات > تهيئة البيئة > خرائط القيم الرئيسية في شريط التنقل العلوي.
  4. انقر على + خريطة قيمة المفاتيح.
  5. في مربّع الحوار "ربط قيمة المفتاح الجديدة"، أدخِل اسمًا واختَر مشفَّرة.
  6. انقر على إضافة.
  7. أضِف الرمز المميّز للمصادقة الذي حددته سابقًا أو أنشأته كإدخال جديد في كل جهاز من KVM الذي أنشأته للتو.
  8. في ملف app.yaml، أضِف إدخالاً يشير إلى KVM والمفتاح المرتبطَين بالرمز المميّز لمصادقة npm. من المفترض أن تظهر بشكلٍ مشابه لما يلي:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    المكان:

    • تتوافق سمة المستوى الأعلى name مع اسم متغير البيئة الذي سيتم إنشاؤه.
    • يتجاوب name ضمن valueRef مع KVM الذي أنشأته سابقًا.
    • تتطابق السمة key مع المفتاح المرتبط برمز npm الذي أضفته إلى KVM.
  10. أنشئ ملف npmrc في الدليل نفسه مثل package.json. من المفترَض أن يبدو هذا الملف على النحو التالي:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    ، أو إذا كنت لا تستخدم registry.npmjs.org، يمكنك ضبط النطاق في ملف .npmrc عن طريق إضافة سطر مثل هذا @myscope:registry=https://mycustomregistry.example.org. راجِع أيضًا مستندات npmrc.
  11. حمِّل أو حدِّث وكيل Node.js باستخدام ملف npmrc وملفات app.yaml المضمَّنة.
  12. تأكّد من أن الخادم الوكيل الجديد أو المُحدَّث ينشر ويتوافق مع وحدة المستودع الخاص المطلوبة.
  13. إذا لم يتم تفعيل الخادم الوكيل، تحقَّق من سجلّات الإصدار لمعرفة ما إذا تعذّر تثبيت وحدة npm الخاصة. في هذه الحالة:
    1. ضمن علامة التبويب "التطوير"، تأكد من توفّر .npmrc.
    2. تأكَّد من أنّ الرمز المميّز صالح (حاوِل تثبيت الوحدة محليًا مع الرمز المتوفّر في kvm).
    3. إذا كنت تستخدم نطاقًا مخصّصًا، تأكَّد من ضبطه.

تحديد إصدار NPM للتبعيات المجمّعة

وبشكلٍ تلقائي، يتم استخدام الإصدار 4 من NPM لتثبيت التبعيات المجمّعة في بيئة الأهداف المستضافة. مع ذلك، إذا أردت استخدام إصدار مختلف من NPM، يمكنك تحديده في متغيّر بيئة NPM_VERSION. يمكنك ضبط هذا المتغيّر في ملف بيان التطبيق. يمكنك الاطّلاع على عناصر ملف البيان لمعرفة التفاصيل.

إذا كنت تستخدم تبعيات مجمّعة، ولم تحدّد NPM_VERSION، تستخدم الأهداف المستضافة الإصدار 4 من NPM بشكل تلقائي. إذا كنت لا تستخدم تبعيات مجمّعة، سيتم استخدام إصدار NPM المضمّن في وقت تشغيل Node.js الذي حددته.

مثال على الاختلافات المجمّعة

للحصول على مثال يوضِّح ميزة التبعيات المجمَّعة مع الأهداف المستضافة، اطّلِع على كيفية إنشاء تطبيق Node.js مع دوال مستضافة باستخدام الوحدات المخصّصة.

إضافة نقطة نهاية للتحقق من الصحة

يمكنك تنفيذ نقطة نهاية التحقق من السلامة لتطبيق Node.js. تستخدم Apigee نقطة النهاية هذه عندما يبدأ تطبيق Node.js لديك في التحقق من أن التطبيق قيد التشغيل في الحاوية.

تكون نقطة النهاية التي تتوقّعها Apigee هي /health تلقائيًا. يمكنك تغيير نقطة النهاية التلقائية من خلال تحديد نقطة النهاية في متغيّر بيئة باسم HOSTED_TARGET_HEALTH_CHECK_PATH. يمكنك ضبط هذا المتغيّر في ملف البيان الخاص بالتطبيق. يمكنك الاطّلاع على عناصر ملف البيان لمعرفة التفاصيل.

لا يلزم تنفيذ نقطة نهاية للتحقق من الصحة. في المقابل، إذا نفذت نقطة نهاية للتحقق من الصحة، يُرجى مراعاة ما يلي:

  • إذا تم الخروج من تطبيقك عند وصول Apigee إلى نقطة النهاية، لن يبدأ تشغيل التطبيق على النحو المتوقَّع.
  • لا بأس إذا كانت نقطة النهاية تعرض حالة 404 Not Found HTTP. لا يتم استخدام /health أو HOSTED_TARGET_HEALTH_CHECK_PATH إلا للتحقّق مما إذا كان تطبيقك قيد التشغيل. ويتم تجاهل الاستجابة الفعلية.

تغيير موقع ذاكرة التخزين المؤقت NPM

تستخدم الإصدارات الأحدث من Node.js إصدارًا من NPM يستخدم /root/.npm لذاكرة التخزين المؤقت NPM. يمثِّل هذا الموقع الجغرافي مشكلة بالنسبة إلى الأهداف المستضافة لأنّ موقع الدليل هذا للقراءة فقط لأنّ وقت تشغيل الهدف المستضاف يستخدم نظام ملفات tmpfs حيث يكون /tmp فقط قابلاً للكتابة. لحلّ هذه المشكلة، يمكنك ضبط متغير بيئة npm_config_cache في ملف app.yaml (ملف البيان) الخاص بالتطبيق على دليل في /tmp. مثلاً:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

تشغيل تطبيقك بدون إدارة نقاط النهاية (NPM)

تستخدم الأهداف المستضافة npm start لتشغيل تطبيق الاستهداف المستضاف تلقائيًا. في المَهمة السابقة، ناقشنا مشكلة تتعلّق باستخدام إدارة NPM، إذ ستحاول الإصدارات الأحدث استخدام /root/.npm لذاكرة التخزين المؤقت الخاصة بالميزة NPM، وهي طريقة يتعذّر فيها الكتابة وتؤدي إلى تعذُّر تشغيل الاستهداف المستضاف. ورغم أنّ المهمة السابقة ستتجاوز هذه المشكلة، هناك خيار آخر وهو تشغيل التطبيق بدون إدارة نقاط النهاية (NPM). لإجراء ذلك، يمكنك استخدام قيم command وargs في app.yamlملف (ملف البيان) لتطبيقك مباشرةً باستخدام node index.js. على سبيل المثال:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
بالطبع، يمكنك استخدام أي أمر تراه مناسبًا، وnode index.js هو مجرد مثال.