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