أنت تعرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
إلغاء نشر الخادم الوكيل الخاص بالأهداف المستضافة
عند إلغاء نشر خادم وكيل Edge يتضمّن تطبيقًا مستضافًا، يتم إلغاء نشر تطبيق "الاستهدافات المستضافة" المرتبط به، ولكن لا يتم حذف صورة التطبيق الأساسية. في حال إعادة نشر الخادم الوكيل، ستتم إعادة نشر تطبيق "الأهداف المستضافة".
حذف خادم وكيل للاستهدافات المستضافة
بعد حذف خادم وكيل للاستهدافات المستضافة، سيتوقف تشغيل مثيلات بيئة التشغيل الأساسية خلال فترة زمنية معيّنة. ومع ذلك، سيستمر رمز التطبيق.
الوصول إلى ملفات السجلّ
تكون ملفات السجلّ مفيدة لتصحيح الأخطاء وتحديد المشاكل وحلّها. يمكنك عرض نوعين من ملفات السجلّات الخاصة بعملية نشر الأهداف المستضافة:
- إنشاء سجلّ: يعرض هذا الخيار النتائج ذات الصلة بنشر تطبيق الأهداف المستضافة وإنشاءه.
- سجلّ وقت التشغيل - يعرض الناتج المتعلق بتطبيق الأهداف المستضافة قيد التشغيل. يتم تحديد نطاق سجلات وقت التشغيل في البيئة، كما يعرض معلومات السجلّ لمراجعة الخادم الوكيل المنشورة حاليًا.
الوصول إلى السجلات من واجهة مستخدم Edge
- انتقِل إلى: apigee.com/edge
- أدخِل بيانات اعتماد تسجيل الدخول وانقر على تسجيل الدخول.
- اختَر التطوير > الخوادم الوكيلة لواجهة برمجة التطبيقات في قائمة التنقل الجانبية.
- اختَر الخادم الوكيل الذي تريد عرض سجلّاته.
- انقر على علامة التبويب تطوير.
- للاطّلاع على سجلّ الإنشاء، انقر على سجلّات الإنشاء.
- للاطّلاع على سجلّ بيئة التشغيل، انقر على سجلات وقت التشغيل.
الوصول إلى السجلات باستخدام واجهة برمجة التطبيقات
يمكنك أيضًا استخدام واجهة برمجة تطبيقات 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 الخاص، اتبع الخطوات التالية:
- سجِّل الدخول إلى npm:
npm login
- الحصول على رمز مميّز لمصادقة npm:
- حدِّد موقع npmrc. (يجب أن يكون بالتنسيق ~/.npmrc).
- في .npmrc، دوِّن الرمز المميّز في نهاية السطر الذي يظهر على النحو التالي:
//registry.npmjs.org/:_authToken=****
- أو يمكنك استخدام أوامر
npm token <list | create | revoke>
لإدراج رمز مميّز للمصادقة أو إنشاؤه أو إبطاله. راجِع مستندات الرمز المميّز npm لمزيد من التفاصيل. - ادخل إلى صفحة تهيئة خرائط القيم الرئيسية، كما هو موضح أدناه.
Edge
للوصول إلى صفحة إعدادات "خرائط المفاتيح والقيم" باستخدام واجهة مستخدِم Edge:
- سجِّل الدخول إلى apigee.com/edge.
- اختَر المشرف > البيئات > خرائط القيم الرئيسية في شريط التنقّل الأيمن.
الإصدار الكلاسيكي Edge (السحابة الإلكترونية الخاصة)
للوصول إلى صفحة إعداد "خرائط القيم الرئيسية" باستخدام واجهة مستخدم Classic Edge:
- سجِّل الدخول إلى
http://ms-ip:9000
، حيث ms-ip هو عنوان IP أو اسم نظام أسماء النطاقات لعقدة خادم الإدارة. - اختَر واجهات برمجة التطبيقات > إعدادات البيئة > خرائط القيم الرئيسية في شريط التنقّل العلوي.
- انقر على + خريطة القيم الرئيسية.
- في مربّع الحوار "خريطة قيمة مفتاح جديدة"، أدخِل اسمًا واختَر مشفّر.
- انقر على إضافة.
- أضِف الرمز المميّز للمصادقة الذي سبق لك تحديده أو إنشاؤه كإدخال جديد في كل آلة متجه الدعم التي أنشأتها للتو.
- في ملف app.yaml، أضِف إدخالًا يشير إلى KVM والمفتاح المرتبطَين برمز مميّز لأمان npm. من المفترض أن تظهر بشكلٍ مشابه لما يلي:
- تتطابق سمة name ذات المستوى الأعلى مع اسم متغيّر البيئة الذي سيتم إنشاؤه.
- يتوافق الاسم ضمن valueRef مع وحدة تحكّم افتراضية في الذاكرة (KVM) التي أنشأتها سابقًا.
- تتوافق السمة key مع المفتاح الذي يتم ربطه بالرمز المميز npm الذي أضفته إلى KVM.
- أنشئ ملف .npmrc في الدليل نفسه مثل package.json. يجب أن يبدو ملف ملف npmrc مماثلاً لما يلي:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
أو إذا كنت لا تستخدمregistry.npmjs.org
، يمكنك ضبط النطاق في ملف npmrc. عن طريق إضافة سطر مثل هذا@myscope:registry=https://mycustomregistry.example.org
اطّلِع أيضًا على مستندات npmrc. - حمِّل ملف الوكيل Node.js أو عدِّله مع تضمين ملفَي npmrc. وapp.yaml.
- تأكَّد من أنّ الخادم الوكيل الجديد أو المحدّث يعمل على تفعيل وحدة المستودع الخاص المطلوبة.
- إذا لم يتم نشر الخادم الوكيل، تحقَّق من سجلّات الإنشاء لمعرفة ما إذا تعذّر تثبيت وحدة npm الخاصة. في هذه الحالة:
- ضمن علامة التبويب "تطوير"، تأكَّد من توفُّر npmrc.
- تأكَّد من أنّ الرمز المميّز صالح (جرِّب تثبيت الوحدة محليًا مع تضمين الرمز المميّز في kvm).
- في حال استخدام نطاق مخصّص، يُرجى التأكّد من ضبطه.
env: - name: NPM_TOKEN valueRef: name: npm_store key: private_token
المكان:
تحديد إصدار 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
مثالاً
فقط.