شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
مقدمه
این مبحث نحوه اضافه کردن یک برنامه Node.js را به یک پروکسی موجود در سیستم فایل محلی و نحوه استقرار پروکسی در Apigee Edge توضیح میدهد.
محیط توسعه خود را آماده کنید
در این مبحث، فرض میکنیم که شما قبلاً یک محیط توسعه پروکسی را روی سیستم محلی خود راهاندازی کردهاید و میخواهید یک برنامه Node.js را در آن ادغام کنید.
ساختار اصلی یک برنامه پراکسی که شامل یک برنامه Node.js است از الگوی نشان داده شده در شکل زیر پیروی می کند، با یک پوشه پایه /apiproxy و زیر پوشه ها برای منابع ، اهداف و پراکسی ها . پوشه apiproxy/resources/node جایی است که فایل های Node.js باید در آن قرار گیرند. پوشه های دیگر حاوی فایل های XML هستند که نقاط پایانی پروکسی و هدف، جریان پروکسی، جریان های شرطی و غیره را تعریف می کنند. برای توضیح کامل تر از ساختار پروکسی API، به مرجع پیکربندی پروکسی API مراجعه کنید.
فقط به یاد داشته باشید که هر کد Node.js که بخشی از پروکسی است باید در /apiproxy/resources/node قرار گیرد. این جایی است که اج انتظار دارد در هنگام استقرار آن را پیدا کند.
هدف Node.js را با ScriptTarget مشخص کنید
کلید ادغام Node.js در یک پروکسی، تعیین عنصر <ScriptTarget> در فایل XML نقطه پایانی هدف است. در ساختار فایل پروکسی، این فایل XML در apiproxy/targets قرار دارد. به طور پیش فرض، نام فایل default.xml است.
برای زمینه، در نظر بگیرید که یک نقطه پایانی هدف معمولاً به نوعی از خدمات باطن اشاره می کند. در این حالت سرویس هدف ساختگی 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 سرویس باطن، سرویس هدف ساختگی Apigee را مشخص می کند.
با این حال، در مورد Node.js، برنامه Node.js خود هدف است . این را با <ScriptTarget> در فایل apiproxy/targets/default.xml مشخص میکنید.
به جای اینکه هدف از عنصر <HTTPTargetConnection> برای تعیین URL یک سرویس باطن استفاده کند، برنامه 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 تنظیم کنید. برای جزئیات، به پیکربندی Advanced 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 حاوی اسکریپت 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 می توانید به راحتی تمام وابستگی ها را به سیستم فایل خود بازیابی کنید:
- از دایرکتوری پایه برنامه Node.js خود، اجرا کنید:
$ npm install
یا
$ npm update
هنگامی که وابستگی ها نصب شدند، آماده استقرار پروکسی خود در Edge هستید.
برنامه Node.js را در Apigee Edge مستقر کنید
قبل از استقرار، باید نام سازمان، نام کاربری و رمز عبور حساب Apigee Edge خود را بدانید. شما به این اطلاعات نیاز دارید تا دستور Deployment tool را به درستی شکل دهید.
دستور اینجاست. فرض می کند (با پرچم -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 نام سازمان، محیط استقرار، نام کاربری و رمز عبور را مشخص می کنند.
پروکسی 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 مراجعه کنید.