כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
Edge Microgateway v. 2.4.x
סקירה כללית
במאמר הזה נסביר איך לנהל ולהגדיר את Edge Microgateway, כולל מעקב, רישום ביומן וניפוי באגים.
ביצוע שינויים בהגדרות
קובצי התצורה שצריך להכיר כוללים:
- קובץ ברירת המחדל של תצורת המערכת
- קובץ תצורה ברירת מחדל למכונה של Edge Microgateway שאותחלה לאחרונה
- קובץ תצורה דינמי למכונות פועלות
הקטע הזה עוסק בקבצים האלה ובדברים שצריך לדעת כדי לשנות אותם. לפרטים על הגדרות קובץ התצורה, ראו חומר עזר בנושא הגדרת קצה Microgateway.
קובץ ברירת המחדל של תצורת המערכת
כשמתקינים את Edge Microgateway, קובץ ברירת המחדל של תצורת המערכת נמצא כאן:
[prefix]/lib/node_modules/edgemicro/config/default.yaml
כאשר [prefix]
היא ספריית התחילית npm
.
למידע נוסף, ראו איפה מותקנת אפליקציית Edge Microgateway.
אם משנים את קובץ תצורת המערכת, צריך לאתחל מחדש, להגדיר מחדש ולהפעיל מחדש את Edge Microgateway:
- התקשרות אל
edgemicro init
- התקשרות אל
edgemicro configure [params]
- התקשרות אל
edgemicro start [params]
קובץ תצורה המוגדר כברירת מחדל למכונות Edge Microgateway שאותחלו לאחרונה
כאשר מריצים את edgemicro init
, קובץ תצורת המערכת
(כפי שמתואר למעלה), default.yaml
, ממוקם בספרייה הזו:
~/.edgemicro
אם משנים את קובץ התצורה בערך /.edgemicro
, צריך להגדיר מחדש את Edge Microgateway ולהפעיל אותו מחדש:
edgemicro stop
edgemicro configure
[params]
edgemicro start
[params]
קובץ תצורה דינמי למכונות פועלות
כשמפעילים את edgemicro configure [params]
, נוצר קובץ תצורה דינמי ב- ~/.edgemicro
. שם הקובץ תואם לדפוס הבא: [org]-[env]-config.yaml
, כאשר org
ו-env
הם שמות הארגון והסביבות שלך ב-Apigee Edge. אפשר להשתמש בקובץ הזה כדי לבצע שינויים בהגדרות ואז לטעון אותו מחדש
ללא זמן השבתה. לדוגמה, אם מוסיפים ומגדירים פלאגין, אפשר לטעון מחדש את
התצורה בלי לצבור זמן השבתה, כפי שמוסבר בהמשך.
אם Edge Microgateway פועל (האפשרות של אפס זמן השבתה):
- טוענים מחדש את הגדרות Edge Microgateway:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
כאשר:
org
זהו שם הארגון שלך ב-Edge (עליך להיות מנהל מערכת ארגוני).env
הוא סביבה בארגון שלכם (למשל test או prod).key
הוא המפתח שהוחזר קודם לכן על ידי פקודת ההגדרה.secret
הוא המפתח שהוחזר קודם לכן על ידי פקודת התצורה.
דוגמה
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
אם Edge Microgateway נעצר:
- מפעילים מחדש את Edge Microgateway:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
כאשר:
org
זהו שם הארגון שלך ב-Edge (עליך להיות מנהל מערכת ארגוני).env
הוא סביבה בארגון שלכם (למשל test או prod).key
הוא המפתח שהוחזר קודם לכן על ידי פקודת ההגדרה.secret
הוא המפתח שהוחזר קודם לכן על ידי פקודת התצורה.
דוגמה
edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
הנה קובץ תצורה לדוגמה. לפרטים נוספים על הגדרות קובץ התצורה, ראו חומר עזר בנושא הגדרת קצה Microgateway.
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
הגדרת משתני סביבה
במשתני הסביבה הבאים אפשר לאחסן את הפקודות של ממשק שורת הפקודה שמחייבות ערכים לארגון ולסביבה של Edge, ואת המפתח והסוד שנדרשים להפעלת Edge Microgateway:
EDGEMICRO_ORG
EDGEMICRO_ENV
EDGEMICRO_KEY
EDGEMICRO_SECRET
ההגדרה של המשתנים האלה היא אופציונלית. אם מגדירים אותן, אין צורך לציין את הערכים שלהן כשמשתמשים בממשק Command-Line Interface (CLI) כדי להגדיר ולהפעיל את Edge Microgateway.
הגדרת SSL בשרת Edge Microgateway
באפשרותך להגדיר את שרת ה-Microgateway להשתמש ב-SSL. לדוגמה, עם הגדרת SSL, תוכלו להפעיל ממשקי API דרך Edge Microgateway באמצעות הפרוטוקול "https", באופן הבא:
https://localhost:8000/myapi
כדי להגדיר SSL בשרת Microgateway, בצע את השלבים הבאים:
- תוכלו ליצור או לקבל אישור ומפתח SSL באמצעות כלי השירות openssl או בשיטה הרצויה לכם.
- מוסיפים את המאפיין
edgemicro:ssl
לקובץ התצורה של Edge Microgateway. לקבלת רשימה מלאה של האפשרויות, עיין בטבלה הבאה. לפרטים על שינוי ההגדרות של Edge Microgateway, ראו ביצוע שינויים בהגדרות. לדוגמה:
edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true
- מפעילים מחדש את Edge Microgateway. מבצעים את השלבים המפורטים בקטע ביצוע שינויים בהגדרות בהתאם לקובץ התצורה שערכתם: קובץ ברירת המחדל או קובץ התצורה של זמן הריצה.
דוגמה למקטע edgemicro בקובץ התצורה, שבו מוגדר SSL:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
רשימה של כל אפשרויות השרתים הנתמכים:
אפשרות | התיאור |
---|---|
key |
נתיב לקובץ ca.key (בפורמט PEM). |
cert |
נתיב לקובץ ca.cert (בפורמט PEM). |
pfx |
נתיב לקובץ pfx שמכיל את המפתח הפרטי, האישור ואישורי ה-CA של הלקוח בפורמט PFX. |
passphrase |
מחרוזת שמכילה את ביטוי הסיסמה למפתח הפרטי או ל-PFX. |
ca |
נתיב לקובץ שמכיל רשימה של אישורים מהימנים בפורמט PEM. |
ciphers |
מחרוזת שמתארת את הצפנים שצריך להשתמש בהם, מופרדים באמצעות ":". |
rejectUnauthorized |
אם הערך הוא True, אישור השרת מאומת מול הרשימה של רשויות האישורים שסופקו. אם האימות ייכשל, תוחזר שגיאה. |
secureProtocol |
שיטת ה-SSL שבה יש להשתמש. לדוגמה, שיטת SSLv3_method כדי לכפות את השימוש ב-SSL בגרסה 3. |
servername |
שם השרת לתוסף TLS SNI (Server Name Indication). |
requestCert |
True עבור SSL דו-כיווני; False עבור SSL חד-כיווני |
שימוש באפשרויות SSL/TLS של לקוח
אפשר להגדיר את Edge Microgateway כך שיהיה לקוח TLS או SSL במהלך התחברות לנקודות קצה (endpoint) של יעד. בקובץ התצורה של Microgateway, משתמשים ברכיב היעדים כדי להגדיר אפשרויות של SSL או TLS.
בדוגמה הבאה מופיעות הגדרות שיחולו על כל המארחים:
targets: ssl: client: key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
בדוגמה הזו, ההגדרות חלות רק על המארח שצוין:
targets: host: 'myserver.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
הנה דוגמה ל-TLS:
targets: host: 'myserver.example.com' tls: client: pfx: /Users/myname/twowayssl/ssl/client.pfx passphrase: admin123 rejectUnauthorized: true
רשימה של כל אפשרויות הלקוח הנתמכות:
אפשרות | התיאור |
---|---|
pfx |
נתיב לקובץ pfx שמכיל את המפתח הפרטי, האישור ואישורי ה-CA של הלקוח בפורמט PFX. |
key |
נתיב לקובץ ca.key (בפורמט PEM). |
passphrase |
מחרוזת שמכילה את ביטוי הסיסמה למפתח הפרטי או ל-PFX. |
cert |
נתיב לקובץ ca.cert (בפורמט PEM). |
ca |
נתיב לקובץ שמכיל רשימה של אישורים מהימנים בפורמט PEM. |
ciphers |
מחרוזת שמתארת את הצפנים שצריך להשתמש בהם, מופרדים באמצעות ":". |
rejectUnauthorized |
אם הערך הוא True, אישור השרת מאומת מול הרשימה של רשויות האישורים שסופקו. אם האימות ייכשל, תוחזר שגיאה. |
secureProtocol |
שיטת ה-SSL שבה יש להשתמש. לדוגמה, שיטת SSLv3_method כדי לכפות את השימוש ב-SSL בגרסה 3. |
servername |
שם השרת לתוסף TLS SNI (Server Name Indication). |
התאמה אישית של שרת proxy לאימות קצה
כברירת מחדל, Edge Microgateway משתמש בשרת proxy שנפרס ב-Apigee Edge לאימות OAuth2.
שרת ה-proxy הזה נפרס כשמריצים את edgemicro configure
בפעם הראשונה. אפשר
לשנות את הגדרת ברירת המחדל של שרת ה-proxy הזה כדי להוסיף תמיכה בהצהרות בהתאמה אישית לאסימון אינטרנט של JSON (JWT), להגדיר תפוגת תוקף של אסימון וליצור אסימוני רענון. מידע נוסף מופיע בדף edgemicro-auth
ב-GitHub.
שימוש בשירות אימות מותאם אישית
כברירת מחדל, Edge Microgateway משתמש בשרת proxy שנפרס ב-Apigee Edge לאימות OAuth2.
שרת ה-proxy הזה נפרס כשמריצים את edgemicro configure
בפעם הראשונה. כברירת מחדל, כתובת ה-URL של שרת ה-proxy הזה מצוינת בקובץ התצורה של Edge Microgateway באופן הבא:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
אם רוצים להשתמש בשירות בהתאמה אישית כדי לטפל באימות, צריך לשנות את הערך authUri
בקובץ התצורה כך שיפנה לשירות שלכם. לדוגמה, יכול להיות שיש לך שירות שמשתמש ב-LDAP לאימות הזהות.
ניהול קובצי יומן
Edge Microgateway מתעד מידע על כל בקשה ותגובה. קובצי יומן מספקים מידע שימושי לניפוי באגים ולפתרון בעיות.
איפה נשמרים קובצי יומן
כברירת מחדל, קובצי יומן נשמרים בתיקייה /var/tmp
.
איך משנים את ספריית ברירת המחדל של קובצי היומן
הספרייה שבה שמורים קובצי היומן מצוינת בקובץ התצורה של Edge Microgateway. ניתן לקרוא מידע נוסף על ביצוע שינויים בתצורה, במאמר ביצוע שינויים בהגדרות האישיות.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
משנים את הערך dir כדי לציין ספרייה אחרת של קובצי יומן.
שליחת יומנים למסוף
אפשר להגדיר רישום ביומן כך שפרטי היומן יישלחו כפלט רגיל במקום לקובץ יומן. מגדירים את הדגל to_console
כ-true באופן הבא:
edgemicro: logging: to_console: true
כשההגדרה הזו מופעלת, היומנים יישלחו במצב רגיל. בשלב זה לא ניתן לשלוח יומנים גם ל-stdout וגם לקובץ יומן.
איך להגדיר את רמת הרישום ביומן
אפשר להגדיר את רמות היומן הבאות: מידע, אזהרה ושגיאה. מומלץ להשתמש ברמת המידע. היא מתעדת את כל הבקשות והתגובות של ה-API, וזו ברירת המחדל.
איך משנים את המרווחים ביומן
אפשר להגדיר את המרווחים האלה בקובץ התצורה של Edge Microgateway. למידע נוסף על ביצוע שינויים בהגדרות, תוכלו לקרוא את המאמר ביצוע שינויים בהגדרות.
המאפיינים שניתן להגדיר הם:
- stats_log_interval: (ברירת מחדל: 60) מרווח בשניות, כאשר רשומת הנתונים הסטטיסטיים נכתבת בקובץ היומן של ה-API.
- rotate_interval: (ברירת מחדל: 24) מרווח, בשעות, כשמתבצעת רוטציה של קובצי יומן. לדוגמה:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
הערה: קובצי יומן שהועברו לארכיון לא דחוסים. בתחילת המרווח, נוצר קובץ יומן חדש עם חותמת זמן חדשה.
שיטות מומלצות לתחזוקה של קובצי יומן
מכיוון שהנתונים של קובצי היומן מצטברים עם הזמן, ההמלצה של Apigee היא ליישם את השיטות הבאות:
- קובצי היומן יכולים להיות גדולים למדי, לכן חשוב לוודא שיש מספיק מקום בספריית קובצי היומן. כדאי לעיין בקטעים הבאים, היכן נשמרים קובצי יומן ואיך משנים את ספריית ברירת המחדל של קובצי היומן.
- עליך למחוק או להעביר קובצי יומן לספריית ארכיון נפרדת לפחות פעם בשבוע.
- אם המדיניות שלכם היא למחוק יומנים, תוכלו להשתמש בפקודת ה-CLI
edgemicro log -c
כדי להסיר (לנקות) יומנים ישנים יותר.
מוסכמת מתן שמות לקובצי יומן
כל מופע של Edge Microgateway מייצר שלושה סוגים של קובצי יומן:
- api – התיעוד של כל הבקשות והתגובות הזורמות דרך Edge Microgateway. בקובץ הזה מתועדים גם מוני API (נתונים סטטיסטיים) ושגיאות.
- err - מתבצע תיעוד של כל מה שנשלח אל stderr.
- out - מתעד כל מה שנשלח אל stdout.
זוהי המוסכמה למתן שמות:
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
לדוגמה:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
מידע על התוכן של קובצי יומן
נוסף בגרסה 2.3.3
כברירת מחדל, שירות הרישום ביומן משמט את קובץ ה-JSON של שרתי proxy שהורדת, מוצרים, ואת JSON Web Token (JWT). כדי לייצא את האובייקטים האלה לקובצי היומן, צריך להגדיר את הערך DEBUG=*
כשמפעילים את Edge Microgateway. לדוגמה:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
הערה: ב-Windows, להשתמש ב-SET DEBUG=*
תוכן קובץ היומן "api"
קובץ היומן 'api' מכיל מידע מפורט על זרימת הבקשות והתגובות דרך Edge Microgateway. קובצי היומן של "api" נקראים כך:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
עבור כל בקשה שנשלחת אל Edge Microgateway, מתועדים ארבעה אירועים בקובץ היומן "api":
- בקשה נכנסת מהלקוח
- נשלחה בקשה יוצאת אל היעד
- תגובה נכנסת מהיעד
- תגובה יוצאת ללקוח
כל אחת מהרשומות הנפרדות האלה מיוצגת בסימון מקוצר כדי להפוך את קובצי היומן לקומפקטיים יותר. הנה ארבעה ערכים לדוגמה שמייצגים כל אחד מארבעת האירועים. בקובץ היומן הם נראים כך (מספרי השורות נועדו לעיון בלבד במסמך, הם לא מופיעים בקובץ היומן).
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
נבחן אותם אחד אחרי השני:
1. דוגמה של בקשה נכנסת מלקוח:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 – חותמת תאריך של Unix
- info – תלוי בהקשר. הערך יכול להיות מידע, אזהרה או שגיאה, בהתאם לרמת היומן. הנתונים יכולים להיות נתונים סטטיסטיים לרשומת נתונים סטטיסטיים, להזהיר כשיש אזהרות או שגיאה לגבי שגיאות.
- req – מזהה את האירוע. במקרה כזה, צריך לשלוח בקשה מהלקוח.
- m - פועל ה-HTTP שבו נעשה שימוש בבקשה.
- u - החלק בכתובת ה-URL שמופיע אחרי נתיב הבסיס.
- h – מספר המארח והיציאה שאליהם מאזין Edge Microgateway.
- r - המארח והיציאה המרוחקים שמהם הגיעה בקשת הלקוח.
- i - מזהה הבקשה. המזהה יופיע בכל ארבע הרשומות של האירועים. לכל בקשה מוקצה מזהה בקשה ייחודי. יצירת הקשר בין רשומות היומן לפי מזהה הבקשה יכולה לספק תובנות חשובות לגבי זמן האחזור של היעד.
- d - משך הזמן באלפיות השנייה מאז שהבקשה התקבלה על ידי Edge Microgateway. בדוגמה שלמעלה, תגובת היעד לבקשה 0 התקבלה אחרי 7 אלפיות השנייה (שורה 3), והתגובה נשלחה ללקוח אחרי 4 אלפיות שנייה נוספות (שורה 4). במילים אחרות, זמן האחזור הכולל של הבקשה היה 11 אלפיות השנייה, שמתוכם 7 אלפיות השנייה בוצעו על ידי היעד ו-4 אלפיות השנייה על ידי Edge Microgateway עצמו.
2. דוגמה של בקשה יוצאת אל היעד:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 – חותמת תאריך של Unix
- info – תלוי בהקשר. הערך יכול להיות מידע, אזהרה או שגיאה, בהתאם לרמת היומן. הנתונים יכולים להיות נתונים סטטיסטיים לרשומת נתונים סטטיסטיים, להזהיר כשיש אזהרות או שגיאה לגבי שגיאות.
- treq – זיהוי האירוע. במקרה הזה, בקשת יעד.
- m - פועל ה-HTTP שבו נעשה שימוש בבקשת היעד.
- u - החלק בכתובת ה-URL שמופיע אחרי נתיב הבסיס.
- h - מספר המארח והיציאה של יעד הקצה העורפי.
- i - המזהה של הרשומה ביומן. המזהה יופיע בכל ארבע הרשומות של האירועים.
3. דגימה של התשובות הנכנסות מהיעד
1436403888672 info tres s=200, d=7, i=0
1436403888651 – חותמת תאריך של Unix
- info – תלוי בהקשר. הערך יכול להיות מידע, אזהרה או שגיאה, בהתאם לרמת היומן. הנתונים יכולים להיות נתונים סטטיסטיים לרשומת נתונים סטטיסטיים, להזהיר כשיש אזהרות או שגיאה לגבי שגיאות.
- tres – מזהה את האירוע. במקרה הזה, יעד התגובה.
- s - הסטטוס של תגובת HTTP.
- d - משך הזמן באלפיות השנייה. הזמן שנדרש להפעלת ה-API על ידי היעד.
- i - המזהה של הרשומה ביומן. המזהה יופיע בכל ארבע הרשומות של האירועים.
4. דוגמה לתשובה יוצאת ללקוח
1436403888676 info res s=200, d=11, i=0
1436403888651 – חותמת תאריך של Unix
- info – תלוי בהקשר. הערך יכול להיות מידע, אזהרה או שגיאה, בהתאם לרמת היומן. הנתונים יכולים להיות נתונים סטטיסטיים לרשומת נתונים סטטיסטיים, להזהיר כשיש אזהרות או שגיאה לגבי שגיאות.
- res – זיהוי האירוע. במקרה הזה, תגובה ללקוח.
- s - הסטטוס של תגובת HTTP.
- d - משך הזמן באלפיות השנייה. זהו הזמן הכולל שנדרש לקריאה ל-API, כולל הזמן שנדרש ל-API לטירגוט והזמן שנדרש ל-Edge Microgateway עצמו.
- i - המזהה של הרשומה ביומן. המזהה יופיע בכל ארבע הרשומות של האירועים.
תזמון קובץ היומן
מתבצעת רוטציה של קובצי יומן במרווח הזמן שצוין באמצעות מאפיין ההגדרה rotate_interval. המערכת תמשיך להוסיף ערכים לאותו קובץ יומן עד שיסתיים פרק הזמן לסבב. עם זאת, בכל הפעלה מחדש של Edge Microgateway, המכשיר מקבל UID חדש ויוצר קבוצה חדשה של קובצי יומן עם ה-UID הזה. כדאי לעיין גם במאמר שיטות עבודה מומלצות לתחזוקה של קובצי יומן.
הסבר על הגדרות קצה של Microgateway
המיקום של קובץ התצורה
מאפייני ההגדרות האישיות שמתוארים בקטע הזה נמצאים בקובץ התצורה של Edge Microgateway. ניתן לקרוא מידע נוסף על ביצוע שינויים בתצורה, במאמר ביצוע שינויים בהגדרות האישיות.
מאפייני edge_config
ההגדרות האלה משמשות להגדרת האינטראקציה בין מכונת Edge Microgateway לבין Apigee Edge.
- bootrap (ברירת מחדל: ללא) כתובת URL שמפנה לשירות ספציפי של Edge Microgateway שפועל ב-Apigee Edge. Edge Microgateway משתמש בשירות הזה כדי לתקשר עם Apigee Edge. כתובת ה-URL הזו מוחזרת כשמריצים את הפקודה ליצירת זוג מפתחות ציבורי/פרטי:
edgemicro genkeys
. לפרטים נוספים עיינו בהגדרה והגדרה של Edge Microgateway. - jwt_public_key: (ברירת מחדל: אין) כתובת URL שמפנה לשרת ה-proxy של Edge Microgateway שנפרס ב-Apigee Edge. שרת ה-proxy הזה משמש כנקודת קצה לאימות לצורך הנפקת אסימוני גישה חתומים ללקוחות. כתובת ה-URL הזו מוחזרת כשמריצים את הפקודה לפריסת שרת ה-Proxy: edgemicro configuration. לפרטים נוספים עיינו בהגדרה והגדרה של Edge Microgateway.
מאפייני Edgemicro
ההגדרות האלה מגדירות את תהליך המיקרו-שער של Edge.
- port: (ברירת מחדל: 8000) מספר היציאה שאליו מאזין התהליך של Edge Microgateway.
- max_connections: (ברירת מחדל: -1) מציין את המספר המקסימלי של חיבורים נכנסים בו-זמנית ש-Edge Microgateway יכול לקבל. במקרה של חריגה מהמספר הזה, מוחזר הסטטוס הבא:
res.statusCode = 429; // Too many requests
- max_connections_hard: (ברירת מחדל: -1) המספר המקסימלי של בקשות בו-זמנית ש-Edge Microgateway יכול לקבל לפני כיבוי החיבור. ההגדרה הזו נועדה למנוע התקפות של מניעת שירות (DoS). בדרך כלל, מגדירים אותו למספר גדול מ-max_ ביחדs.
-
רישום ביומן:
-
level: (ברירת מחדל: שגיאה)
- info – התיעוד של כל הבקשות והתגובות הזורמות דרך מכונת Edge Microgateway.
- warn – רישום של הודעות אזהרה בלבד.
- error – מתעדת הודעות שגיאה בלבד.
- dir: (ברירת מחדל: /var/tmp) הספרייה שבה מאוחסנים קובצי היומן.
- stats_log_interval: (ברירת מחדל: 60) מרווח בשניות, כאשר רשומת הנתונים הסטטיסטיים נכתבת בקובץ היומן של ה-API.
- rotate_interval: (ברירת מחדל: 24) מרווח, בשעות, כשמתבצעת רוטציה של קובצי יומן.
-
level: (ברירת מחדל: שגיאה)
- יישומי פלאגין: יישומי פלאגין מוסיפים פונקציונליות ל-Edge Microgateway. לפרטים על פיתוח יישומי פלאגין, מומלץ לקרוא את המאמר פיתוח יישומי פלאגין מותאמים אישית.
- dir: נתיב יחסי מספריית ./gateway לספרייה ./Plugins או מנתיב מוחלט.
- sequence: רשימה של מודולים של פלאגין להוספה למכונה של Edge Microgateway. המודולים יפעלו לפי הסדר שבו הם מצוינים כאן.
-
ניפוי באגים: הוספת ניפוי באגים מרחוק לתהליך Microgateway של Edge.
- port: מספר היציאה שצריך להאזין לו. לדוגמה, צריך להגדיר את הכלי לניפוי באגים בסביבת הפיתוח המשולבת (IDE) כך שיאזין ביציאה הזו.
- args: ארגומנטים לתהליך ניפוי הבאגים. לדוגמה:
args --nolazy
- config_change_poll_interval: (ברירת מחדל: 600 שניות) Edge Microgateway
טוען תצורה חדשה מדי פעם ומבצע טעינה מחדש אם משהו השתנה. הסקר מאפשר לזהות את כל השינויים שבוצעו ב-Edge (שינויים במוצרים, שרתי proxy שתומכים ב-microgateway וכו') וגם את השינויים שבוצעו בקובץ התצורה המקומי.
- disable_config_poll_interval: (ברירת מחדל: false) מגדירים את הערך true כדי לכבות את תשאול שינוי אוטומטי.
- request_timeout: הגדרה של זמן קצוב לתפוגה עבור בקשות ליעד. הזמן הקצוב לתפוגה מוגדר בשניות. אם הזמן הקצוב פג, Edge Microgateway מגיב עם קוד סטטוס 504. (נוסף v2.4.x)
מאפייני כותרות
ההגדרות האלה קובעות את אופן הטיפול בכותרות HTTP מסוימות.
- x-forwarded-for: (ברירת מחדל: true) יש להגדיר את הערך false כדי למנוע העברה של כותרות מסוג x-forwarded-for ליעד. הערה: אם הבקשה מכילה כותרת x-forwarded-for, הערך שלה יוגדר לערך client-ip ב-Edge Analytics.
- x-forwarded-host: (ברירת מחדל: true) מגדירים את הערך false כדי למנוע העברה של כותרות x-forwarded-host ליעד.
- x-request-id: (ברירת מחדל: true) להגדיר את הערך false כדי למנוע העברה של כותרות מסוג x-request-id ליעד.
- x-response-time: (ברירת מחדל: true) מגדירים את הערך false כדי למנוע העברה של כותרות מסוג x-response-time ליעד.
- via: (ברירת מחדל: true) להגדיר את הערך false כדי למנוע העברה של כותרות דרך ליעד.
מאפייני oauth
ההגדרות האלה קובעות את האופן שבו אימות הלקוח נאכף על ידי Edge Microgateway.
- allowNoAuthorization: (ברירת מחדל: false) אם היא מוגדרת כ-True, קריאות ל-API יכולות לעבור דרך Edge Microgateway בלי בכלל כותרת Authorization. מגדירים את הערך כ-False כדי לדרוש כותרת הרשאה (ברירת מחדל).
- allowInvalidAuthorization: (ברירת מחדל: false) אם היא מוגדרת כ-True, קריאות ל-API מורשות להעביר אם האסימון שהועבר בכותרת Authorization לא תקין או שתוקפו פג. אם מגדירים את הערך הזה כ-FALSE כדי לדרוש אסימונים תקפים (ברירת מחדל).
- authorization-header: (ברירת המחדל: Authorization: Bearer) הכותרת המשמשת לשליחת אסימון הגישה אל Edge Microgateway. כדאי לשנות את ברירת המחדל במקרים שבהם היעד צריך להשתמש בכותרת Authorization למטרה אחרת.
- api-key-header: (ברירת מחדל: x-api-key) שם הכותרת או פרמטר השאילתה שמשמש להעברת מפתח API אל Edge Microgateway. למידע נוסף, ראו שימוש במפתח API.
- keepAuthHeader (ברירת מחדל: false) אם היא מוגדרת כ-True, כותרת ההרשאה שנשלחת בבקשה מועברת ליעד (היא נשמרת).
- allowOAuthOnly – אם המדיניות מוגדרת כ-True, לכל ממשק API חייבת להיות כותרת Authorization עם אסימון גישה למוכ"ז. מאפשרת לאשר רק את מודל האבטחה של OAuth (תוך שמירה על תאימות לאחור). (נוסף 4.2.x)
- allowAPIKeyOnly -- אם היא מוגדרת כ-True, לכל ממשק API חייבת להיות כותרת x-api-key (או מיקום מותאם אישית) עם מפתח API.מאפשרת להתיר רק את מודל האבטחה של מפתח ה-API (תוך שמירה על תאימות לאחור). (נוסף 4.2.x)
מאפיינים ספציפיים לפלאגין
ראה 'שימוש ביישומי פלאגין' לקבלת פרטים על מאפיינים הניתנים להגדרה עבור כל פלאגין.
סינון שרתי proxy
אפשר לסנן אילו שרתי proxy בעלי מודעות ל-microgateway יעבד מכונת Edge Microgateway.
כש-Edge Microgateway מופעל, הוא מוריד את כל שרתי ה-proxy המותאמים ל-Microgateway בארגון שאליו הוא משויך. ניתן להשתמש בתצורה הבאה כדי להגביל את שרתי ה-proxy
שהמיקרו-שער יעבד. לדוגמה, ההגדרה הזו מגבילה את שרתי ה-proxy שהמיקרו-שער יעבד לשלושה: edgemicro_proxy-1
, edgemicro_proxy-2
ו-edgemicro_proxy-3
:
proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
אנונימיזציה של נתוני ניתוח
ההגדרות הבאות מונעות הצגה של מידע על נתיב הבקשה ב-Edge Analytics. מוסיפים את הקוד הבא לתצורת המיקרו-שער כדי לבצע אנונימיזציה של ה-URI של הבקשה ו/או של נתיב הבקשה. לתשומת לבך, ה-URI מורכב משם המארח ומחלקי נתיב של הבקשה.
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
הגדרה של Edge Microgateway מאחורי חומת אש של החברה
גרסה 4.2.x נתמכת
אם Edge Microgateway מותקן מאחורי חומת אש, יכול להיות שהשער לא יוכל לתקשר עם Apigee Edge. במקרה כזה, יש שתי אפשרויות:
אפשרות 1:
האפשרות הראשונה היא להגדיר את האפשרות edgemicro: proxy_tunnel כ-true בקובץ התצורה של ה-microgateway:
edge_config: proxy: http://10.224.16.85:3128 proxy_tunnel: true
כשהערך של proxy_tunnel הוא true, Edge Microgateway משתמש בשיטת HTTP CONNECT כדי לנהל בקשות HTTP בחיבור TCP יחיד. (אותו הדבר נכון אם משתני הסביבה להגדרת שרת ה-proxy מופעלים באמצעות TLS).
אפשרות 2:
האפשרות השנייה היא לציין שרת proxy ולהגדיר את proxy_tunnel כ-FALSE בקובץ התצורה של ה-microgateway. לדוגמה:
edge_config: proxy: http://10.224.16.85:3128 proxy_tunnel: false
במקרה כזה, תוכלו להגדיר את המשתנים הבאים כדי לשלוט במארחים לכל שרת proxy של HTTP שבו אתם רוצים להשתמש, או אילו מארחים לא יוכלו לטפל בשרתי Proxy של Edge Microgateway: HTTP_PROXY, HTTPS_PROXY ו-NO_PROXY.
ניתן להגדיר את NO_PROXY כרשימה מופרדת בפסיקים של דומיינים שאליהם Microgateway לא אמור לשמש כשרת proxy. לדוגמה:
export NO_PROXY='localhost,localhost:8080'
מגדירים את HTTP_PROXY ואת HTTPS_PROXY לנקודת הקצה של שרת ה-HTTP Proxy Microgateway יכול לשלוח הודעות. לדוגמה:
export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786'
מידע נוסף על המשתנים האלה זמין במאמרים הבאים:
https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables
כדאי לעיין גם בפרטים הבאים
איך להגדיר את Edge Microgateway מאחורי חומת אש של חברה בקהילת Apigee.
שימוש בתווים כלליים לחיפוש בשרתי proxy של Microgateway
אפשר להשתמש בתו כללי לחיפוש "*" אחד או יותר בנתיב הבסיס של
שרת proxy ל-edgemicro_* (Microgateway-aware). לדוגמה, נתיב בסיסי של
/team/*/members מאפשר ללקוחות
לקרוא ל-https://[host]/team/blue/members ול-https://[host]/team/green/members
ללא צורך ליצור שרתי proxy חדשים של API כדי לתמוך בצוותים חדשים. לתשומת ליבך,
/**/
לא נתמך.
חשוב: ב-Apigee אין תמיכה בשימוש בתו כללי לחיפוש "*" בתור
הרכיב הראשון של נתיב בסיסי. לדוגמה, ערך זה אינו נתמך: חיפוש /*/
.
ניפוי באגים ופתרון בעיות
התחברות לכלי לניפוי באגים
אפשר להריץ את Edge Microgateway באמצעות כלי לניפוי באגים, למשל node-inspector. הפעולה הזו שימושית לפתרון בעיות ולניפוי באגים ביישומי פלאגין מותאמים אישית.
- מפעילים מחדש את Edge Microgateway במצב ניפוי באגים. כדי לעשות את זה, צריך להוסיף את
DEBUG=*
לתחילת פקודת ההתחלה. לדוגמה:
DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
הערה: ב-Windows, להשתמש ב-
SET DEBUG=*
- מפעילים את הכלי לניפוי באגים ומגדירים לו האזנה למספר היציאה לתהליך ניפוי הבאגים.
- עכשיו אפשר להתקדם בקוד Edge Microgateway, להגדיר נקודות עצירה, להציג ביטויי צפייה ועוד.
ניתן לציין דגלי Node.js רגילים שקשורים למצב ניפוי באגים. לדוגמה, התג --nolazy
עוזר לנפות באגים בקוד אסינכרוני.
קובצי היומן בבדיקה
אם נתקלתם בבעיות, כדאי לבדוק את קובצי היומן כדי לראות את פרטי הביצוע ואת פרטי השגיאות. מידע נוסף מופיע במאמר בנושא ניהול קובצי יומן.
שימוש באבטחת מפתחות API
מפתחות API מספקים מנגנון פשוט לאימות לקוחות ששולחים בקשות אל Edge Microgateway. אפשר לקבל מפתח API על ידי העתקת הערך של מפתח הצרכן (שנקרא גם Client ID) ממוצר של Apigee Edge שכולל את שרת ה-proxy לאימות של Edge Microgateway.
שמירה של מפתחות במטמון
מפתחות ה-API מועברים באסימונים למוכ"ז, והם נשמרים במטמון. אפשר להשבית את השמירה במטמון על ידי הגדרת הכותרת Cache-Control: no-cache
בבקשות נכנסות ל-Edge Microgateway.
שימוש באבטחת אסימון OAuth2
לפרטים על השימוש באסימון OAuth עם בקשות לשרת proxy, אפשר לעיין במאמר Secure Edge Microgateway.
שימוש במפתח API
לפרטים נוספים על השימוש במפתחות API עם בקשות לשרת proxy, אפשר לעיין במאמר Secure Edge Microgateway.
הגדרת השם של מפתח ה-API
כברירת מחדל, x-api-key
הוא השם המשמש לכותרת של מפתח ה-API או לפרמטר השאילתה. ניתן לשנות את ברירת המחדל הזו בקובץ התצורה, כפי שמוסבר בקטע ביצוע שינויים בהגדרות.
לדוגמה, כדי לשנות את השם ל-apiKey:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey