מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
מגבלות על משתני סביבה
היעדים המתארחים מגבילים את הגודל והמספר של משתני הסביבה שאפשר להגדיר בסביבת זמן הריצה של יעדים מתארחים.
- 1,000: האורך המקסימלי של משתנה סביבה יחיד.
- 100: המספר המקסימלי של משתני סביבה שאפשר להגדיר.
למידע נוסף על הגדרה של משתני סביבה: קובץ המניפסט.
משתני סביבה שמוגדרים בזמן הריצה של האפליקציה
כשפורסים אפליקציה של יעדים מתארחים, משתני הסביבה הבאים מוגדרים זמינים לאפליקציה בזמן הריצה:
APIGEE_ENVIRONMENT
– הסביבה שבה נפרס שרת ה-Proxy של היעד המתארח.APIGEE_ORGANIZATION
– הארגון שבו נפרס שרת ה-Proxy של היעד המתארח.PORT
– היציאה שבה אפליקציית היעד המתארחת חייבת להאזין.
הקצאת משאבי מערכת
כל מכונה של יעדים מתארחים מקבלים את המשאבים הבאים:
- זיכרון בנפח 256MB
- מעבד 1.2GHz
שינוי קנה מידה
בקטע הזה מתואר אופן הקנה המידה של אפליקציות יעדים מתארחים, בהתאם לסוג של חשבון Edge. שיש לכם.- גרסת ניסיון של Apigee Edge מוגבלת למופע אחד של יעדים מתארחים לכל שרת proxy.
- חשבונות Apigee Edge בתשלום מקבלים התאמה לעומס (auto-scaling) על סמך קצב הבקשות, זמני האחזור של התגובה,
ומדדי אפליקציות אחרים לכל שרת proxy.
- אפליקציות מטרות עסקיות מתארחות שנפרסו גם בגרסה בתשלום וגם בגרסה לניסיון של Apigee Edge כאפס במקרים של חוסר פעילות. במקרה כזה, יכול להיות שזמני התגובה יהיו איטיים יותר למשך פרק זמן קצר. עוד באותו הקשר בעיות מוכרות
קובץ המניפסט
כדי לאסוף מידע על סביבת זמן הריצה לפיתוח ופריסה של האפליקציה המתארחת, Edge מחפש קובץ מניפסט בשם app.yaml בספרייה resources/host. הקובץ הזה מכיל את המידע הנחוץ ליצירה ולפריסה של אפליקציית היעדים המתארחים.
תחביר של קובץ Manfiest
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
רכיבים של קובץ מניפסט
קובץ מניפסט מסוג app.yaml כולל את הרכיבים הבאים:
- runtime – (חובה) מציין את סוג האפליקציה שאתם פורסים.
צריך לציין
node
. - runtimeVersion - (אופציונלי) הגרסה של סביבת זמן הריצה שבה האפליקציה משתמשת. ברירת מחדל: Node.js LTS (v10.x). המאגר הרשמי של Docker ל-Node לאפשרויות אחרות.
- command - (אופציונלי) מאפשר לציין פקודה שתרוץ מלבד
פקודת ברירת המחדל שמשמשת להפעלת האפליקציה. ברירת המחדל:
Node.js=npm
- args – (אופציונלי) מערך של ארגומנטים בשורת הפקודה שרוצים להעביר אל
(צוין בתחביר מערך YAML סטנדרטי). בדרך כלל, האפשרויות האלה נוספות לפקודת ברירת המחדל.
ברירת המחדל היא start. לדוגמה, כברירת מחדל, הפקודה Node.js מועברת
npm start
- env – (אופציונלי) מערך של משתני סביבה (צמדים של שם/ערך) להגדיר בסביבת זמן הריצה של יעדים מתארחים. המשתנים האלה זמינים שפרסתם את אפליקציית היעדים המתארחים.
- name – שם המשתנה.
- value | valueRef – יש לכם שתי אפשרויות. אפשר להגדיר ערך מילולי
או להפנות לערך שמאוחסן במפת ערכי מפתחות. מפת הערכים של המפתח
כבר קיימים בסביבת Edge שלכם. איך לעבוד עם מפות בנושא ערך מרכזי
- אם משתמשים ב-value, צריך
לציין משתנה
name
וליטרלvalue
. לדוגמה:runtime: node env: - name: NODE_ENV value: production
- אם משתמשים ב-valueRef,
עליכם לספק את השם של מפת ערכי המפתח (KVM) שיצרתם בעבר ב-Edge ומפתח.
לדוגמה:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- אם משתמשים ב-value, צריך
לציין משתנה
- apigeetool -- שורת פקודה כלי לפריסה של שרתי proxy של Edge.
- get_token - כלי שורת פקודה לקבלת אסימון הרשאה שנדרש על ידי apigeetool.
- בדפדפן, עוברים לכתובת https://github.com/apigee/api-platform-samples.
- לוחצים על שכפול או הורדה ומושכים את המאגר למערכת המקומית באמצעות לשיטה המועדפת עליכם.
- cd אל <your Install dir>/api-platform-Sample/doc-Sample/host-targets.
- אחרי שמורידים את המאגר, אפשר להוסיף CD לכל אחת מהספריות לדוגמה ולפעול לפי הוראות README לפריסת שרת proxy לדוגמה ב-Edge. פקודת הפריסה מוצגת בהמשך. Simply מחליפים את הפרמטרים שצוינו בפרמטרים של חשבון Apigee שלכם:
- השהיות רשת - עכשיו, כשאפליקציית Node.js לא פועלת יותר ב-JVM של ה-MP, יש עכשיו צעד ברשת בין ה-MP לפריסה. כמובן שהם מורכבים יותר, הדבר עולה כסף, אבל נקודות ההשוואה הראשוניות מראות שהוא ביחס לסכום סביר
- תגובות API איטיות - התשתית שמפעילה את האפליקציות שלכם משתנה באופן אוטומטי בהתאם לצורך. פירוש הדבר הוא שהאפליקציה יכולה למעשה להתאים לעומס אפס מופעים. במקרה כזה, בקשת ה-API הבאה תימשך קצת יותר זמן של בקשות API טיפוסיות, מכיוון שהתשתית מסובבת את המכונות כדי לעבד בקשות.
- שגיאת פריסה - אם מקבלים שגיאת פריסה בעת פריסה שרת ה-proxy של Hosted Targets, צריך לנסות לפרוס מחדש את שרת ה-proxy. במקרים מסוימים, יכול להיות שהזמן הקצוב לתפוגה של הפריסה יפוג ואם תפרסו מחדש, הבעיה תיפתר מעצמה.
קובצי מניפסט לדוגמה
הקטע הזה מכיל קובצי מניפסט לדוגמה עבור Node.js
תרגום מכונה. נדרש קובץ מניפסט כדי לפרוס אפליקציית Hosted Targets, והמיקום שלו צריך להיות
בספרייה apiproxy/resources/hosted
, ושם הקובץ חייב להיות app.yaml
.
בהמשך מופיעים קובצי app.yaml
(מניפסט) לדוגמה לאפליקציות של Node.js.
דוגמה שמציינת משתנה סביבה מילולי:
runtime: node
env:
- name: NODE_ENV
value: production
דוגמה לפקודת התחלה, ארגומנטים בשורת הפקודה ומשתנה סביבה.
runtime: node
command: ./node_modules/pm2/bin/pm2
env:
- name: NODE_ENV
value: production
args:
- app.js
דוגמה שמציינת הפניה ל-Key Value Map (KVM):
מידע נוסף על גישה ל-KVM זמין במאמר קובץ המניפסט.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
דוגמה לאפליקציות של מטרות עסקיות מתארחות ב-GitHub
Apigee מספקת שרתי proxy לדוגמה ב-GitHub עם אפליקציות Hosted Targets שנכתבו ב-Node.js. אפשר לשכפל את המאגר הזה ולפעול לפי הוראות ה-README כדי לפרוס כל אחד משרתי ה-proxy.
דרישות מוקדמות
כדי לפרוס את הדוגמאות צריך להתקין במערכת שני כלים:
אם אתם רוצים לבדוק דוגמאות באופן מקומי, אתם צריכים גם להתקין את Node.js.
קבלת המאגר לדוגמה
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
דוגמה: הפעלת אפליקציה לדוגמה
שכפול מאגר הדוגמאות
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
בדיקה מקומית של האפליקציה
כדי לבצע את הבדיקה המקומית הזו, חובה להתקין את Node.js.
PORT=8081 node apiproxy/resources/hosted/index.js
curl http://localhost:8081
פלט לדוגמה:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}
פריסה של שרת ה-proxy
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
בדיקת הפריסה
תהליך הפריסה עשוי להימשך כמה דקות. אם מקבלים שגיאת פריסה, מפעילים את פקודת הפריסה שוב.
curl http://myorg-test.apigee.net/node-hosted-hello
פלט לדוגמה:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"