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

מה עושה apigeetool?

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

  • מייצר חבילת הגדרות של שרת proxy ל-API כדי לאחסן את אפליקציית Node.js.
  • הכלי אורז את אפליקציית Node.js עם כל חבילות Node.js שהותקנו באמצעות NPM (מודולים ארוזים של Node).
  • מייבא את חבילת ההגדרות של ה-proxy ל-API לארגון שצוין ב-Apigee Edge באמצעות Edge Management API.
  • פריסת ה-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 Platform Tools מ-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. בודקים את השרת הפרוקסי. לדוגמה:

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

איך 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. אפשר לעשות את זה לגמרי דרך ממשק המשתמש לניהול ודרך תיבת הדו-שיח New API Proxy (פרוקסי חדש של API).

  1. בדף הסיכום של ה-proxy ל-API, לוחצים על +API Proxy.
  2. בתיבת הדו-שיח 'New API Proxy' (פרוקסי חדש של API), בוחרים באפשרות Existing Node.js (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 לפרוקסי היא להוסיף אותו ישירות, דרך ממשק המשתמש או על ידי העלאה ממערכת הקבצים המקומית. אפשר גם לציין איזה קובץ Node.js הוא הקובץ הראשי, כלומר הקובץ ש-Edge מפעיל כשפורסים את ה-proxy.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. בקטע Proxy Endpoints (נקודות קצה של שרת 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

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

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

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

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

השלבים הבאים

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