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

أنت تعرض مستندات 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 إلى "الاستهدافات المستضافة"، وسيتم ضغط أي ملفات محلية/خاصة مُدرَجة في مصفوفة bundledDependencies في 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 لمزيد من التفاصيل.
  3. ادخل إلى صفحة تهيئة خرائط القيم الرئيسية، كما هو موضح أدناه.

    Edge

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

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

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

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

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

    المكان:

    • تتطابق سمة name ذات المستوى الأعلى مع اسم متغيّر البيئة الذي سيتم إنشاؤه.
    • يتوافق الاسم ضمن valueRef مع وحدة تحكّم افتراضية في الذاكرة (KVM) التي أنشأتها سابقًا.
    • تتوافق السمة key مع المفتاح الذي يتم ربطه بالرمز المميز npm الذي أضفته إلى KVM.
  10. أنشئ ملف .npmrc في الدليل نفسه مثل package.json. يجب أن يبدو ملف ملف npmrc مماثلاً لما يلي:
    //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 إلى نقطة النهاية، لن يتم تشغيل التطبيق على النحو المتوقّع.
  • لا بأس إذا كانت نقطة النهاية تعرِض حالة HTTP 404 "لم يتم العثور على الصفحة". لا يُستخدَم الرمز /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 مثالاً فقط.