אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
מבוא
בנושא הזה מוסבר איך להוסיף אפליקציית Node.js לפרוקסי קיים במערכת הקבצים המקומית, ואיך לפרוס את הפרוקסי ב-Apigee Edge.
הכנת סביבת הפיתוח
במאמר הזה אנחנו מניחים שכבר הגדרתם סביבת פיתוח של שרת proxy במערכת המקומית שלכם, ושאתם רוצים לשלב בה אפליקציית Node.js.
המבנה הבסיסי של אפליקציית proxy שכוללת אפליקציית Node.js הוא כמו בדוגמה שמוצגת באיור שלמטה, עם תיקיית בסיס /apiproxy ותיקיות משנה למשאבים, ליעדים ולשרתי proxy. התיקייה apiproxy/resources/node היא המקום שבו צריך למקם את קובצי Node.js. התיקיות האחרות מכילות קובצי XML שמגדירים נקודות קצה של proxy ושל יעד, זרימת proxy,
זרימות מותנות וכו'. לתיאור מלא יותר של מבנה ה-API Proxy, אפשר לעיין במאמר API proxy configuration reference.

רק חשוב לזכור שכל קוד Node.js שמהווה חלק מהפרוקסי צריך להיות ממוקם בתיקייה /apiproxy/resources/node. זה המקום שבו Edge מצפה למצוא אותו כשהוא נפרס.
ציון יעד Node.js באמצעות ScriptTarget
כדי לשלב Node.js בשרת proxy, צריך לציין את הרכיב <ScriptTarget> בקובץ ה-XML של נקודת הקצה של היעד. במבנה קובץ ה-proxy, קובץ ה-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 של שירות ה-Backend, שירות היעד המדומה של 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, אז לממשק ה-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:
- מריצים את הפקודה הבאה מספריית הבסיס של אפליקציית 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 מציינות את שם הארגון, סביבת הפריסה, שם המשתמש והסיסמה.
בדיקת ה-proxy ל-API החדש
הרגע הוספתם אפליקציית Node.js לפרוקסי קיים של API ופרסתם את הפרוקסי ב-Apigee Edge. כדי לבדוק את זה, מריצים את פקודת cURL הזו. אנחנו מניחים שנעשה שימוש בנתיב הבסיס שמוגדר כברירת מחדל (/) (נתיב הבסיס מצוין בקובץ ההגדרות של נקודת הקצה של ה-Proxy). חשוב להחליף את org_name בשם הארגון. אם לא התקנתם את cURL, אתם יכולים להזין את כתובת ה-URL בדפדפן.
$ curl http://org_name-test.apigee.net/
Hello, Node!
צפייה בפרוקסי החדש בממשק המשתמש לניהול
מתחברים לחשבון Apigee Edge ועוברים לדף API Proxies (שרתי proxy של API). הפרוקסי בשם hellonode יופיע ברשימה.

לוחצים על hellonode כדי לראות פרטים על ה-proxy. בתצוגה 'פיתוח' אפשר לראות את קוד המקור שהעליתם, להוסיף מדיניות, לערוך תהליכים וכו'.

השלבים הבאים
למידע על ניפוי באגים באפליקציות Node.js שפועלות ב-Apigee Edge, אפשר לעיין במאמר ניפוי באגים ופתרון בעיות ב-Node.js proxies.