פריסת אפליקציית Node.js עצמאית

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

כאן מוסבר איך לפרוס אפליקציית Node.js מהמערכת המקומית ב-Apigee Edge. בנושא הזה נסביר איך להשתמש בכלי שורת הפקודה בשם apigeetool כדי לפרוס אפליקציות Node.js ב-Apigee Edge.

מידע על פריסת קוד Node.js ב-Apigee Edge

אפשר לפרוס אפליקציה קיימת של Node.js API, כולל מודולים תלויים של Node.js, מהמערכת המקומית אל Apigee Edge באמצעות כלי שורת פקודה בשם apigeetool. תוכנת העזר מאגדת את האפליקציה ואת יחסי התלות שלה באופן אוטומטי בתוך שרת proxy של API ופורסת אותו ב-Edge.

לדוגמה, נניח שהשתמשת ב-Express כדי ליצור אפליקציית אינטרנט ב-Node.js. האפליקציה פועלת כשרת HTTP שמאזין לבקשות HTTP, מעבד את הבקשות האלה, מחזיר נתונים וכו'. כשמשתמשים ב-apigeetool כדי לפרוס אפליקציית Node.js ב-Edge, היא ארוזה בשרת proxy ופועלת בהקשר של פלטפורמת Edge. אחר כך אפשר לקרוא לאפליקציה דרך כתובת ה-URL החדשה של שרת ה-proxy, ולהוסיף לה ערך על ידי הוספת תכונות ל-Edge באמצעות תכונות סטנדרטיות של Edge כמו אבטחת OAuth, מדיניות מכסה, מדיניות הגנה מפני איומים, תהליכי עבודה מותנים, שמירה במטמון ועוד.

מה עושה apigeetool?

כשמפעילים את כלי השירות apigeetool עם האפשרות deploynodeapp, הוא:

  • יוצר חבילת תצורה של שרת proxy ל-API כדי לאחסן את אפליקציית Node.js.
  • אורזת את האפליקציה Node.js עם כל חבילות Node.js שמותקנות עם NPM (Node Packaged Modules).
  • מייבאת את חבילת התצורה של שרת proxy ל-API לארגון שצוין ב-Apigee Edge באמצעות ממשק ה-API לניהול Edge.
  • פריסת שרת ה-proxy של ה-API בסביבה.
  • מפעיל את האפליקציה Node.js ב-Apigee Edge והופך אותה לזמינה דרך הרשת.

בהכנה לשימוש ב-apigeetool

לפני שמתחילים, צריך להתקין את תוכנית השירות apigeetool.

אפשר להתקין את apigeetool דרך npm או באמצעות שכפול וקישור של הקוד מ-GitHub.

התקנה מ-npm

המודול apigeetool ויחסי התלות שלו מיועדים ל-Node.js וזמינים דרך npm באמצעות הפקודה הבאה:

$ sudo npm install -g apigeetool

בדרך כלל, האפשרות -g ממקמת מודולים ב: /usr/local/lib/node_modules/apigeetool במכונות מבוססות nix.

התקנה מ-GitHub

אפשר להוריד או לשכפל את כלי הפלטפורמה של ה-API מ-GitHub. לקבלת הוראות התקנה, עיינו בקובץ ה-README שבספריית השורש של המאגר.

$ git clone https://github.com/apigee/apigeetool-node.git

בסיום ההתקנה, חשוב לוודא שקובץ ההפעלה apigeetool נמצא בנתיב. כדי לבדוק זאת, מקלידים:

$ apigeetool -h

פריסת אפליקציית Node.js ב-Edge באמצעות apigeetool

הערה: לפני הפריסה, צריך לדעת את שם הארגון ב-Apigee Edge, את שם המשתמש ואת הסיסמה של חשבון Apigee Edge. המידע הזה נדרש כדי ליצור את הפקודה apigeetool בצורה תקינה.

כדי לפרוס אפליקציית Node.js באמצעות apigeetool:

  1. בחלון טרמינל, לוחצים על cd של ספריית הבסיס של אפליקציית Node.js.
  2. מפעילים את הכלי apigeetool באמצעות הפקודה deploynodeapp:

    $ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
    
    לדוגמה:

    $ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
    
  3. בודקים את הפלט בחלון הטרמינל. זה ייראה בערך כך:

    Importing new application myNodeApp
    Imported new app revision 1
    Deploying revision 1
      Deployed.
    Proxy: "myNodeApp" Revision 1
      Environment: test BasePath: /myNodeApp
      Status: deployed
    

    אם מוצג הכיתוב 'סטטוס: נפרס', אין צורך לעשות זאת. הכול התנהל בצורה חלקה. אפליקציית Node.js שלך ארוזה בשרת proxy של API, נפרסת ב-Edge, והיא פועלת וממתינה לטיפול בבקשות. הוא מוכן לבדיקה.

  4. בודקים את שרת ה-proxy. למשל:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. אפשר להיכנס לחשבון Apigee Edge ולהיכנס לדף שרתי ה-API של שרתי ה-API בממשק המשתמש של הניהול. שם שרת ה-proxy החדש יופיע.

איך apigeetool מטפל בקבצים ובמודולים תלויים

אם אפליקציית Node.js תלויה במודולים המותקנים, apigeetool מטפל בהם על ידי כיווץ התיקייה node_modules והוספה שלה לחבילת שרת ה-proxy. אין צורך בפעולה נוספת. הכלל הזה נכון גם לגבי ספריות שמכילות קוד מקור נוסף. תוכנת העזר של apigeetool סוגרת אותם ופורסת אותם עם החבילה.

לא ניתן לערוך קבצים בספריות הדחוסות האלה בעורך ממשק המשתמש לניהול Edge. אם צריך לשנות אותן, אפשר לייצא את הפרויקט, לערוך את הקבצים באופן מקומי ואז לפרוס אותם מחדש באמצעות apigeetool או לייבא את הפרויקט שייצאת דרך ממשק המשתמש לניהול. לפרטים נוספים אפשר לעיין בקטע "ייצוא וייבוא של שרת proxy באמצעות קוד Node.js".

פרטי שימוש בסיסיים ב-apigeetool

למידע בסיסי על השימוש בפרמטרים של הקלט של כלי השירות apigeetool, צריך להזין:

$ apigeetool deploynodeapp -h

  Usage: deploynodeapp -n [name] -o [organization] -e [environment]
  -d [directory name] -m [main script file]
  -u [username] -p [password]
  -b [base path] -l [apigee API url] -z [zip file] -i -h
  -o Apigee organization name
  -e Apigee environment name
  -n Apigee proxy name
  -d Apigee proxy directory
  -m Main script name: Should be at the top level of the directory
  -u Apigee user name
  -p Apigee password
  -b Base path (optional, defaults to /)
  -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com)
  -z ZIP file to save (optional for debugging)
  -i import only, do not deploy
  -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. 
  -U Uploads Node.js modules to Apigee Edge. 
  -h Print this message

יצירת שרת Proxy חדש עם קובצי Node.js קיימים

דרך נוספת לשלב אפליקציית Node.js קיימת בשרת proxy של API היא להוסיף את האפליקציה כשיוצרים את שרת ה-proxy. אפשר לעשות את כל זה דרך ממשק המשתמש לניהול ותיבת הדו-שיח של שרת ה-API החדש.

  1. בדף הסיכום של שרת ה-API של שרת ה-proxy, לוחצים על +API Proxy.
  2. בתיבת הדו-שיח New API Proxy, בוחרים באפשרות Existing Node.js.
  3. אפשר ללחוץ על הלחצן בחירת קבצים כדי לבחור קובץ Node.js אחד או יותר לייבוא.
  4. נותנים שם לשרת ה-proxy. בדוגמה הזו אנחנו קוראים לו hellonode.
  5. מוסיפים את הגרסה /v1 לנתיב Project Base. מומלץ ליצור גרסאות של ה-API.
  6. לוחצים על Build (יצירה).
  7. לוחצים על פיתוח כדי להיכנס לתצוגה 'פיתוח'.
  8. פותחים את הקובץ TargetEndpoint בעורך הקוד.
  9. מוודאים שהרכיב <ScriptTarget> מציין את קובץ Node.js הראשי באופן הבא:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
    
  10. לוחצים על שמירה.

הוספה והפעלה של קובצי משאבים חדשים ב-Node.js

דרך נוספת להוסיף קוד Node.js לשרת proxy היא להוסיף אותו ישירות, דרך ממשק המשתמש או על ידי העלאה שלו ממערכת הקבצים המקומית. אפשר גם לציין איזה קובץ Node.js יהיה הקובץ הראשי, שהוא הקובץ ש-Edge יופעל כששרת ה-proxy נפרס.

הוספה של קובצי Node.js חדשים דרך ממשק המשתמש

בממשק המשתמש לניהול אפשר להוסיף עוד קובצי מקור של Node.js לשרת proxy שנמצא בפלטפורמת Edge. אפשר ליצור אותם ישירות בממשק המשתמש או לייבא אותם ממערכת הקבצים. קודם כול נראה איך לעשות את זה מממשק המשתמש.

כדי ליצור קובץ משאבים חדש של Node.js:

  1. בתצוגה 'פיתוח', בוחרים באפשרות New Script (סקריפט חדש) בתפריט New.
  2. בתיבת הדו-שיח 'הוספת סקריפט', בוחרים את סוג הקובץ Node ונותנים שם לסקריפט.
  3. לוחצים על הוספה.

הקובץ החדש והריק Node.js ייפתח בעורך. ניתן לגזור ולהדביק את הקוד בקובץ. הקובץ מופיע גם בקטע 'סקריפטים' ב-Nvigator.

[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":{"alt":"","class":"media-image","height":"312"," ⌘":"foaf:Image","width":"417"}}]]

ייבוא קובצי Node.js ממערכת הקבצים

כדי import קובץ Node.js ממערכת הקבצים אל שרת ה-proxy:

  1. בתצוגה 'פיתוח', בוחרים באפשרות New Script (סקריפט חדש) בתפריט New.
  2. בתיבת הדו-שיח 'הוספת סקריפט', לוחצים על ייבוא הסקריפט.
  3. משתמשים בכלי הקבצים כדי לבחור את קובץ Node.js.
  4. שם הקובץ יתווסף לתיבת הדו-שיח, אבל אפשר לשנות אותו לפי הצורך.
  5. לוחצים על הוספה. הקובץ מופיע בקטע Scripts ב-Navigator ונפתח בכלי העריכה.
  6. לוחצים על שמירה.

כדי להפעיל את הקובץ שיובא, צריך לבצע שלב נוסף, כמו שמוסבר בקטע הבא.

הפעלה של קובץ Node.js מיובא

לא ניתן פשוט להפעיל קובץ Node.js שיובא או נוצר לאחרונה. הסיבה לכך היא שמערכת Edge דורשת שקובץ Node.js אחד יהיה הקובץ הראשי. הקובץ הראשי מצוין ברכיב <ScriptTarget> של ההגדרה של נקודת הקצה (Target Endpoint). כדי לציין איזה קובץ הוא קובץ ה-Node.js הראשי:

  1. בקטע Target Endpoints (נקודות קצה ליעד) בתפריט הניווט, לוחצים על השם של נקודת הקצה (endpoint) של היעד (בדרך כלל נקרא default).
  2. בעורך הקוד, עורכים את הרכיב <ScriptTarget> על ידי שינוי הרכיב <ResourceURL> כך שישקף את שם הקובץ שרוצים להגדיר כקובץ Node.js הראשי. לדוגמה, אם רוצים שקובץ בשם hello-world.js יהיה הקובץ הראשי, צריך להזין: node://hello-world.js ברכיב ResourceURL.
  3. לוחצים על שמירה.

בשלב זה, תוכלו להפעיל את הקובץ עם כל נתיב של שרת proxy שבו השתמשתם בעבר. לדוגמה, בדקנו את הדוגמה של Hello World! שבה צוין נתיב הבסיס v1/hello. עם זאת, אפשר לשנות את הנתיב הבסיסי באמצעות עריכת נקודת הקצה של שרת ה-proxy.

  1. בקטע 'נקודות קצה של Proxy' ב-Nvigator, לוחצים על השם של נקודת הקצה של שרת ה-proxy (בדרך כלל נקראת ברירת מחדל).
  2. בעורך הקוד, עורכים את הרכיב <HttpProxyConnection> ומשנים את <BasePath> לכל שם שרוצים. לדוגמה, אם ערך <BasePath> הנוכחי הוא v1/hello ורציתם שהוא יהיה v1/my-node-file, צריך לשנות את האלמנט <BasePath> כך:

    <BasePath>/v1/my-node-file</BasePath>
  3. לוחצים על שמירה.
  4. מפעילים את שרת ה-Proxy באמצעות הנתיב הבסיסי החדש, באופן הבא:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

ייצוא וייבוא של שרת proxy באמצעות קוד Node.js

אחרי שפורסים שרת proxy שמכיל קוד Node.js ל-Edge, אפשר תמיד לייצא את שרת ה-Proxy בחזרה למערכת, לעבוד עליו שם ואז לייבא אותו מחדש ל-Edge באמצעות ממשק המשתמש לניהול. הרבה פעמים משתמשים בטכניקת הפיתוח הזו הלוך ושוב.

  1. בדף הסיכום של שרת ה-API של שרת ה-API, לוחצים על פיתוח.
  2. בדף 'פיתוח', בוחרים באפשרות הורדת הגרסה הנוכחית.
  3. מחלצים את הקובץ שהורד במערכת.

אפשר לייבא את חבילת ה-proxy בחזרה אל Edge על ידי בחירה באפשרות Import In to New Revision (ייבוא לגרסה חדשה) באותו תפריט.

אפשר גם להשתמש ב-API לפריסת שרתי proxy. לפרטים נוספים, אפשר לקרוא את המאמר פריסת שרתי proxy משורת הפקודה.

השלבים הבאים

בנושא הבא, הוספת Node.js לשרת proxy קיים של API, נסביר איך להוסיף אפליקציית Node.js לשרת Proxy קיים במערכת הקבצים ולפרוס אותו ב-Edge.