درحال مشاهده اسناد 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 |
پشتیبانی میشود | میزبان مجازی و مسیر درخواستهای ورودی در «پراکسی API» مشخص میشود، نه در واحد 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 برای پراکسی API میتوانید این گزارشها را مشاهده کنید. هیچ ورودی استانداردی برای اسکریپتهای درحال اجرا در Apigee Edge وجود ندارد. بااینحال، میتوانید بااستفاده از عنصر ScriptTarget در TargetEndpoint، آرگومانها را ارسال کنید. برای اطلاعات بیشتر، پیکربندی پیشرفته «هدف نوشتاری» را ببینید. |
stream |
پشتیبانی میشود | |
string_decoder |
پشتیبانی میشود | |
timers |
لحاظشده | |
tls |
پشتیبانی میشود | پارامترهای «امنیت لایه انتقال» (TLS) اساساً به همان روشی کار میکنند که در Node.js معمولی کار میکنند. برای جزئیات بیشتر، استفاده از واحد Node.js مربوط به «امنیت لایه انتقال» (SSL) در Apigee Edge را ببینید. |
tty |
غیرفعال شده | هیچ ورودی استانداردی برای اسکریپتهای درحال اجرا در Apigee Edge وجود ندارد. |
url |
پشتیبانی میشود | |
util |
پشتیبانی میشود | |
vm |
پشتیبانی میشود | |
zlib |
پشتیبانی میشود |
پیمانههای پشتیبانیشده اضافی
این بخش فهرست واحدهای اضافی را که در Node.js استاندارد پشتیبانی نمیشوند، اما در Trireme و Trireme که در Apigee Edge اجرا میشود پشتیبانی میشوند، ارائه میدهد. Trireme محتوی Node.js متنباز است که در Apigee Edge اجرا میشود. این پلتفرم برای اجرای دستورگان Node.js در «ماشین مجازی جاوا» (JVM) طراحی شده است. همه این پیمانهها در NPM دردسترس هستند.
| واحد | شرح |
|---|---|
| apigee-access | به برنامههای Node.js که در پلاتفرم Apigee Edge اجرا میشوند اجازه میدهد به عملکرد ویژه Apigee دسترسی داشته باشند. میتوانید از این واحد برای موارد زیر استفاده کنید: دسترسی به متغیرهای جاریسازی و اصلاح آنها، بازیابی دادهها از فروشگاه امن، و استفاده از خدمات حافظه نهان، سهمیه، و OAuth در Edge. همچنین استفاده از واحد apigee-access را ببینید. |
| trireme-support | به برنامههای Node.js اجازه میدهد از ویژگیهای خاص Trireme بهرهمند شوند. درحالحاضر فقط یک ویژگی پشتیبانی میشود -- بار کردن واحدهای Node.js که در Java ساخته شدهاند. توجه: loadJars در Edge Cloud پشتیبانی نمیشود. |
| trireme-xslt | انتزاعی از پردازش XLST ارائه میدهد. این کتابخانه بهطور خاص برای پلاتفرم Trireme طراحی شده است تا امکان پردازش کارآمد XSLT را هنگام اجرای برنامههای Node.js در Java فراهم کند. |
| trireme-jdbc | دسترسی به JDBC را از Node.js فراهم میکند. توجه: در Edge Cloud پشتیبانی نمیشود. برای Edge Private Cloud، میتوانید فایلهای JDPC JAR را در مسیر کلاس قرار دهید و از این واحد استفاده کنید. |
پشتیبانی از واحدهای Node.js پرکاربرد
محدودیتهای مربوط به دستورگانهای Node.js
بااینحال، توجه داشته باشید که Edge محدودیتهای خاصی را بر روی دستورگانهای Node.js اعمال میکند، مانند موارد زیر:
- برنامههای Node.js در محیط Apigee Edge نمیتوانند بهدلیل معماری شبکه Edge ازطریق UDP به سرویسهای اینترنت دسترسی داشته باشند.
- دسترسی به سیستم فایل به دایرکتوریای که در آن دستورگان Node.js راهاندازی شده است محدود میشود: دایرکتوری /resources/node. دستورگان Node.js میتوانند فایلها را در این فهرست راهنما بخوانند و بنویسند، برای مثال بهعنوان یک فضای موقت، اما هیچ تضمینی وجود ندارد که فایلها تا چه مدت پایدار بمانند.
- تلاش برای گوش دادن به اتصالات TCP ورودی استثنایی ایجاد میکند.
- عملکرد دستکاری شناسه کاربر، عضویت گروه، و دایرکتوری کاری پشتیبانی نمیشود.
- برای ورودی استاندارد، محدود به ارسال آرگومانها بااستفاده از عنصر ScriptTarget
در TargetEndpoint هستید. برای اطلاعات بیشتر، پیکربندی
Advanced ScriptTarget را ببینید.
- برای برونداد استاندارد، محدود به استفاده از دکمه «گزارشهای Node.js» در واسط کاربر مدیریت Edge
برای پراکسی خود هستید. همچنین میتوانید از فرمان «apigeetool getlogs» استفاده کنید. برای اطلاعات بیشتر، به استقرار برنامه خوداتکای Node.js مراجعه کنید.
- از واحدهایی که به کد بومی وابسته هستند پشتیبانی نمیشود.
- واحدهایی که به ویژگیهای EcmaScript 6، مانند Promises و Generators، وابسته هستند پشتیبانی نمیشوند.
- پرچمهای زمان اجرای Node.js مثل «harmony-proxies» پشتیبانی نمیشوند.
تنظیم محدودیتهای اتصال IP در Edge برای «ابر خصوصی»
Edge for Private Cloud میتواند کد Node.js را از دسترسی به نشانیهای IP که با «۱۰.» شروع میشوند محدود کند، «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 - خصوصیت را به دلخواه تنظیم کنید. برای مثال، برای رد کردن دسترسی فقط به localhost:
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 restart
درک پشتیبانی از واحدهای 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 تعریف میکند. همه پراکسیهای API در یک محیط میزبانهای مجازی یکسانی را همرسانی میکنند. بهطور پیشفرض، دو میزبان مجازی برای هر محیط دردسترس است:
default و secure. برای اطلاعات بیشتر،
دریافت میزبان مجازی و API
چرخه حیات توسعه را ببینید.
فرمان apigeetool deploynodeapp یک پوشش پراکسی Apigee Edge
در اطراف برنامه Node.js تولید میکند. وقتی مستقر شد، برنامه Node.js در میزبان مجازی پیشفرض تعریفشده برای محیط گوش میدهد. نشانی وب برنامه Node.js همیشه
http://{org_name}-{env_name}.apigee.net خواهد بود.
درحال رسیدگی به درخواستهای ورودی
مانند سایر برنامههای Apigee Edge، اگر برنامه پراکسی برای گوش دادن به میزبان مجازی secure تنظیم شده باشد، درخواستهای ورودی را بااستفاده از HTTPS میپذیرد.
درحال رسیدگی به درخواستهای خروجی
علاوهبر دریافت ترافیک ورودی، برنامههای Node.js درون Apigee Edge میتوانند از
ماژولهای http و https برای ایجاد درخواستهای خروجی مانند هر برنامه Node.js
دیگری استفاده کنند. این واحدها درست مثل همیشه در Node.js کار میکنند.
درک پشتیبانی از واحد tls
Apigee Edge از واحد Node.js tls پشتیبانی میکند.
این واحد از OpenSSL برای ارائه «امنیت لایه انتقال» (TLS) و/یا «لایه اتصال امن»
(SSL) برای ارتباط جاریسازی رمزگذاریشده استفاده میکند. میتوانید از واحد tls برای ایجاد اتصالهای ایمن به خدمات زیرینه از برنامههای Node.js که در Edge اجرا میشوند استفاده کنید.
برای درک نحوه عملکرد واحد tls در Apigee Edge، مهم است که
نحوه استفاده از virtual hosts در Apigee Edge را درک کنید. هر محیط در Apigee
حداقل یک میزبان مجازی دارد. میزبان مجازی تنظیمات HTTP را برای اتصال به سازمان Apigee تعریف میکند. همه پراکسیهای API در یک محیط میزبانهای مجازی یکسانی را همرسانی میکنند. بهطور پیشفرض،
دو میزبان مجازی برای هر محیط دردسترس است: default و
secure. برای اطلاعات بیشتر درباره میزبانهای مجازی،
دریافت میزبان مجازی و چرخه حیات توسعه
API را ببینید.
اکنون، بیایید ببینیم Apigee Edge چگونه ارتباط «امنیت لایه انتقال» (SSL) را برای درخواستهای ورودی و خروجی در برنامههای Node.js مدیریت میکند:
درحال رسیدگی به درخواستهای ورودی
بسته به نحوه پیکربندی میزبانهای مجازی برای سازمان شما، Edge این گزینهها را ارائه میدهد:
- اگر پراکسی API پیکربندی شده باشد تا در میزبان مجازی
defaultگوش کند، درخواستها را ازطریق HTTP میپذیرد. - اگر پراکسی API برای گوش دادن به میزبان مجازی
secureپیکربندی شده باشد، درخواستها را ازطریق HTTPS میپذیرد. نشانی وب تحت دامنه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>