מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
ביטול הפריסה של שרת proxy של יעדים מתארחים
כשמבטלים את הפריסה של שרת proxy של Edge שכולל אפליקציה של יעדים מתארחים, אפליקציית היעדים המתארחים לא פרוסה, אבל תמונת האפליקציה הבסיסית לא נמחקה. אם לפרוס מחדש את שרת ה-proxy, אפליקציית Hosted Targets נפרסת מחדש.
מחיקת שרת proxy של יעדים מתארחים
אחרי שמוחקים שרת proxy של Hosted Targets, המכונות הבסיסיות של זמן הריצה יפסיקו לפעול בפרק זמן מסוים. עם זאת, קוד האפליקציה יישאר בתוקף.
גישה לקובצי יומן
קובצי יומן הם שימושיים לניפוי באגים ולפתרון בעיות. אפשר להציג שני סוגים של קובצי יומן עבור פריסת יעדים מתארחים:
- Build Log – הצגת פלט שקשור לפריסה ולפיתוח של אפליקציית יעדים מתארחים.
- יומן זמן ריצה – מציג פלט שקשור לאפליקציית היעדים המתארחים. יומני זמן ריצה הם מוצגים ברמת הסביבה ומציגים את פרטי היומן של גרסת ה-proxy שנפרסה כרגע.
גישה ליומנים מממשק המשתמש של Edge
- נכנסים לכתובת: apigee.com/edge
- מזינים את פרטי הכניסה ולוחצים על כניסה.
- בוחרים באפשרות פיתוח > שרתי proxy ל-API בתפריט הניווט הצדדי.
- בוחרים את שרת ה-proxy שעבורו רוצים לצפות ביומנים.
- לוחצים על הכרטיסייה פיתוח.
- כדי להציג את יומן ה-build, לוחצים על יצירת יומנים.
- כדי להציג את היומן של סביבת זמן הריצה, לוחצים על יומני זמן ריצה.
גישה ליומנים באמצעות ה-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 פרטי, מבצעים את השלבים הבאים:
- התחברות ל-NPM:
npm login
- קבלת אסימון אימות של NPM:
- מאתרים את קובץ ה-.npmrc (הוא צריך להיות בפורמט ~/.npmrc).
- ב-.npmrc, שימו לב לאסימון שבסוף השורה שנראה כך:
//registry.npmjs.org/:_authToken=****
- לחלופין, משתמשים בפקודות
npm token <list | create | revoke>
כדי להציג רשימה, יצירה או ביטול של אסימון אימות. הצגת האסימון npm תיעוד לפרטים נוספים. - נכנסים לדף ההגדרה של Key Value Maps, כפי שמתואר בהמשך.
Edge
כדי לגשת לדף ההגדרה של Key Value Maps דרך ממשק המשתמש של Edge:
- נכנסים לחשבון בכתובת apigee.com/edge.
- בוחרים באפשרות ניהול > סביבות > מפות ערכי מפתחות בסרגל הניווט הימני.
Classic Edge (ענן פרטי)
כדי לגשת לדף ההגדרה של מפות ערכי מפתח באמצעות ממשק המשתמש של Classic Edge:
- יש להיכנס אל
http://ms-ip:9000
, כאשר ms-ip הוא כתובת ה-IP או שם ה-DNS של הצומת של שרת הניהול. - בוחרים באפשרות APIs > הגדרת הסביבה > מפות Google לקביעת ערך המפתח בסרגל הניווט העליון.
- לוחצים על + מפת ערכים של מפתחות.
- בתיבת הדו-שיח 'מפת ערכי מפתח חדשים', מזינים שם ובוחרים באפשרות מוצפן.
- לוחצים על הוספה.
- הוספה של אסימון האימות שמצאת או יצרת בעבר כרשומה חדשה בכל אחד ממכונות ה-KVM שיצרתם.
- בקובץ app.yaml, מוסיפים רשומה שמפנה ל-KVM ולמפתח שמשויך לאסימון האימות npm. הוא אמור להיראות כך:
- מאפיין name ברמה העליונה תואם לשם הסביבה המשתנה שייווצר.
- name בקטע valueRef תואם ל-KVM שאתם שנוצר בעבר.
- המאפיין key תואם למפתח שממופה לאסימון ה-NPM ל-KVM.
- יוצרים קובץ .npmrc באותה ספרייה שמכילה את package.json. הזה
הקובץ אמור להיראות כך:
או אם אתם לא משתמשים ב-//registry.npmjs.org/:_authToken=${NPM_TOKEN}
registry.npmjs.org
, אפשר להגדיר את ההיקף בקובץ npmrc. על ידי הוספת שורה כמו@myscope:registry=https://mycustomregistry.example.org
אפשר לעיין גם במסמכי התיעוד של NPMrc. - מעלים או מעדכנים את שרת ה-proxy של Node.js כך שיכלול את הקובץ .npmrc ואת קובצי app.yaml.
- צריך לוודא ששרת ה-proxy החדש או המעודכן נפרס ועובד עם המאגר הפרטי הרצוי של מודל טרנספורמר.
- אם שרת ה-proxy לא נפרס, צריך לבדוק את יומני ה-build כדי לראות אם הוא נכשל בהתקנה של מודול npm פרטי. אם זו הסיבה, צריך:
- בכרטיסייה 'פיתוח', מוודאים שקובץ .npmrc מופיע.
- צריך לוודא שהאסימון תקין (כדאי לנסות להתקין את המודול באופן מקומי עם האסימון הקיים ב-Kvm).
- אם משתמשים בהיקף מותאם אישית, חשוב להגדיר אותו.
env:
- name: NPM_TOKEN
valueRef:
name: npm_store
key: private_token
כאשר:
ציון גרסת ה-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
היא רק
לדוגמה.