أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
إصدار Node.js المتوافق هل تريد استخدام Apigee Edge؟
يتوافق Edge حاليًا مع Node.js 0.10.32.
وحدات Node.js القياسية متوافق مع Edge؟
استخدِم الجدول التالي لتحديد وحدات Node.js القياسية على Edge. وفي بعض الحالات، تكون الوحدات المضمّنة متوافقة جزئيًا فقط. هذه وحدات المضمنة في Node.js.الوحدة | الحالة | ملاحظات |
---|---|---|
assert |
معلومات معتمَدة | |
buffer |
معلومات معتمَدة | |
child_process |
محظور | سيتم طرح استثناء في حال إجراء محاولة لبدء عملية فرعية. ومع ذلك، "شوكة" يتيح إيجاد النصوص الفرعية. |
cluster |
غير مفعّل | تعرض الطريقة cluster.isMaster دائمًا القيمة true، ولا يتم تنفيذ طرق أخرى. يتم نشر نسخة واحدة من كل نص برمجي لـ Node.js على كل معالج رسائل Edge. |
crypto |
معلومات معتمَدة | |
dns |
معلومات معتمَدة | |
domain |
معلومات معتمَدة | |
dgram |
محظور | لن تتمكّن تطبيقات Node.js في بيئة Apigee من الوصول إلى الخدمات على الإنترنت عبر بروتوكول UDP بسبب بنية الشبكة. |
events |
معلومات معتمَدة | |
fs |
محظور | يقتصر الوصول إلى نظام الملفات على الدليل الذي تم تشغيل النص البرمجي فيه:
دليل /resources/node . قد تقرأ نصوص Node.js الملفات وتكتبها داخل
هذا الدليل، على سبيل المثال، كمنطقة للخدش المؤقت، ولكن لا توجد ضمانات بشأن
ومدة استمرار الملفات. |
http |
معلومات معتمَدة | يتمّ تحديد المضيف الظاهري ومسار الطلبات الواردة في الخادم الوكيل لواجهة برمجة التطبيقات، وليس من خلال وحدة HTTP. راجع "التعرف على توافق كلٍّ من http وhttps الوحدات" لمزيد من المعلومات. |
https |
معلومات معتمَدة | إنشاء "https" يعمل الخادم بشكل مماثل لـ "http" الخادم. يُرجى الاطّلاع على "فهم توافق وحدتَي http وhttps". لمزيد من المعلومات. |
module |
معلومات معتمَدة | |
net |
محظور | وتؤدي محاولات الاستماع إلى اتصالات TCP الواردة إلى إنشاء استثناء. |
path |
معلومات معتمَدة | |
module |
معلومات معتمَدة | |
process |
الدعم الجزئي | لا تتوفر وظائف لمعالجة رقم تعريف المستخدم وعضوية المجموعة ودليل العمل |
punycode |
معلومات معتمَدة | |
querystring |
معلومات معتمَدة | |
readline |
غير مفعّل | ما مِن إدخال عادي للنصوص البرمجية التي يتم تشغيلها على Apigee Edge. |
repl |
غير مفعّل | ما مِن إدخال عادي للنصوص البرمجية التي يتم تشغيلها على Apigee Edge. |
module |
متاحة | |
STDIO |
معلومات معتمَدة |
يتم توجيه الناتج العادي والخطأ إلى ملف سجلّ داخل Apigee Edge. البنية الأساسية. يمكنك عرض هذه السجلات بالنقر على سجلات Node.js. وفي واجهة مستخدم إدارة Apigee Edge لخادم وكيل واجهة برمجة التطبيقات. ما مِن إدخال عادي للنصوص البرمجية التي يتم تشغيلها على Apigee Edge. ومع ذلك، يمكنك تمرير وسيطات باستخدام عنصر ScriptTarget من TargetEndpoint. يُرجى الاطّلاع على إعدادات ScriptTarget المتقدمة للحصول على مزيد من المعلومات. |
stream |
معلومات معتمَدة | |
string_decoder |
معلومات معتمَدة | |
timers |
متاحة | |
tls |
معلومات معتمَدة | تعمل معلمات بروتوكول أمان طبقة النقل (TLS) بشكل أساسي بنفس الطريقة التي تعمل بها في Node.js عادية. راجِع استخدام وحدة Node.js لبروتوكول أمان طبقة النقل (TLS) (طبقة المقابس الآمنة) على Apigee Edge لمزيد من التفاصيل. |
tty |
غير مفعّل | ما مِن إدخال عادي للنصوص البرمجية التي يتم تشغيلها على Apigee Edge. |
url |
معلومات معتمَدة | |
util |
معلومات معتمَدة | |
vm |
معلومات معتمَدة | |
zlib |
معلومات معتمَدة |
الوحدات المتوافقة الإضافية
يسرد هذا القسم الوحدات الإضافية غير المتوافقة في Node.js القياسية، ولكن تتوفر التي يدعمها Trireme وTrereme على Apigee Edge. Trireme هي حاوية Node.js مفتوحة المصدر تعمل على Apigee Edge. وهي مصممة لتشغيل النصوص البرمجية Node.js داخل جهاز Java الافتراضي (JVM). كل تتوفر هذه الوحدات على NPM.
الوحدة | الوصف |
---|---|
apigee-access | يتيح هذا الإذن لتطبيقات Node.js التي تعمل على نظام Apigee Edge الأساسي إمكانية الوصول إلى البيانات. الوظائف الخاصة بـ Apigee. يمكنك استخدام هذه الوحدة من أجل: الوصول إلى التدفق وتعديله واسترداد البيانات من التخزين الآمن، واستخدام ذاكرة التخزين المؤقت لشبكة Edge، والحصة، وبروتوكول OAuth راجع أيضًا استخدام وواجهة برمجة التطبيقات API. |
trireme-support | يتيح هذا الخيار لتطبيقات Node.js الاستفادة من الميزات الخاصة بـ Trireme. حاليًا هناك ميزة واحدة فقط متوافقة، وهي تحميل وحدات Node.js المضمّنة في Java. ملاحظة: لا يتوفّر ملفloadJars في Edge Cloud. |
trireme-xlsxt | تقدم تجريدًا لمعالجة XLST. فهي مصممة خصيصًا لـ Trireme للسماح بالمعالجة الفعالة لـ {/6} عندما يتم تشغيل تطبيقات Node.js على جافا. |
trireme-jdbc | تتيح هذه السياسة الوصول إلى JDBC من Node.js. ملاحظة: غير متاح في Edge Cloud. لبرنامج Edge الخاص السحابة الإلكترونية، يمكنك وضع ملفات JDPC JAR في مسار الفئة واستخدام هذه الوحدة. |
دعم وحدات Node.js شائعة الاستخدام
القيود المفروضة على النصوص البرمجية Node.js
ومع ذلك، لاحظ أن شبكة Edge تفرض قيودًا معينة على النصوص البرمجية لـ Node.js، مثل التالي:
- لا يمكن لتطبيقات Node.js في بيئة Apigee Edge الوصول إلى الخدمات على الإنترنت عبر بروتوكول UDP بسبب بنية شبكة Edge.
- يقتصر الوصول إلى نظام الملفات على الدليل الذي تم تشغيل النص البرمجي Node.js فيه: دليل /resources/node. يمكن للنصوص البرمجية في Node.js قراءة الملفات وكتابتها في هذا الدليل، كمساحة فارغة مؤقتة، ولكن ليست هناك أية ضمانات بشأن المدة التي ستظهر فيها لا تتوقف.
- تنشئ محاولات الاستماع إلى اتصالات TCP الواردة استثناءً.
- لا تتوفر وظائف لمعالجة رقم تعريف المستخدم وعضوية المجموعة ودليل العمل
- بالنسبة إلى الإدخال العادي، تقتصر على تمرير الوسيطات باستخدام ScriptTarget
في TargetEndpoint. راجع الإعدادات المتقدمة
يُرجى ضبط الإعدادات لهدف النص البرمجي لمزيد من المعلومات.
- بالنسبة للمخرجات القياسية، أنت مقيد باستخدام زر سجلات Node.js في الحافة
إدارة واجهة المستخدم للخادم الوكيل. يمكنك أيضًا استخدام "apigeetool getlogs" الأمر. لمزيد من المعلومات،
المعلومات، فراجع نشر
تطبيق Node.js مستقل.
- الوحدات التي تعتمد على رمز أصلي غير متوافقة.
- لا تُعتبر الوحدات التي تعتمد على ميزات EcmaScript 6، مثل الوعود والمنشئين،
- علامات وقت تشغيل Node.js، مثل "harmony-proxies" غير مدعومة.
ضبط قيود اتصال IP على Edge for Private Cloud
يمكن أن يحدّ متصفّح Edge for Private Cloud من وصول رمز Node.js إلى عناوين IP بدءًا من مع "10"., و"192.168" ومضيف محلي. إذا حاولت الوصول إلى عناوين IP هذه، فستحتاج إلى ترى خطأ في النموذج:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
يمكنك تعديل هذه القيود من خلال ضبط السمة conf_nodejs_connect.ranges.denied في message-processors.properties لكل معالج رسائل. وبشكل تلقائي، تكون لهذه السمة القيمة التالية:
- Edge 4.17.05 والإصدارات الأقدم: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 والإصدارات الأحدث: conf_nodejs_connect.ranges.denied= (أي ما مِن قيود)
لإعداد هذه السمة:
- افتح ملف message-processor.properties في
المحرِّر. إذا لم يكن الملف متوفّرًا، أنشئه:
> vi /<inst_root>/apigee/customer/application/message-processor.properties - اضبط السمة على النحو المطلوب. على سبيل المثال، لرفض الوصول إلى المضيف المحلي فقط:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - احفظ التغييرات.
- تأكّد من أنّ ملف الخصائص يملكه "apigee". المستخدم:
> chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties - إعادة تشغيل معالج الرسائل:
> /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor إعادة التشغيل
فهم توافق وحدتَي http وhttps
يجب أن تستخدم جميع تطبيقات Node.js التي يتم تشغيلها في Apigee Edge السمة http
أو
https
للاستماع إلى الطلبات الواردة. إذا كنت ستنشر نصًا
لا يستمع إلى الطلبات الواردة، فسيتم تنفيذه والخروج منه.
الطريقة listen
للوحدتَين http
وhttps
في
يستخدم Node.js رقم المنفذ كمعلمة. على سبيل المثال:
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
هذا "المنفذ" الوسيطة مطلوبة في Node.js، ولكن Apigee Edge يتجاهل هذه المعلمة. بدلاً من ذلك، إنّ خادم وكيل واجهة برمجة التطبيقات الذي يعمل فيه النص البرمجي Node.js يحدّد "المضيف الافتراضي". الذي يستمع إليه ويستخدم تطبيق Node.js هذه المضيفات الظاهرية نفسها، تمامًا مثل أي Apigee Edge آخر الخادم الوكيل.
تتضمّن كل بيئة في Apigee مضيفًا افتراضيًا واحدًا على الأقل. ويحدد المضيف الظاهري بروتوكول HTTP
إعدادات الاتصال بمؤسسة Apigee. تشترك جميع الخوادم الوكيلة لواجهة برمجة التطبيقات في بيئة ما
المضيفات الافتراضية نفسها. يتوفّر مضيفان افتراضيان لكل بيئة بشكل تلقائي:
"default
" وsecure
" لمزيد من المعلومات، يُرجى مراجعة
الحصول على المضيف الافتراضي وواجهة برمجة التطبيقات
دورة حياة تطوير القناة.
يؤدّي الأمر apigeetool deploynodeapp
إلى إنشاء برنامج تضمين للخادم الوكيل في Apigee Edge.
حول تطبيق Node.js. وعند نشره، يستمع تطبيق Node.js إلى الإعدادات التلقائية
المضيف الظاهري المحدد للبيئة. سيكون عنوان URL لتطبيق Node.js دائمًا
http://{org_name}-{env_name}.apigee.net
التعامل مع المكالمات الواردة الطلبات
مثل تطبيقات Apigee Edge الأخرى، إذا تم إعداد تطبيق الخادم الوكيل للاستماع على
مضيف secure
الافتراضي، سيقبل الطلبات الواردة باستخدام HTTPS.
التعامل مع المكالمات الصادرة الطلبات
بالإضافة إلى استقبال حركة البيانات الواردة، قد تستخدم تطبيقات Node.js داخل Apigee Edge واجهة
الوحدتان http
وhttps
لإنشاء طلبات صادرة، مثل أي Node.js أخرى في Node.js
التطبيق. تعمل هذه الوحدات تمامًا كالعادة داخل Node.js.
فهم دعم وحدة tls
تتوافق Apigee Edge مع وحدة Node.js tls.
تستخدم هذه الوحدة OpenSSL لتوفير بروتوكول أمان طبقة النقل (TLS) و/أو طبقة المقابس الآمنة
اتصال البث المشفر (طبقة المقابس الآمنة) يمكنك استخدام وحدة tls
لإنشاء مستوى أمان.
اتصالات بخدمات الخلفية من تطبيقات Node.js التي تعمل على Edge.
لفهم طريقة عمل وحدة tls
على Apigee Edge، من المهم:
فهم طريقة استخدام virtual hosts
على Apigee Edge. كل البيئات في Apigee
لديها مضيف ظاهري واحد على الأقل. ويحدد المضيف الظاهري إعدادات HTTP للاتصال
مؤسسة Apigee. تشترك جميع الخوادم الوكيلة لواجهة برمجة التطبيقات في بيئة ما في المضيفات الافتراضية نفسها. بشكل افتراضي،
يتوفّر مضيفان افتراضيان لكل بيئة: default
و
secure
لمزيد من المعلومات حول المضيفات الظاهرية، يمكنك الاطلاع على
الحصول على المضيف الافتراضي وواجهة برمجة التطبيقات
دورة حياة تطوير القناة.
لنتعرّف الآن على كيفية تعامل Apigee Edge مع اتصال بروتوكول أمان طبقة النقل (TLS) بطبقة المقابس الآمنة الواردة والصادرة على تطبيقات Node.js:
التعامل مع المكالمات الواردة الطلبات
بناءً على كيفية تهيئة خدمات الاستضافة الافتراضية في مؤسستك، توفر شبكة Edge هذه الخيارات:
- في حال تم ضبط الخادم الوكيل لواجهة برمجة التطبيقات للاستماع على المضيف الظاهري في
default
، تقبل الطلبات عبر HTTP. - في حال تم ضبط الخادم الوكيل لواجهة برمجة التطبيقات للاستماع على المضيف الظاهري في
secure
، تقبل الطلبات عبر HTTPS. سيكون عنوان URL ضمن النطاق "apigee.net
"، سيتم استخدام شهادة SSL لحرف البدل في*.apigee.net
. طالما أن التطبيقات توفر طلبات إلى النطاقapigee.net
، فسيتم التحقق من صحة شهادة طبقة المقابس الآمنة (SSL) بشكل طبيعي.
التعامل مع المكالمات الصادرة الطلبات
يمكنك إرسال الطلبات الصادرة باستخدام وحدة tls
بالطريقة نفسها المتّبعة.
كما يحدث عادةً في Node.js. تحتاج بشكل أساسي إلى إضافة مفاتيح وشهادات من جهة العميل
(.pem
ملف) إلى الدليل resources/node
وتحميلها داخل
البرنامج النصي. لمزيد من المعلومات حول استخدام وحدة tls
وطرقها، يُرجى الاطّلاع على
مستندات وحدة Node.js tls
الإعداد المتقدّم للنص البرمجي المستهدَف
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>