מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
מבוא
בנושא הזה מוסבר איך להוסיף אפליקציה של Node.js לשרת proxy קיים בקובץ המקומי ואיך לפרוס את שרת ה-proxy ב-Apigee Edge.
הכנת סביבת הפיתוח
בנושא הזה, אנחנו מניחים שכבר הגדרת סביבת פיתוח של שרת proxy ואתם רוצים לשלב אפליקציה של Node.js בה.
המבנה הבסיסי של אפליקציית שרת proxy שכוללת אפליקציית Node.js תואם לדפוס
שמוצגת באיור שלמטה, עם בסיס /apiproxy
תיקיות ותיקיות משנה עבור משאבים, יעדים ושרתי proxy. התיקייה apiproxy/resources/node היא המקום שבו קובצי Node.js חייבים להיות
ממוקם. התיקיות האחרות מכילות קובצי XML שמגדירים נקודות קצה (endpoints) ונקודות קצה של שרת proxy, זרימה של שרת proxy
תזרימים מותנים וכו'. כדי לקבל תיאור מקיף יותר של מבנה ה-Proxy ל-API,
ראו הסבר על תצורה של שרת proxy ל-API.
עם זאת, חשוב לזכור שכל קוד של Node.js שנכלל בשרת proxy חייב להופיע מתחת /apiproxy/resources/node. זה המקום שבו Edge מצפה כדי למצוא אותו כשהוא נפרס.
ציון היעד של Node.js באמצעות ScriptTarget
המפתח לשילוב Node.js בשרת proxy הוא ציון התג <ScriptTarget> אלמנט ב- בקובץ ה-XML של נקודת הקצה של היעד. במבנה הקובץ של שרת ה-proxy, קובץ ה-XML הזה ממוקם apiproxy/targets. כברירת מחדל, שם הקובץ הוא default.xml.
לצורך הקשר, חשוב לזכור שנקודת קצה (endpoint) יעד בדרך כלל מפנה לשירות קצה עורפי כלשהו. במקרה הזה, עברנו לשירות היעד המדומה של 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> מציין את כתובת האתר של השירות לקצה העורפי, 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
בהיקף של שרת ה-proxy ל-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
וגם ה-Proxy ל-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
כשחבילות יחסי התלות מותקנות, אתם יכולים לפרוס את שרת ה-proxy ב-Edge.
פריסת אפליקציית Node.js ב-Apigee Edge
לפני הפריסה, עליך לדעת את שם הארגון, שם המשתמש והסיסמה שלך חשבון Apigee Edge. יש צורך במידע הזה כדי ליצור בצורה תקינה את פקודת כלי הפריסה.
זאת הפקודה. הוא מניח (עם הדגל d-) שאתם נמצאים בספריית השורש של קובץ ה- שרת proxy. אם שרת ה-proxy נקרא foo, מזינים את הפקודה הזו ספריית foo:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
$ apigeetool deployproxy -h
לסיכום קצר:
- -n הדגל הזה מאפשר לציין את שם שרת ה-proxy שייווצר בעת פריסת האפליקציה. תוכלו לראות את זה השם בממשק המשתמש של הניהול.
- -d מציין ספריית הבסיס של ה-Proxy ל-API.
- -o, -e, -u ו- -p מציינים את שם הארגון, את סביבת הפריסה, שם המשתמש והסיסמה.
בדיקה של שרת ה-API החדש
הוספתם אפליקציית Node.js לשרת proxy קיים ל-API ופרסתם את שרת ה-Proxy ל-Apigee מעולה! כדי לבדוק זאת, צריך להריץ את פקודת ה-cURL הזו. אנחנו מניחים שהשתמשנו בנתיב הבסיס שמוגדר כברירת מחדל (/) (נתיב הבסיס) מצוין בקובץ התצורה של נקודת הקצה של שרת ה-proxy). חשוב להחליף את הארגון שלך של org_name. אם לא שמותקן בהם cURL, ניתן להזין את כתובת ה-URL בדפדפן.
$ curl http://org_name-test.apigee.net/
Hello, Node!
הצגת שרת ה-proxy החדש בממשק המשתמש לניהול
מתחברים לחשבון Apigee Edge ועוברים אל בדף ממשקי ה-proxy ל-API. יופיע שרת ה-Proxy שנקרא hellonode שרשומים שם.
לוחצים על "hellonode" כדי להציג פרטים על שרת ה-proxy. בתצוגה 'פיתוח' ניתן לראות קוד המקור שהעלית, הוספת כללי מדיניות, עריכה של תהליכי עבודה וכו'.
השלבים הבאים
מידע על ניפוי באגים באפליקציות Node.js שפועלות ב-Apigee Edge זמין במאמר ניפוי באגים ופתרון בעיות ב-Node.js שרתי proxy.