מדריכי יעדים מתארחים

מוצג המסמך של 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 של יעדים מתארחים ואיך לגשת לפריסה וליצירה של קובצי יומן.

כניסה לחשבון

  1. נכנסים לכתובת: apigee.com/edge
  2. כדי להיכנס, מזינים את פרטי הכניסה ל-Apigee.

יצירת שרת proxy חדש

  1. בתפריט הניווט הצדדי לוחצים על פיתוח > שרתי proxy ל-API.
  2. לוחצים על + Proxy.
  3. בדף Create Proxy (יצירת Proxy), בוחרים באפשרות Hosted Target (יעד מארח).
  4. לוחצים על הבא.
  5. בשדה 'שם שרת ה-proxy', מזינים hello-hosted-targets.
  6. ודאו ש-"Hello World" (שלום עולם) נבחרה דוגמה.
  7. לוחצים על הבא.
  8. בדף 'אבטחה', בוחרים באפשרות עבר (none) להרשאה.
  9. לוחצים על הבא.
  10. לוחצים על הבא.
  11. בדף ה-Build, מוודאים שסביבת הבדיקה נבחרה. הודעה שסוג שרת ה-proxy הוא Hosted Targets.
  12. לוחצים על Build and Deploy (יצירה ופריסה). ייתכן שיחלפו מספר דקות עד שפריסת שרת ה-proxy תושלם.
  13. אחרי ששרת ה-Proxy נפרס בהצלחה, לוחצים על הצגת שרת Proxy שמתארח ב-hello. שבתחתית הדף.
  14. קוראים לשרת ה-proxy של ה-API. הדרך הקלה ביותר לעשות זאת היא לעבור אל Trace. Tab, התחלת Trace סשן, ולוחצים על שליחה. הסטטוס 200 אמור להופיע עם הסטטוס הבא תגובה:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

בדיקת שרת ה-proxy

  1. בממשק המשתמש של Edge, לוחצים על הכרטיסייה פיתוח.
  2. בכלי הניווט, בוחרים באפשרות default (ברירת מחדל) בקטע Target Endpoints.
  3. בעורך הקוד, רואים שיש צאצא ריק של <HostedTarget/> לרכיב <TargetEndpoint>. התג הריק הזה נדרש. הוא אומר ל-Edge שהיעד של שרת ה-proxy הוא אפליקציה שנפרסת סביבת יעדים מתארחים.

  4. בכלי הניווט, שימו לב לתוכן שבקטע סקריפטים. קובצי אפליקציות מסוג Node.js רשומים בתווית מארח.

  5. בממשק המשתמש של Edge, בודקים את הקבצים שמופיעים בקטע מתארחים בסקריפטים:
    • קובץ app.yaml מכיל פרטי תצורה. לדוגמה, תוכלו להוסיף משתני סביבה שיהיו זמינים לאפליקציה Node.js בסביבת זמן ריצה. אין צורך לשנות את הקובץ עבור הדוגמה הזו.
    • הקובץ index.js הוא הקובץ הראשי של אפליקציית Node.js.
    • אם באפליקציה יש מודול כלשהו של יחסי התלות, הם צריכים להיות רשומים ב-package.json.

הצגת קובצי היומן

קובצי יומן האפליקציות יכולים להיות שימושיים לניפוי באגים שמתרחשות במהלך שלב ה-build וגם בזמן הריצה.

  1. בממשק המשתמש של Edge, לוחצים על הכרטיסייה פיתוח.
  2. כדי להציג את יומן ה-build, לוחצים על יצירת יומנים.
  3. כדי להציג את יומן הפריסה, לוחצים על יומני זמן ריצה.

    לצפייה גם גישה לקובצי יומן.

סיכום

  • פרסתם אפליקציה פשוטה של 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 פשוטה.

  1. יוצרים ספרייה לאפליקציית Node.js. קוראים לספרייה node-hosted-express.
  2. cd לספרייה החדשה.
  3. יוצרים קובץ בשם index.js ומעתיקים אליו את הקוד.
  4. 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)
    })
  5. יוצרים קובץ בשם package.json ומעתיקים אליו את הקוד. שימו לב המודול Express מצוין כתלות.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
  7. יוצרים קובץ בשם app.yaml ומעתיקים אליו את הקוד הבא:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
  9. מוודאים שהספרייה נראית כך:
    ls
    app.yaml index.js package.json
    

בדיקה של מבנה הספרייה הדרושה לקוד האפליקציה

אפליקציית 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

  1. בטרמינל, לוחצים על cd לתיקיית השורש של אפליקציית Node.js.
  2. מריצים את apigeetool עם הפקודה Deployhosttarget:
  3. 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). עבור יעדים מתארחים, צריך להוסיף תג ריק בשם &lt;HostedTarget/&gt;. אם יש תג 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.

  1. cd לספריית הבסיס של שרת ה-proxy: /apiproxy
  2. משתמשים בפקודה הבאה כדי לפרוס את שרת ה-Proxy:
  3. 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!