افزودن Node.js به یک پراکسی API موجود

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

مقدمه

این مبحث نحوه اضافه کردن یک برنامه Node.js به یک پروکسی موجود در سیستم فایل محلی شما و نحوه استقرار پروکسی در Apigee Edge را توضیح می‌دهد.

آماده‌سازی محیط توسعه شما

در این مبحث، فرض می‌کنیم که شما از قبل یک محیط توسعه پروکسی روی سیستم محلی خود راه‌اندازی کرده‌اید و می‌خواهید یک برنامه Node.js را در آن ادغام کنید.

ساختار پایه یک برنامه پروکسی که شامل یک برنامه Node.js است، از الگوی نشان داده شده در شکل زیر پیروی می‌کند، با یک پوشه پایه /apiproxy و زیرپوشه‌هایی برای resources ، targets و proxies . پوشه apiproxy/resources/node جایی است که فایل‌های Node.js باید قرار گیرند. پوشه‌های دیگر حاوی فایل‌های XML هستند که نقاط انتهایی proxy و target، جریان proxy، جریان‌های شرطی و غیره را تعریف می‌کنند. برای توضیحات کامل‌تر در مورد ساختار پروکسی API، به مرجع پیکربندی پروکسی API مراجعه کنید.

فقط به یاد داشته باشید که هر کد Node.js که بخشی از پروکسی است باید در مسیر /apiproxy/resources/node قرار گیرد. این جایی است که Edge انتظار دارد هنگام استقرار آن را پیدا کند.

هدف Node.js را با ScriptTarget مشخص کنید

کلید ادغام Node.js در یک پروکسی، مشخص کردن عنصر <ScriptTarget> در فایل XML نقطه پایانی هدف است. در ساختار فایل پروکسی، این فایل XML در apiproxy/targets قرار دارد. به طور پیش‌فرض، نام فایل default.xml است.

برای درک بهتر، در نظر بگیرید که یک نقطه پایانی هدف معمولاً به نوعی سرویس backend اشاره می‌کند. در این مورد، ما به سرویس هدف ساختگی Apigee برخوردیم. تعریف یک نقطه پایانی هدف به این شکل است:

<TargetEndpoint name="default">
    <Description/>
    <Flows/>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <HTTPTargetConnection>
        <URL>http://mocktarget.apigee.net/</URL>
    </HTTPTargetConnection>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
</TargetEndpoint>

عنصر <HTTPTargetConnection> آدرس اینترنتی (URL) سرویس backend، یعنی سرویس هدف آزمایشی Apigee، را مشخص می‌کند.

با این حال، در مورد Node.js، خود برنامه Node.js هدف است . شما این را با <ScriptTarget> در فایل apiproxy/targets/default.xml مشخص می‌کنید.

به جای اینکه هدف با استفاده از عنصر <HTTPTargetConnection> آدرس اینترنتی (URL) یک سرویس backend را مشخص کند، برنامه Node.js مستقیماً با استفاده از عنصر <ScriptTarget> ارجاع داده می‌شود، مانند این:

<TargetEndpoint name="default">
    <ScriptTarget>
         <ResourceURL>node://server.js</ResourceURL>
    </ScriptTarget>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
</TargetEndpoint>

پارامتر <ResourceURL> همیشه باید با پیشوند node:// شروع شود و به دنبال آن نام اسکریپت اصلی Node.js قرار گیرد. و همانطور که قبلاً اشاره شد، منابع Node.js باید در /apiproxy/resources/node در محدوده پروکسی API قرار داشته باشند.

شما می‌توانید پارامترهای اضافی را در ScriptTarget تنظیم کنید. برای جزئیات بیشتر، به پیکربندی پیشرفته ScriptTarget مراجعه کنید.

برای این مثال، کد منبع فایل اصلی Node.js به نام server.js در اینجا آمده است. این سرور HTTP پایه است که هنگام دریافت درخواست، عبارت "Hello World!" را برمی‌گرداند:

var http = require('http');
console.log('node.js application starting...');
var svr = http.createServer(function(req, resp) {
    resp.end('Hello, Node!');
});

svr.listen(process.env.PORT || 9000, function() {
    console.log('Node HTTP server is listening');
});

به طور خلاصه، با فرض اینکه برنامه اصلی Node.js در فایلی به نام server.js پیاده‌سازی شده است و پیکربندی‌های نقطه پایانی هر دو به صورت default.xml نامگذاری شده‌اند، آنگاه API Proxy حاوی اسکریپت Node.js ساختار زیر را دارد:

/apiproxy/proxyName.xml
/apiproxy/proxies/default.xml
/apiproxy/targets/default.xml
/apiproxy/resources/node/server.js

آماده‌سازی برای استقرار برنامه

اکثر برنامه‌های Node.js دارای فایل‌های وابستگی هستند و یک فایل package.json را در دایرکتوری پایه قرار می‌دهند. در این حالت، بهترین روش این است که ابزار npm را اجرا کنید تا مطمئن شوید که دایرکتوری node_modules سطح بالا قبل از استقرار با وابستگی‌ها پر شده است. اگر وابستگی‌های از راه دور وجود داشته باشد که در node_modules گنجانده نشده باشند، برنامه Node.js شما روی Edge اجرا نخواهد شد.

شما می‌توانید به راحتی با استفاده از ابزار npm تمام وابستگی‌ها را به سیستم فایل خود بازیابی کنید:

  1. از دایرکتوری پایه برنامه Node.js خود، دستور زیر را اجرا کنید:
$ npm install 

یا

$ npm update

وقتی وابستگی‌ها نصب شدند، آماده‌اید تا پروکسی خود را روی Edge مستقر کنید.

برنامه Node.js را روی Apigee Edge مستقر کنید

قبل از استقرار، باید نام سازمان، نام کاربری و رمز عبور حساب Apigee Edge خود را بدانید. برای تشکیل صحیح دستور ابزار استقرار، به این اطلاعات نیاز دارید.

دستور به این صورت است. این دستور (با علامت -d) فرض می‌کند که شما در دایرکتوری ریشه پروکسی خود هستید. اگر پروکسی شما foo نام دارد، این دستور را از دایرکتوری foo وارد کنید:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
برای اطلاع از معنی هر یک از پرچم‌های فرمان، مراحل زیر را دنبال کنید:

$ apigeetool deployproxy -h

برای خلاصه سریع:

  • -n ‎ این گزینه به شما امکان می‌دهد نام پروکسی که هنگام استقرار برنامه ایجاد می‌شود را مشخص کنید. این نام را در رابط کاربری مدیریت مشاهده خواهید کرد.
  • -d ‎ دایرکتوری ریشه پروکسی API را مشخص می‌کند.
  • گزینه‌های -o ، -e ، -u و -p نام سازمان، محیط استقرار، نام کاربری و رمز عبور را مشخص می‌کنند.
همین. برنامه Node.js شما در یک پروکسی API قرار گرفته، در Edge مستقر و اجرا شده است. منتظر درخواست‌ها و آماده آزمایش است.

پروکسی API جدید را آزمایش کنید

شما به تازگی یک برنامه Node.js را به یک پروکسی API موجود اضافه کرده‌اید و پروکسی را در Apigee Edge مستقر کرده‌اید! برای آزمایش آن، دستور cURL را اجرا کنید. فرض می‌کنیم از مسیر پایه پیش‌فرض (/) استفاده می‌شود (مسیر پایه در فایل پیکربندی نقطه پایانی پروکسی مشخص شده است). حتماً نام سازمان خود را به جای org_name قرار دهید. اگر cURL نصب نشده است، می‌توانید URL را در مرورگر وارد کنید.

$ curl http://org_name-test.apigee.net/
Hello, Node!

پروکسی جدید را در رابط کاربری مدیریت مشاهده کنید

به حساب کاربری Apigee Edge خود وارد شوید و به صفحه API Proxies بروید. پروکسی با نام "hellonode" را در آنجا مشاهده خواهید کرد.

برای مشاهده جزئیات مربوط به پروکسی، روی "hellonode" کلیک کنید. در نمای توسعه، می‌توانید کد منبعی را که آپلود کرده‌اید مشاهده کنید، خط‌مشی‌هایی را اضافه کنید، جریان‌ها را ویرایش کنید و غیره.

مراحل بعدی

برای اطلاعات بیشتر در مورد اشکال‌زدایی برنامه‌های Node.js که روی Apigee Edge اجرا می‌شوند، به بخش اشکال‌زدایی و عیب‌یابی پروکسی‌های Node.js مراجعه کنید.

،

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

مقدمه

این مبحث نحوه اضافه کردن یک برنامه Node.js به یک پروکسی موجود در سیستم فایل محلی شما و نحوه استقرار پروکسی در Apigee Edge را توضیح می‌دهد.

آماده‌سازی محیط توسعه شما

در این مبحث، فرض می‌کنیم که شما از قبل یک محیط توسعه پروکسی روی سیستم محلی خود راه‌اندازی کرده‌اید و می‌خواهید یک برنامه Node.js را در آن ادغام کنید.

ساختار پایه یک برنامه پروکسی که شامل یک برنامه Node.js است، از الگوی نشان داده شده در شکل زیر پیروی می‌کند، با یک پوشه پایه /apiproxy و زیرپوشه‌هایی برای resources ، targets و proxies . پوشه apiproxy/resources/node جایی است که فایل‌های Node.js باید قرار گیرند. پوشه‌های دیگر حاوی فایل‌های XML هستند که نقاط انتهایی proxy و target، جریان proxy، جریان‌های شرطی و غیره را تعریف می‌کنند. برای توضیحات کامل‌تر در مورد ساختار پروکسی API، به مرجع پیکربندی پروکسی API مراجعه کنید.

فقط به یاد داشته باشید که هر کد Node.js که بخشی از پروکسی است باید در مسیر /apiproxy/resources/node قرار گیرد. این جایی است که Edge انتظار دارد هنگام استقرار آن را پیدا کند.

هدف Node.js را با ScriptTarget مشخص کنید

کلید ادغام Node.js در یک پروکسی، مشخص کردن عنصر <ScriptTarget> در فایل XML نقطه پایانی هدف است. در ساختار فایل پروکسی، این فایل XML در apiproxy/targets قرار دارد. به طور پیش‌فرض، نام فایل default.xml است.

برای درک بهتر، در نظر بگیرید که یک نقطه پایانی هدف معمولاً به نوعی سرویس backend اشاره می‌کند. در این مورد، ما به سرویس هدف ساختگی Apigee برخوردیم. تعریف یک نقطه پایانی هدف به این شکل است:

<TargetEndpoint name="default">
    <Description/>
    <Flows/>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <HTTPTargetConnection>
        <URL>http://mocktarget.apigee.net/</URL>
    </HTTPTargetConnection>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
</TargetEndpoint>

عنصر <HTTPTargetConnection> آدرس اینترنتی (URL) سرویس backend، یعنی سرویس هدف آزمایشی Apigee، را مشخص می‌کند.

با این حال، در مورد Node.js، خود برنامه Node.js هدف است . شما این را با <ScriptTarget> در فایل apiproxy/targets/default.xml مشخص می‌کنید.

به جای اینکه هدف با استفاده از عنصر <HTTPTargetConnection> آدرس اینترنتی (URL) یک سرویس backend را مشخص کند، برنامه Node.js مستقیماً با استفاده از عنصر <ScriptTarget> ارجاع داده می‌شود، مانند این:

<TargetEndpoint name="default">
    <ScriptTarget>
         <ResourceURL>node://server.js</ResourceURL>
    </ScriptTarget>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
</TargetEndpoint>

پارامتر <ResourceURL> همیشه باید با پیشوند node:// شروع شود و به دنبال آن نام اسکریپت اصلی Node.js قرار گیرد. و همانطور که قبلاً اشاره شد، منابع Node.js باید در /apiproxy/resources/node در محدوده پروکسی API قرار داشته باشند.

شما می‌توانید پارامترهای اضافی را در ScriptTarget تنظیم کنید. برای جزئیات بیشتر، به پیکربندی پیشرفته ScriptTarget مراجعه کنید.

برای این مثال، کد منبع فایل اصلی Node.js به نام server.js در اینجا آمده است. این سرور HTTP پایه است که هنگام دریافت درخواست، عبارت "Hello World!" را برمی‌گرداند:

var http = require('http');
console.log('node.js application starting...');
var svr = http.createServer(function(req, resp) {
    resp.end('Hello, Node!');
});

svr.listen(process.env.PORT || 9000, function() {
    console.log('Node HTTP server is listening');
});

به طور خلاصه، با فرض اینکه برنامه اصلی Node.js در فایلی به نام server.js پیاده‌سازی شده است و پیکربندی‌های نقطه پایانی هر دو به صورت default.xml نامگذاری شده‌اند، آنگاه API Proxy حاوی اسکریپت Node.js ساختار زیر را دارد:

/apiproxy/proxyName.xml
/apiproxy/proxies/default.xml
/apiproxy/targets/default.xml
/apiproxy/resources/node/server.js

آماده‌سازی برای استقرار برنامه

اکثر برنامه‌های Node.js دارای فایل‌های وابستگی هستند و یک فایل package.json را در دایرکتوری پایه قرار می‌دهند. در این حالت، بهترین روش این است که ابزار npm را اجرا کنید تا مطمئن شوید که دایرکتوری node_modules سطح بالا قبل از استقرار با وابستگی‌ها پر شده است. اگر وابستگی‌های از راه دور وجود داشته باشد که در node_modules گنجانده نشده باشند، برنامه Node.js شما روی Edge اجرا نخواهد شد.

شما می‌توانید به راحتی با استفاده از ابزار npm تمام وابستگی‌ها را به سیستم فایل خود بازیابی کنید:

  1. از دایرکتوری پایه برنامه Node.js خود، دستور زیر را اجرا کنید:
$ npm install 

یا

$ npm update

وقتی وابستگی‌ها نصب شدند، آماده‌اید تا پروکسی خود را روی Edge مستقر کنید.

برنامه Node.js را روی Apigee Edge مستقر کنید

قبل از استقرار، باید نام سازمان، نام کاربری و رمز عبور حساب Apigee Edge خود را بدانید. برای تشکیل صحیح دستور ابزار استقرار، به این اطلاعات نیاز دارید.

دستور به این صورت است. این دستور (با علامت -d) فرض می‌کند که شما در دایرکتوری ریشه پروکسی خود هستید. اگر پروکسی شما foo نام دارد، این دستور را از دایرکتوری foo وارد کنید:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
برای اطلاع از معنی هر یک از پرچم‌های فرمان، مراحل زیر را دنبال کنید:

$ apigeetool deployproxy -h

برای خلاصه سریع:

  • -n ‎ این گزینه به شما امکان می‌دهد نام پروکسی که هنگام استقرار برنامه ایجاد می‌شود را مشخص کنید. این نام را در رابط کاربری مدیریت مشاهده خواهید کرد.
  • -d ‎ دایرکتوری ریشه پروکسی API را مشخص می‌کند.
  • گزینه‌های -o ، -e ، -u و -p نام سازمان، محیط استقرار، نام کاربری و رمز عبور را مشخص می‌کنند.
همین. برنامه Node.js شما در یک پروکسی API قرار گرفته، در Edge مستقر و اجرا شده است. منتظر درخواست‌ها و آماده آزمایش است.

پروکسی API جدید را آزمایش کنید

شما به تازگی یک برنامه Node.js را به یک پروکسی API موجود اضافه کرده‌اید و پروکسی را در Apigee Edge مستقر کرده‌اید! برای آزمایش آن، دستور cURL را اجرا کنید. فرض می‌کنیم از مسیر پایه پیش‌فرض (/) استفاده می‌شود (مسیر پایه در فایل پیکربندی نقطه پایانی پروکسی مشخص شده است). حتماً نام سازمان خود را به جای org_name قرار دهید. اگر cURL نصب نشده است، می‌توانید URL را در مرورگر وارد کنید.

$ curl http://org_name-test.apigee.net/
Hello, Node!

پروکسی جدید را در رابط کاربری مدیریت مشاهده کنید

به حساب کاربری Apigee Edge خود وارد شوید و به صفحه API Proxies بروید. پروکسی با نام "hellonode" را در آنجا مشاهده خواهید کرد.

برای مشاهده جزئیات مربوط به پروکسی، روی "hellonode" کلیک کنید. در نمای توسعه، می‌توانید کد منبعی را که آپلود کرده‌اید مشاهده کنید، خط‌مشی‌هایی را اضافه کنید، جریان‌ها را ویرایش کنید و غیره.

مراحل بعدی

برای اطلاعات بیشتر در مورد اشکال‌زدایی برنامه‌های Node.js که روی Apigee Edge اجرا می‌شوند، به بخش اشکال‌زدایی و عیب‌یابی پروکسی‌های Node.js مراجعه کنید.