משימות של 'יעדים מתארחים'

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

ביטול הפריסה של שרת proxy של יעדים מתארחים

כשמבטלים את הפריסה של שרת proxy של Edge שכולל אפליקציה של יעדים מתארחים, אפליקציית היעדים המתארחים לא פרוסה, אבל תמונת האפליקציה הבסיסית לא נמחקה. אם לפרוס מחדש את שרת ה-proxy, אפליקציית Hosted Targets נפרסת מחדש.

מחיקת שרת proxy של יעדים מתארחים

אחרי שמוחקים שרת proxy של Hosted Targets, המכונות הבסיסיות של זמן הריצה יפסיקו לפעול בפרק זמן מסוים. עם זאת, קוד האפליקציה יישאר בתוקף.

גישה לקובצי יומן

קובצי יומן הם שימושיים לניפוי באגים ולפתרון בעיות. אפשר להציג שני סוגים של קובצי יומן עבור פריסת יעדים מתארחים:

  • Build Log – הצגת פלט שקשור לפריסה ולפיתוח של אפליקציית יעדים מתארחים.
  • יומן זמן ריצה – מציג פלט שקשור לאפליקציית היעדים המתארחים. יומני זמן ריצה הם מוצגים ברמת הסביבה ומציגים את פרטי היומן של גרסת ה-proxy שנפרסה כרגע.

גישה ליומנים מממשק המשתמש של Edge

  1. נכנסים לכתובת: apigee.com/edge
  2. מזינים את פרטי הכניסה ולוחצים על כניסה.
  3. בוחרים באפשרות פיתוח > שרתי proxy ל-API בתפריט הניווט הצדדי.
  4. בוחרים את שרת ה-proxy שעבורו רוצים לצפות ביומנים.
  5. לוחצים על הכרטיסייה פיתוח.
  6. כדי להציג את יומן ה-build, לוחצים על יצירת יומנים.
  7. כדי להציג את היומן של סביבת זמן הריצה, לוחצים על יומני זמן ריצה.

גישה ליומנים באמצעות ה-API

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

שימוש במאגר פרטי של NPM

בקטע הזה נסביר איך לפרוס שרת proxy של Node.js ליעדים מתארחים במקרים שבהם משתמשים במאגר פרטי של NPM, בסביבת הפיתוח שלך.

מה צריך לדעת לגבי השימוש במאגר פרטי

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

כשמשתמשים בדגל --bundled-dependencies ב-apigeetool, אפליקציית Node.js תועלה ליעדים מתארחים ולכל קובץ מקומי/פרטי שרשום במערך bundledDependencies בקובץ package.json מכווצים ומועלים את הקובץ באמצעות החבילה.

למרות שזה לא מצב נפוץ, חשוב לזכור שאם תשקפים מאגר NPM ציבורי באופן פנימי, הפריסה שלכם תיכשל אם חבילת הפריסה שלך כוללת קובץ .npmrc או package-lock.json שמצביע למראה הפרטית שלכם. במקרה כזה, חשוב להשמיט את .npmrc או את package-lock.json מחבילת ה-proxy שבה אתם מתכוונים לפרוס.

פריסה עם מאגר NPM פרטי

כדי להשתמש במודולים שסופקו ממאגר NPM פרטי, מבצעים את השלבים הבאים:

  1. התחברות ל-NPM:
    npm login
  2. קבלת אסימון אימות של NPM:
    1. מאתרים את קובץ ה-.npmrc (הוא צריך להיות בפורמט ~/.npmrc).
    2. ב-.npmrc, שימו לב לאסימון שבסוף השורה שנראה כך:

      //registry.npmjs.org/:_authToken=****
    3. לחלופין, משתמשים בפקודות npm token <list | create | revoke> כדי להציג רשימה, יצירה או ביטול של אסימון אימות. הצגת האסימון npm תיעוד לפרטים נוספים.
  3. נכנסים לדף ההגדרה של Key Value Maps, כפי שמתואר בהמשך.

    Edge

    כדי לגשת לדף ההגדרה של Key Value Maps דרך ממשק המשתמש של Edge:

    1. נכנסים לחשבון בכתובת apigee.com/edge.
    2. בוחרים באפשרות ניהול > סביבות > מפות ערכי מפתחות בסרגל הניווט הימני.

    Classic Edge (ענן פרטי)

    כדי לגשת לדף ההגדרה של מפות ערכי מפתח באמצעות ממשק המשתמש של Classic Edge:

    1. יש להיכנס אל http://ms-ip:9000, כאשר ms-ip הוא כתובת ה-IP או שם ה-DNS של הצומת של שרת הניהול.
    2. בוחרים באפשרות APIs > הגדרת הסביבה > מפות Google לקביעת ערך המפתח בסרגל הניווט העליון.
  4. לוחצים על + מפת ערכים של מפתחות.
  5. בתיבת הדו-שיח 'מפת ערכי מפתח חדשים', מזינים שם ובוחרים באפשרות מוצפן.
  6. לוחצים על הוספה.
  7. הוספה של אסימון האימות שמצאת או יצרת בעבר כרשומה חדשה בכל אחד ממכונות ה-KVM שיצרתם.
  8. בקובץ app.yaml, מוסיפים רשומה שמפנה ל-KVM ולמפתח שמשויך לאסימון האימות npm. הוא אמור להיראות כך:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    כאשר:

    • מאפיין name ברמה העליונה תואם לשם הסביבה המשתנה שייווצר.
    • name בקטע valueRef תואם ל-KVM שאתם שנוצר בעבר.
    • המאפיין key תואם למפתח שממופה לאסימון ה-NPM ל-KVM.
  10. יוצרים קובץ .npmrc באותה ספרייה שמכילה את package.json. הזה הקובץ אמור להיראות כך:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    או אם אתם לא משתמשים ב-registry.npmjs.org, אפשר להגדיר את ההיקף בקובץ npmrc. על ידי הוספת שורה כמו @myscope:registry=https://mycustomregistry.example.org אפשר לעיין גם במסמכי התיעוד של NPMrc.
  11. מעלים או מעדכנים את שרת ה-proxy של Node.js כך שיכלול את הקובץ .npmrc ואת קובצי app.yaml.
  12. צריך לוודא ששרת ה-proxy החדש או המעודכן נפרס ועובד עם המאגר הפרטי הרצוי של מודל טרנספורמר.
  13. אם שרת ה-proxy לא נפרס, צריך לבדוק את יומני ה-build כדי לראות אם הוא נכשל בהתקנה של מודול npm פרטי. אם זו הסיבה, צריך:
    1. בכרטיסייה 'פיתוח', מוודאים שקובץ .npmrc מופיע.
    2. צריך לוודא שהאסימון תקין (כדאי לנסות להתקין את המודול באופן מקומי עם האסימון הקיים ב-Kvm).
    3. אם משתמשים בהיקף מותאם אישית, חשוב להגדיר אותו.

ציון גרסת ה-NPM עבור יחסי תלות בחבילה

כברירת מחדל, NPM v4 משמש להתקנת יחסי תלות בחבילה בסביבת היעדים המתארחים. אבל אם רוצים להשתמש בגרסה אחרת של NPM, אפשר לציין אותה בקובץ NPM_VERSION. במשתנה הסביבה. אפשר להגדיר את המשתנה הזה בקובץ המניפסט של האפליקציה. פרטים נוספים זמינים במאמר בנושא רכיבים בקובץ מניפסט.

אם משתמשים ביחסי תלות בחבילה ולא מציינים NPM_VERSION, יעדים מתארחים משתמש ב-NPM v4 כברירת מחדל. אם לא משתמשים יחסי תלות בחבילה, הגרסה של NPM שכלולה בזמן הריצה שצוין ב-Node.js.

דוגמה ליחסי תלות בחבילות

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

הוספה של נקודת קצה לבדיקת תקינות

אפשר להטמיע נקודת קצה (endpoint) של בדיקת תקינות לאפליקציה Node.js. מערכת Apigee משתמשת בנקודת הקצה הזו האפליקציה Node.js תתחיל לבדוק שהאפליקציה פועלת ופועלת בקונטיינר.

כברירת מחדל, נקודת הקצה (endpoint) של Apigee היא /health. אפשר לשנות את ברירת המחדל נקודת קצה (endpoint), על ידי ציון נקודת הקצה במשתנה סביבה בשם HOSTED_TARGET_HEALTH_CHECK_PATH ניתן להגדיר את המשתנה הזה במניפסט של האפליקציה חדש. פרטים נוספים זמינים במאמר בנושא רכיבים בקובץ מניפסט.

לא צריך להטמיע נקודת קצה של בדיקת תקינות. עם זאת, אם תטמיעו בדיקת תקינות חשוב לשים לב לדברים הבאים:

  • אם האפליקציה יוצאת כש-Apigee מגיעה לנקודת הקצה, האפליקציה לא מתחילה לפעול כצפוי.
  • זה בסדר אם נקודת הקצה מחזירה את הסטטוס 404 Not Found HTTP. /health או HOSTED_TARGET_HEALTH_CHECK_PATH משמש רק כדי לבדוק אם האפליקציה פועלת. המערכת תתעלם מהתגובה עצמה.

שינוי מיקום המטמון של NPM

בגרסאות חדשות יותר של Node.js נעשה שימוש בגרסה של NPM שמשתמשת ב-/root/.npm למטמון של NPM. המיקום הזה מהווה בעיה ביעדים מתארחים מאחר שמיקום הספרייה מוגדר לקריאה בלבד מכיוון שזמן הריצה של Hosted Target משתמש במערכת קבצים מסוג tmpfs, שבה ניתן לכתוב רק /tmp. כדי לעקוף את הבעיה, אפשר להגדיר את משתנה הסביבה npm_config_cache של האפליקציה שלך app.yaml (קובץ המניפסט) לספרייה בתוך /tmp. לדוגמה:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

הפעלת האפליקציה ללא NPM

כברירת מחדל, השירות 'יעדים מתארחים' משתמש ב-npm start כדי להריץ את האפליקציה 'יעד מתארח'. אבל במשימה הקודמת דיברנו על בעיה בשימוש ב-NPM, כי גרסאות חדשות יותר ינסו להשתמש /root/.npm למטמון של NPM, שלא ניתן לכתיבה והתוצאה שלו היא 'יעד מתארח' הניווט נכשל. המשימה הקודמת תפתור את הבעיה, אבל אפשר לנסות להריץ את האפליקציה ללא NPM. לשם כך, אפשר להשתמש command args בערכים של האפליקציה app.yamlקובץ (קובץ המניפסט) כדי להפעיל את היעד המתארח ישירות באמצעות node index.js. לדוגמה:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
כמובן שתוכלו להשתמש בכל פקודה שתרצו, ו-node index.js היא רק לדוגמה.