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

أنت تعرض مستندات 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

    للوصول إلى صفحة ضبط "Key Value Maps" باستخدام واجهة مستخدم Edge:

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

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

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

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

    المكان:

    • تتوافق سمة name المستوى الأعلى مع اسم البيئة. المتغير الذي سيتم إنشاؤه.
    • يتجاوب الاسم ضمن valueref مع KVM الذي أنشأناه سابقًا.
    • تتوافق السمة key مع المفتاح الذي يرتبط بالرمز المميز npm الذي مضافة إلى آلة متجه الدعم.
  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 لم يتم العثور على 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 هو مجرد مثال.