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

אתם צופים במסמכי העזרה של Apigee Edge.
לעיון במאמרי העזרה של Apigee X.
מידע

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

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

אפשר לפרוס אפליקציית API קיימת של Node.js, כולל מודולים תלויים של 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 באמצעות Edge Management API.
  • פריסת שרת ה-proxy ל-API בסביבה.
  • הרצת אפליקציית Node.js ב-Apigee Edge והפיכתה לזמינה ברשת.

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

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

אפשר להתקין את apigeetool דרך npm או על ידי יצירת עותקים כפולים (cloning) של הקוד מ-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 נמצא ב-Path. כדי לבדוק זאת, אפשר להקליד:

$ apigeetool -h

פריסת אפליקציית Node.js לקצה באמצעות 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 Proxies בממשק המשתמש לניהול. שרת ה-proxy החדש יופיע ברשימה.

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

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

אי אפשר לערוך קבצים בספריות האלה בפורמט zip בעורך של ממשק הניהול של 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 Proxy.

  1. בדף הסיכום של שרת ה-proxy ל-API, לוחצים על +API Proxy.
  2. בתיבת הדו-שיח 'שרת proxy ל-API חדש', בוחרים באפשרות Node Node.js קיים.
  3. לוחצים על הלחצן בחירת קבצים כדי לבחור קובץ Node.js אחד או יותר לייבוא.
  4. נותנים שם לשרת ה-proxy. בדוגמה הזו, נקרא לו hellonode.
  5. מוסיפים את הגרסה /v1 לנתיב הבסיסי של הפרויקט. שימוש בגרסאות ב-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 מפעיל כשהשרת הווירטואלי נפרס.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. בקטע Proxy Endpoints ב-Navigator, לוחצים על השם של נקודת הקצה של שרת ה-Proxy (בדרך כלל נקרא default).
  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

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

  1. בדף הסיכום של שרת ה-proxy ל-API, לוחצים על פיתוח.
  2. בדף Develop, בוחרים באפשרות Download Current Revision.
  3. מבטלים את דחיסת הקובץ שהורדתם במערכת.

כדי לייבא את חבילת שרת ה-proxy בחזרה ל-Edge, בוחרים באפשרות Import Into New Revision (ייבוא לגרסה חדשה) מאותו תפריט.

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

השלבים הבאים

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