מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
באיזו גרסה של Node.js נתמכת Apigee Edge?
Edge תומך כרגע ב-Node.js 0.10.32.
מהם המודולים הרגילים של Node.js יש תמיכה ב-Edge?
בעזרת הטבלה הבאה תוכלו לקבוע אילו מודולים סטנדרטיים של Node.js כלול ב-Edge. במקרים מסוימים, המודולים הכלולים נתמכים רק באופן חלקי. אלה מודולים שמובְנים ב-Node.js.מודול | סטטוס | הערות |
---|---|---|
assert |
נתמך | |
buffer |
נתמך | |
child_process |
מוצר שהצפייה בו הוגבלה | המערכת תדחה חריגת אם יתבצע ניסיון להקים תהליך משנה. אבל, לפעמים 'fork' נתמכת ליצירת סקריפטים משניים. |
cluster |
מושבת | ה-method cluster.isMaster תמיד מחזירה True, ושיטות אחרות לא מיושמות. עותק אחד של כל סקריפט של Node.js נפרס לכל מעבד הודעות של Edge. |
crypto |
נתמך | |
dns |
נתמך | |
domain |
נתמך | |
dgram |
מוצר שהצפייה בו הוגבלה | אפליקציות Node.js בסביבת Apigee לא יוכלו לגשת לשירותים ב- את האינטרנט דרך UDP בגלל ארכיטקטורת הרשת שלנו. |
events |
נתמך | |
fs |
מוצר שהצפייה בו הוגבלה | הגישה למערכת הקבצים מוגבלת לספרייה שבה הסקריפט הופעל:
ספריית /resources/node . סקריפטים של Node.js עשויים לקרוא ולכתוב קבצים בתוך
את הספרייה הזו, למשל כאזור גירוד זמני, אבל לא ניתן להבטיח
למשך כמה זמן הקבצים יישמרו. |
http |
נתמך | המארח הווירטואלי והנתיב לבקשות נכנסות מצוינים בשרת ה-proxy של ה-API, לא על ידי מודול ה-HTTP. למידע נוסף, אפשר לעיין במאמר הבנת התמיכה ב-http וב-https מודולים אפשר לקבל מידע נוסף. |
https |
נתמך | יצירת "https" השרת מתנהג באופן זהה ל-"http" השרת. מידע נוסף זמין במאמר "הבנת התמיכה במודולים של http ו-https". לפרטים נוספים מידע. |
module |
נתמך | |
net |
מוצר שהצפייה בו הוגבלה | ניסיונות להאזין לחיבורי TCP נכנסים ייצרו חריגה. |
path |
נתמך | |
module |
נתמך | |
process |
תמיכה חלקית | הפונקציונליות לשינוי מזהה משתמש, חברות בקבוצה וספריית העבודה לא נתמך. |
punycode |
נתמך | |
querystring |
נתמך | |
readline |
מושבת | אין קלט סטנדרטי לסקריפטים שרצים ב-Apigee Edge. |
repl |
מושבת | אין קלט סטנדרטי לסקריפטים שרצים ב-Apigee Edge. |
module |
כלול | |
STDIO |
נתמך |
הפלט והשגיאה הרגילים מנותבים לקובץ יומן בתוך Apigee Edge . כדי לצפות ביומנים האלה, לוחצים על יומני Node.js וממשק המשתמש לניהול Apigee Edge עבור שרת ה-proxy ל-API. אין קלט סטנדרטי לסקריפטים שרצים ב-Apigee Edge. אבל אפשר להעביר ארגומנטים שמשתמשים ברכיב ScriptTarget של TargetEndpoint. ראה תצורה מתקדמת של ScriptTarget עבור מידע נוסף. |
stream |
נתמך | |
string_decoder |
נתמך | |
timers |
כלול | |
tls |
נתמך | הפרמטרים של Transport Layer Security (TLS) פועלים בעיקרון באותו אופן שבו הם פועלים ב-Node.js רגיל. ראו שימוש במודול Node.js של TLS (SSL) ב-Apigee Edge לקבלת פרטים. |
tty |
מושבת | אין קלט סטנדרטי לסקריפטים שרצים ב-Apigee Edge. |
url |
נתמך | |
util |
נתמך | |
vm |
נתמך | |
zlib |
נתמך |
מודולים נתמכים נוספים
בקטע הזה מפורטים מודולים נוספים שלא נתמכים ב-Node.js רגיל, אבל נתמכות על ידי Trireme ו-Trireme שפועלים ב-Apigee Edge. Trireme הוא מאגר התגים של Node.js בקוד פתוח שפועל על Apigee Edge. הוא מיועד להרצת סקריפטים של Node.js במכונה וירטואלית של Java (JVM). כל החישובים האלה המודולים האלה זמינים ב-NPM.
מודול | תיאור |
---|---|
apigee-access | מאפשרת לאפליקציות Node.js שפועלות בפלטפורמת Apigee Edge לגשת אל פונקציונליות ספציפית ל-Apigee. אפשר להשתמש במודול הזה כדי: לגשת לתהליך ולשנות אותו משתנים, לאחזר נתונים מהחנות המאובטחת ולהשתמש במטמון של Edge, מכסה ו-OAuth שירותים שונים. ראו גם שימוש apigee-access מודול. |
trireme-support | מאפשר לאפליקציות של Node.js לנצל תכונות ספציפיות ל-Trireme. כרגע יש רק תכונה אחת שנתמכת: טעינת מודולים של Node.js ב-Java. הערה: אין תמיכה ב-loadJars ב-Edge Cloud. |
trireme-sharet | מציג הפשטה של עיבוד XLST. הוא תוכנן במיוחד ל-Trireme פלטפורמה שמאפשרת עיבוד יעיל של XSST כשמריצים אפליקציות של Node.js Java. |
trireme-jdbc | היא מספקת גישה ל-JDBC מ-Node.js. הערה: התכונה לא נתמכת ב-Edge Cloud. ל-Edge Private ב-Cloud, אפשר להכניס קובצי JDPC JAR בנתיב הכיתה ולהשתמש במודול הזה. |
תמיכה במודולים נפוצים של Node.js
הגבלות על סקריפטים של Node.js
עם זאת, שימו לב ש-Edge מטיל הגבלות מסוימות על סקריפטים של Node.js, כמו הבאים:
- אפליקציות Node.js בסביבת Apigee Edge לא יכולות לגשת לשירותים באינטרנט באמצעות UDP בגלל ארכיטקטורת רשת Edge.
- הגישה למערכת הקבצים מוגבלת לספרייה שבה הופעל הסקריפט Node.js: /resources/node Directory. סקריפטים של Node.js יכולים לקרוא ולכתוב קבצים בספרייה הזו, עבור בתור אזור גירוד זמני, אבל אין ערובה לגבי משך הזמן שבו הקבצים עקביים.
- ניסיונות להאזין לחיבורי TCP נכנסים יוצרים חריגה.
- הפונקציונליות לשינוי מזהה משתמש, חברות בקבוצה וספריית העבודה לא נתמך.
- בקלט רגיל, ניתן להעביר ארגומנטים רק באמצעות ScriptTarget
של נקודת הקצה (TargetEndpoint). ראו אפשרויות מתקדמות
הגדרת ScriptTarget לקבלת מידע נוסף.
- בפלט רגיל, השימוש בלחצן Node.js Logs באפליקציית Node.js מוגבל
ממשק משתמש לניהול שרת ה-proxy. אפשר גם להשתמש ב-'apigeetool getlogs'. הפקודה. לקבלת מידע נוסף
מידע נוסף, ראו פריסה
אפליקציית Node.js עצמאית.
- אין תמיכה במודולים שתלויים בקוד Native.
- מודולים שתלויים בתכונות של EcmaScript 6, כמו Promises ו-Generator, אינם
נתמך.
- סימונים בזמן הריצה של Node.js, כמו "harmony-proxies". אין תמיכה.
הגדרת הגבלות חיבור לכתובת IP ב-Edge לענן פרטי
ב-Edge לענן פרטי, יכול להיות שהגישה של קוד Node.js לכתובות IP תהיה מוגבלת החל עם '10.', '192.168' ו-localhost. אם תנסו לגשת לכתובות ה-IP האלה, רואה שגיאה בטופס:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
אפשר לשנות את ההגבלות האלה על ידי הגדרת המאפיין conf_nodejs_connect.ranges.denied ב- message-processors.properties בנפרד לכל מעבד הודעות. כברירת מחדל, המאפיין הזה מכיל את הערך:
- Edge 4.17.05 ומטה: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 ואילך: conf_nodejs_connect.ranges.denied= (כלומר אין הגבלות)
כדי להגדיר את הנכס הזה:
- פותחים את הקובץ message-processor.properties ב
עם הרשאת עריכה. אם הקובץ לא קיים, יוצרים אותו:
> וי /<inst_root>/apigee/customer/application/message-processor.properties - מגדירים את הנכס הרצוי. לדוגמה, כדי לדחות את הגישה רק ל-localhost:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - שומרים את השינויים.
- צריך לוודא שקובץ המאפיינים נמצא בבעלות ה-apigee משתמש:
> chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties - צריך להפעיל מחדש את מעבד ההודעות:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor הפעלה מחדש
הסבר על התמיכה במודולים של http ו-https
כל האפליקציות של Node.js שפועלות ב-Apigee Edge חייבות להשתמש ב-http
או
מודול https
להאזנה לבקשות נכנסות. אם תפרסו סקריפט
לא מקשיב לבקשות נכנסות, הוא פשוט מופעל ויוצא.
השיטה listen
של המודולים http
ו-https
ב-
Node.js לוקח מספר יציאה כפרמטר. לדוגמה:
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
ה"יציאה" הזו נדרש ארגומנט ב-Node.js, אבל Apigee Edge מתעלם מהפרמטר הזה. במקום זאת, שרת ה-proxy ל-API שבו הסקריפט של Node.js רץ מציין את 'מארח וירטואלי' שהוא מקשיב לו, והאפליקציה Node.js משתמשת באותם מארחים וירטואליים, בדיוק כמו בכל שירות Apigee Edge אחר. שרת proxy.
לכל סביבה ב-Apigee יש לפחות מארח וירטואלי אחד. המארח הווירטואלי מגדיר את ה-HTTP
הגדרות לחיבור לארגון Apigee. כל שרתי ה-proxy ל-API בסביבה חולקים את
אותם מארחים וירטואליים. כברירת מחדל, שני מארחים וירטואליים זמינים לכל סביבה:
default
וגם secure
מידע נוסף זמין במאמר
קבלת מארח וירטואלי ו-API
במחזור החיים של הפיתוח.
הפקודה apigeetool deploynodeapp
יוצרת wrapper של שרת proxy של Apigee Edge
סביב האפליקציה Node.js. כשפורסים, האפליקציה Node.js מאזינה כברירת מחדל
מארח וירטואלי שהוגדר לסביבה. כתובת ה-URL של אפליקציית Node.js תמיד תהיה
http://{org_name}-{env_name}.apigee.net
טיפול בשיחות נכנסות בקשות
בדומה לאפליקציות אחרות של Apigee Edge, אם אפליקציית ה-Proxy מוגדרת להאזנה
מארח וירטואלי secure
, אז הוא יקבל בקשות נכנסות באמצעות HTTPS.
טיפול בייצוא בקשות
בנוסף לקבלת תנועה נכנסת, אפליקציות Node.js בתוך Apigee Edge עשויות להשתמש
מודולים של http
ו-https
לביצוע בקשות יוצאות כמו כל מודולים אחרים של Node.js
תרגום מכונה. המודולים האלה פועלים בדיוק כמו שהם פועלים תמיד ב-Node.js.
הסבר על התמיכה בנושאים מודול ה-tls
ב-Apigee Edge יש תמיכה במודול tls של Node.js.
המודול הזה משתמש ב-OpenSSL כדי לספק Transport Layer Security (TLS) ו/או Secure Socket Layer
(SSL) תקשורת מוצפנת בסטרימינג. אפשר להשתמש במודול tls
כדי ליצור
חיבורים לשירותים לקצה עורפי מאפליקציות של Node.js שפועלים ב-Edge.
כדי להבין איך פועל המודול tls
ב-Apigee Edge, חשוב
להבין את אופן השימוש ב-virtual hosts
ב-Apigee Edge. כל סביבה ב-Apigee
יש לפחות מארח וירטואלי אחד. המארח הווירטואלי קובע את הגדרות ה-HTTP לחיבור עם
ארגון ב-Apigee. כל שרתי ה-proxy ל-API בסביבה חולקים את אותם מארחים וירטואליים. כברירת מחדל,
לכל סביבה יש שני מארחים וירטואליים: default
ו
secure
. למידע נוסף על מארחים וירטואליים, ראו
קבלת מארח וירטואלי ו-API
במחזור החיים של הפיתוח.
עכשיו נראה איך Apigee Edge מטפל בתקשורת TLS (SSL) עבור שיחות נכנסות ויוצאות בקשות באפליקציות של Node.js:
טיפול בשיחות נכנסות בקשות
בהתאם לאופן שבו הוגדרו מארחים וירטואליים בארגון שלך, Edge מספק את הפרטים האלה אפשרויות:
- אם ה-Proxy ל-API מוגדר להאזנה במארח הווירטואלי
default
, הוא מקבל בקשות באמצעות HTTP. - אם ה-Proxy ל-API מוגדר להאזנה במארח הווירטואלי
secure
, הוא מקבלת בקשות באמצעות HTTPS. כתובת ה-URL תהיה תחת הדומייןapigee.net
, ייעשה שימוש באישור SSL של תו כללי לחיפוש עבור*.apigee.net
. כל עוד שהאפליקציות בקשות לדומייןapigee.net
, אז אישור ה-SSL יאומת כרגיל.
טיפול בייצוא בקשות
אפשר לשלוח בקשות יוצאות באמצעות המודול tls
באותו אופן שבו עושים זאת
בדרך כלל ב-Node.js. בעיקרון, צריך להוסיף מפתחות ואישורים בצד הלקוח
(.pem
קבצים) בספרייה resources/node
וטוענים אותם בתוך
סקריפט. מידע על השימוש במודול tls
והשיטות שלו זמין במאמרים
מסמכי תיעוד של Node.js tls.
הגדרה מתקדמת של ScriptTarget
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>