מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
במדריכים הבאים מוסבר איך לפרוס אפליקציות של Node.js ב-Edge באמצעות מטרות עסקיות מתארחות, סביבת זמן ריצה מקורית של Node.js שמתארחת ב-Apigee.
המדריכים יכללו את המשימות הבאות:
- פריסת אפליקציית Node.js ביעדים מתארחים באמצעות ממשק המשתמש של Edge.
- פריסת אפליקציית Node.js ביעדים מתארחים ממכונת הפיתוח המקומית.
- העברת שרת proxy קיים באמצעות גישה מסורתית הטמעת יעד של Node.js ב-Edge ליעדים מתארחים.
פריסת אפליקציית Node.js למטרות מתארחות באמצעות ממשק המשתמש של Edge
במדריך הזה תלמדו לפרוס אפליקציה פשוטה ב-Node.js למטרות מתארחות באמצעות אפליקציית Edge ממשק משתמש. לאחר השלמה של המדריך, תבינו את המבנה הבסיסי ואת התוכן של שרת proxy של יעדים מתארחים ואיך לגשת לפריסה וליצירה של קובצי יומן.
כניסה לחשבון
- נכנסים לכתובת: apigee.com/edge
- כדי להיכנס, מזינים את פרטי הכניסה ל-Apigee.
יצירת שרת proxy חדש
- בתפריט הניווט הצדדי לוחצים על פיתוח > שרתי proxy ל-API.
- לוחצים על + Proxy.
- בדף Create Proxy (יצירת Proxy), בוחרים באפשרות Hosted Target (יעד מארח).
- לוחצים על הבא.
- בשדה 'שם שרת ה-proxy', מזינים
hello-hosted-targets
. - ודאו ש-"Hello World" (שלום עולם) נבחרה דוגמה.
- לוחצים על הבא.
- בדף 'אבטחה', בוחרים באפשרות עבר (none) להרשאה.
- לוחצים על הבא.
- לוחצים על הבא.
- בדף ה-Build, מוודאים שסביבת הבדיקה נבחרה. הודעה שסוג שרת ה-proxy הוא Hosted Targets.
- לוחצים על Build and Deploy (יצירה ופריסה). ייתכן שיחלפו מספר דקות עד שפריסת שרת ה-proxy תושלם.
- אחרי ששרת ה-Proxy נפרס בהצלחה, לוחצים על הצגת שרת Proxy שמתארח ב-hello. שבתחתית הדף.
- קוראים לשרת ה-proxy של ה-API. הדרך הקלה ביותר לעשות זאת היא לעבור אל Trace.
Tab, התחלת Trace
סשן, ולוחצים על שליחה. הסטטוס 200 אמור להופיע עם הסטטוס הבא
תגובה:
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
בדיקת שרת ה-proxy
- בממשק המשתמש של Edge, לוחצים על הכרטיסייה פיתוח.
- בכלי הניווט, בוחרים באפשרות default (ברירת מחדל) בקטע Target Endpoints.
- בעורך הקוד, רואים שיש צאצא ריק של
<HostedTarget/>
לרכיב<TargetEndpoint>
. התג הריק הזה נדרש. הוא אומר ל-Edge שהיעד של שרת ה-proxy הוא אפליקציה שנפרסת סביבת יעדים מתארחים. - בכלי הניווט, שימו לב לתוכן שבקטע סקריפטים.
קובצי אפליקציות מסוג Node.js רשומים בתווית מארח.
- בממשק המשתמש של Edge, בודקים את הקבצים שמופיעים בקטע מתארחים בסקריפטים:
- קובץ app.yaml מכיל פרטי תצורה. לדוגמה, תוכלו להוסיף משתני סביבה שיהיו זמינים לאפליקציה Node.js בסביבת זמן ריצה. אין צורך לשנות את הקובץ עבור הדוגמה הזו.
- הקובץ index.js הוא הקובץ הראשי של אפליקציית Node.js.
- אם באפליקציה יש מודול כלשהו של יחסי התלות, הם צריכים להיות רשומים ב-package.json.
הצגת קובצי היומן
קובצי יומן האפליקציות יכולים להיות שימושיים לניפוי באגים שמתרחשות במהלך שלב ה-build וגם בזמן הריצה.
- בממשק המשתמש של Edge, לוחצים על הכרטיסייה פיתוח.
- כדי להציג את יומן ה-build, לוחצים על יצירת יומנים.
- כדי להציג את יומן הפריסה, לוחצים על יומני זמן ריצה.
לצפייה גם גישה לקובצי יומן.
סיכום
- פרסתם אפליקציה פשוטה של Node.js בסביבת Hosted Targets ובדקתם בממשק המשתמש של Edge.
- למדתם ששרת proxy של יעדים מתארחים דורש תג ריק מיוחד ביעד
נקודת הקצה (endpoint) נקראת
<HostedTarget/>
. - למדתם ש-Edge טוען את יחסי התלות של מודולים באופן אוטומטי, ויחסי התלות האלה
חייבות להיות רשומים בקובץ
package.json
. - למדתם גם איך לבדוק קובצי יומן של build ושל סביבת זמן ריצה.
פריסת Node.js מהמערכת ב-Edge
בקטע הזה מוסבר איך לפרוס אפליקציית Node.js עצמאית מהמערכת המקומית כדי:
מטרות מתארחות באמצעות apigeetool. apigeetool
כלי השירות מקבץ את אפליקציית Node.js לשרת proxy חדש של Hosted Targets ופורס אותה ל-Edge.
התקנת apigeetool
השימוש ב-apigeetool הוא הדרך המומלצת למפתחים לפרוס שרת proxy את הקוד ל-Edge. כדי להתקין את apigeetool מריצים את הפקודה הבאה של NPM:
npm install -g apigeetool
יצירת אפליקציית Node.js
כדי להקל עליכם, ניתן לכם קוד לאפליקציית Node.js פשוטה.
- יוצרים ספרייה לאפליקציית Node.js. קוראים לספרייה node-hosted-express.
- cd לספרייה החדשה.
- יוצרים קובץ בשם index.js ומעתיקים אליו את הקוד.
- יוצרים קובץ בשם package.json ומעתיקים אליו את הקוד. שימו לב המודול Express מצוין כתלות.
- יוצרים קובץ בשם app.yaml ומעתיקים אליו את הקוד הבא:
- מוודאים שהספרייה נראית כך:
ls app.yaml index.js package.json
var express = require('express') var app = express() app.get('/', function(req, res) { res.json({ hello: "Hello World!" }) }) app.get('/hello/:name', function(req, res) { var name = req.params.name res.json({ hello: "hello " + name }) }) var server = app.listen(process.env.PORT || 9000, function() { console.log('Listening on port %d', server.address().port) })
{ "name": "hello-world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js --use_strict" }, "author": "", "license": "", "dependencies": { "express": "^4.16.0" } }
runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
בדיקה של מבנה הספרייה הדרושה לקוד האפליקציה
אפליקציית Node.js צריכה לכלול את
להיות זהה למבנה של אפליקציית Node.js רגילה. עם זאת, חשוב להקפיד לפעול לפי ההנחיות האלה
לפני פריסה באמצעות apigeetool
ב-Edge:
- קובץ המניפסט app.yaml הוא חובה והוא חייב להימצא ברמה הבסיסית (root) של האפליקציה. מידע נוסף על הקובץ הזה זמין בקובץ המניפסט.
- נדרש קובץ package.json. היא חייבת לפרט את כל יחסי התלות ש נדרש.
- תיקיית node_modules node_modules node_modules. Edge מריץ התקנה של NPM כשאפליקציית Node.js פרוסה. הוא מקבל את יחסי התלות מ-package.json. הפעם היחידה שבה תצטרכו באופן מפורש לספק node_modules – המשמעות היא שיש לכם מודולים מותאמים אישית שלא זמינים עד npm.
פריסה של שרת ה-proxy
- בטרמינל, לוחצים על cd לתיקיית השורש של אפליקציית Node.js.
- מריצים את apigeetool עם הפקודה Deployhosttarget:
apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username
כאשר -n הוא השם שרוצים לתת לשרת ה-Proxy החדש. חייבת להיות ייחודית
בארגון. התווים שמותר להשתמש בהם בשם מוגבלים ל
אלה: a-z0-9._\-$%
לדוגמה:
apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com
מידע נוסף על השימוש ב-apigeetool זמין במאמר https://github.com/apigee/apigeetool-node.
בדיקת שרת ה-proxy
אפשר לבדוק את שרת ה-proxy באמצעות פקודת cURL, בלקוח REST כמו Postman או בממשק המשתמש של Edge בכלי המעקב. הנה דוגמה לפקודת cURL.
curl http://myorg-test.apigee.net/node-hosted-express {"date":1506992197427,"msg":"hello-world"}
אחזור יומני ה-Build
יומני build מציגים פלט שקשור לפריסה ולפיתוח של אפליקציית Node.js. ראו גם קובצי יומן.
apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name
לדוגמה:
apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express
אחזור יומני זמן הריצה
ביומני זמן הריצה מוצג פלט שקשור לאפליקציה שפועלת. יומני זמן ריצה מוגבלים לסביבה ולהחזיר יומנים עבור גרסת שרת ה-proxy שנפרסה כרגע. ראו גם קובצי יומן.
apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name
לדוגמה:
apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express
הצגת שרת ה-proxy בממשק המשתמש של Edge
לאחר פריסה מוצלחת, תוכלו להציג ולערוך את שרת ה-proxy בחלק של ממשקי ה-proxy ל-API ממשק משתמש של Edge.
העברת שרת proxy קיים של Node.js לשרת proxy של יעדים מתארחים
בקטע הזה מוסבר איך לבצע העברה ידנית של שרת proxy קיים של Edge API שמשתמש ב מסורתי הטמעת יעד של Node.js למטרות מתארחות. הוא גם מסביר איך לפרוס את שרת ה-proxy אחרי ביצעתם את שלבי ההעברה.
שלבי ההעברה שומרים על המבנה של שרת ה-proxy ל-API, כללי המדיניות, התהליכים ורכיבי הגדרה אחרים. אפשר לבצע את ההעברה בארבעה שלבים כמו שמתואר בהמשך, ואז לפרוס שרת ה-proxy שהועבר באמצעות apigeetool.
שלב 1: שינוי מבנה הקובץ של שרת ה-Proxy
כדי לשנות את מבנה הקובץ, ה-Proxy ל-API חייב להיות במערכת הקבצים המקומית. אם שרת ה-proxy הוא
שנפרסה ב-Edge, צריך להוריד אותה
לפני שממשיכים. בתצורה המסורתית, בשרת ה-Proxy של Edge כתוב 'bundle' שכולל את הקוד Node.js תואם למבנה הקובץ הזה.
קוד האפליקציה של Node.js ממוקם בספרייה resources/node
:
apiproxy/ policies/ proxies/ targets/ resources/ node/ Your application code
עבור יעדים מתארחים, יש למקם את ספריית השורש של אפליקציית Node.js תחת
ספרייה בשם resources/hosted
. פשוט יוצרים ספרייה חדשה בשם
משאבים/מארח ומעבירים את התוכן של resources/node
לתוכו. לאחר מכן, אפשר למחוק את הספרייה resources/node
.
apiproxy/ policies/ proxies/ targets/ resources/ hosted/ Your application code
שלב 2: מוסיפים את קובץ המניפסט
יוצרים קובץ מניפסט בשם app.yaml
ומציבים אותו בקטע
apiproxy/resources/hosted
ספרייה.
בהמשך מופיע קובץ app.yaml
לדוגמה. הוא מציין שסביבת זמן הריצה
Node.js (חובה). הוא גם יוצר משתנה סביבה בסביבת הביצוע
(משתנה שאפליקציית Node.js יכולה לגשת אליו). משתנה הסביבה הוא אופציונלי
והיא מוצגת כאן רק כדוגמה. פרטים נוספים ודוגמאות זמינים במאמר קובץ המניפסט.
runtime: node env: - name: NODE_ENV value: production
בדוגמה הבאה מוצג מבנה של פרויקט Node.js שנמצא במיקום הנכון
שרת proxy לפריסה של יעדים מתארחים:
apiproxy/ resources/ hosted/ index.js node_modules/ app.yaml package.json
שלב 3: מוודאים שיש קובץ package.json
בשרתי ה-proxy המסורתיים של Edge.js, ה-package.json
היה
אופציונלי. עם זאת, עבור יעדים מתארחים, עליך לספק יעד כזה בספרייה apiproxy/resources/hosted
. חשוב
כדי לציין בקובץ הזה את יחסי התלות הנדרשים לאפליקציה שלכם.
שלב 4: משנים את נקודת הקצה כיעד של שרת ה-proxy
לשרת proxy מסורתי של Node.js נדרש תג בשם <ScriptTarget>
נמצאים בקובץ נקודת הקצה כיעד (בדרך כלל /apiproxy/targets/default.xml
).
עבור יעדים מתארחים, צריך להוסיף תג ריק בשם <HostedTarget/>.
אם יש תג ScriptTarget
בקובץ, אפשר פשוט להסיר אותו.
לדוגמה:
<?xml version="1.0" encoding="UTF-8"?> <TargetEndpoint name="default"> <Description /> <FaultRules /> <PreFlow name="PreFlow"> <Request /> <Response /> </PreFlow> <PostFlow name="PostFlow"> <Request /> <Response /> </PostFlow> <Flows /> <HostedTarget /> </TargetEndpoint>
פריסה של שרת ה-proxy
עכשיו אפשר לפרוס את שרת ה-proxy באמצעות הפקודה apigeetool deployproxy
.
- cd לספריית הבסיס של שרת ה-proxy: /apiproxy
- משתמשים בפקודה הבאה כדי לפרוס את שרת ה-Proxy:
apigeetool deployproxy -u username -o org -e env -n proxy-name -d .
לדוגמה:
apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .
מידע נוסף על השימוש ב-apigeetool
זמין במאמרים הבאים:
https://github.com/apigee/apigeetool-node/blob/master/README.md.
בדיקת שרת ה-proxy
אפשר לבדוק את שרת ה-proxy באמצעות פקודת cURL, בלקוח REST כמו Postman או בממשק המשתמש של Edge בכלי המעקב. דוגמה לפקודת cURL:
curl http://myorg-test.apigee.net/hello-world Hello,World!