אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
ביום שלישי, 30 באוגוסט 2016, השקנו גרסה חדשה של Apigee Edge ל-Public Cloud.
עדכונים ותכונות חדשות
בהמשך מפורטים העדכונים והתכונות החדשות בגרסה הזו.
מטענים ייעודיים (payloads) של JSON ברכיבים Assign Message ו-Raise Fault
השיפור הזה מאפשר להשתמש במשתנים באמצעות סוגריים מסולסלים בלי ליצור קובץ JSON לא תקין, כך שלא צריך פתרונות עקיפים כדי לוודא שפורמט הודעת ה-JSON תקין. לדוגמה, הפקודה הבאה מוסיפה את הערך של message.content להודעת ה-JSON:
<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>
אם השתמשתם בפתרון עקיף, הקוד ימשיך לפעול כמו שהוא. אפשר גם להשתמש ב-variablePrefix וב-variableSuffix במקום בסוגריים מסולסלים כדי לציין משתנים.
אפשר לעיין ברכיב <Set><Payload> במסמכי העיון בנושא הקצאת מדיניות להודעה והעלאת מדיניות שגיאה. (APIRT-1160)
שיפורים במדיניות XML ל-JSON
הוספנו את היכולות הבאות למדיניות XML ל-JSON. אפשר להגדיר את המדיניות כך:
- התייחסות לחלק מאלמנטי ה-XML כמערכים במהלך ההמרה, כך שהערכים מוצבים בסוגריים מרובעים '[ ]' במסמך ה-JSON.
- הסרה או ביטול של רמות בהיררכיה של מסמך ה-XML במסמך ה-JSON הסופי.
מידע נוסף מופיע במאמר בנושא מדיניות XML to JSON. (APIRT-1144)
שימוש בכמה תווים כלליים בנתיבי משאבים של מוצר API
כשמגדירים נתיבי משאבים ב-API Product, אפשר לכלול תווים כלליים בכמה מקומות בנתיב משאב. לדוגמה, /team/*/invoices/** מאפשר שליחת קריאות ל-API עם כל ערך אחרי /team ועם כל נתיב משאב אחרי invoices/. דוגמה ל-URI מותר בקריאה ל-API: proxyBasePath/team/finance/invoices/company/a.
אם אחרי הפרסום הזה נתיבי המשאבים הקיימים של מוצר ה-API מפסיקים לפעול כמצופה, צריך להגדיר את המאפיין הבא בארגון כדי לחזור להתנהגות הקודמת: features.enableStandardWildCardMatchForAPIProductResources = true
(MGMT-3273)
פונקציות הצפנה ב-JavaScript
זמין סט חדש של פונקציות JavaScript crypto עם ביצועים גבוהים ליצירה, לקבלת ולעדכון של האובייקטים הבאים של הגיבוב: MD5, SHA-1, SHA256, SHA512.
אובייקט crypto מאפשר גם לקבל את התאריך בפורמטים שונים. מידע נוסף זמין במאמר בנושא מודל אובייקטים של JavaScript.
(APIRT-2886)
בדיקת הגרסה של Java Callout JAR
כשמעלים משאב Java JAR ל-proxy ל-API, מוחזר קוד סטטוס HTTP 400 (במקום 500) אם הגרסה של משאב Java לא תואמת לגרסה של Java שנתמכת ב-Edge, שמפורטת במאמר תוכנות נתמכות וגרסאות נתמכות. (MGMT-3420)
אימות משאבים של proxy ל-API
אם יש לכם קבצים של משאבי proxy ל-API (כמו JavaScript או Java JAR) שמאוחסנים בהיקף הסביבה או הארגון, לא תצטרכו יותר לכלול את המשאבים האלה גם ברמת ה-proxy ל-API בחבילת proxy כדי שהייבוא יעבור את האימות. אימות המשאבים מתבצע עכשיו בזמן הפריסה, ולא בזמן הייבוא. (MGMT-1430)
הגדרת פסק זמן (timeout) לכל שרת proxy של API
אפשר להגדיר שפרוקסי של API יפסיק לפעול אחרי פרק זמן מסוים (עם סטטוס של gateway timeout 504). תרחיש השימוש העיקרי הוא ללקוחות Private Cloud שיש להם שרתי proxy של API שלוקח להם יותר זמן לפעול. לדוגמה, נניח שאתם צריכים שפרוקסי ספציפיים יפסיקו לפעול אחרי 3 דקות. אפשר להשתמש במאפיין api.timeout חדש בהגדרה של proxy ל-API. כך עושים זאת בדוגמה של 3 דקות:
- קודם כול, חשוב להגדיר את איזון העומסים, הנתב ומעבד ההודעות כך שיופעל פסק זמן אחרי 3 דקות.
- לאחר מכן, מגדירים את שרתי ה-proxy הרלוונטיים כך שזמן הקצוב לתפוגה שלהם יהיה 3 דקות. מציינים את הערך באלפיות שנייה. לדוגמה:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <!-- api.timeout is in milliseconeds --> <Property name="api.timeout">180000</Property> </Properties> ... - עם זאת, שימו לב שהגדלת ערכי הזמן הקצוב לתפוגה של המערכת עלולה לגרום לבעיות בביצועים, כי כל שרתי ה-proxy ללא הגדרה של api.timeout משתמשים בערכי הזמן הקצוב לתפוגה החדשים והגבוהים יותר של מאזן העומסים, הנתב ומעבד ההודעות. לכן, כדאי להגדיר ששרתי proxy אחרים של API שלא דורשים פסק זמן ארוך יותר ישתמשו בפסק זמן קצר יותר. לדוגמה, הקוד הבא מגדיר ש-proxy ל-API יפסיק לפעול אחרי דקה אחת:
<Property name="api.timeout">60000</Property>
לקוחות Cloud שלא יכולים לשנות את הזמן הקצוב לתפוגה של Edge יכולים גם להגדיר זמן קצוב לתפוגה של proxy ל-API, בתנאי שהזמן הקצוב לתפוגה קצר יותר מהזמן הקצוב לתפוגה הרגיל של מעבד ההודעות של Edge, שהוא 57 שניות.
אי אפשר לאכלס את הערך באמצעות משתנה. המאפיין הזה מוסבר בהפניה למאפייני נקודות קצה. (APIRT-1778)
מדיניות TLS/SSL לרישום הודעות ביומן
אפשר להגדיר את <KeyStore> ו-<TrustStore> בהגדרות SSLInfo של מדיניות רישום ההודעות, כדי לאפשר TLS/SSL חד-כיווני ודו-כיווני עם שירות רישום. מגדירים את SSLInfo במדיניות Message Logging (רישום הודעות) באותו אופן שבו מגדירים אותו ב-
TargetEndpoint של שרת proxy. עם זאת, רישום הודעות ביומן TLS/SSL תומך רק בפרוטוקול TCP.
(APIRT-1858)
באגים שתוקנו
בגרסה הזו תוקנו הבאגים הבאים. הרשימה הזו מיועדת בעיקר למשתמשים שרוצים לבדוק אם הבעיות שצוינו בכרטיסי התמיכה שלהם נפתרו. הדוח לא נועד לספק מידע מפורט לכל המשתמשים.
| מזהה הבעיה | תיאור |
|---|---|
| SECENG-609 | קריאות בזמן ריצה לא נכשלות במהלך מחיקה של מאגר האישורים המשויך או כשאישור תקין במאגר האישורים נמחק |
| MGMT-3404 | הצגה או אחזור של יומנים של Node.js ופריסה של שרתי proxy מאוד איטיים |
| MGMT-3400 | קריאה ל-API לניהול /userroles נכשלת אם המשתמש שמבצע את הקריאה כולל סימן '+' בשם |
| MGMT-3368 | java.lang.ArrayIndexOutOfBoundsException: 1, when importing an API Proxy bundle that contains resources/node/resources directory |
| MGMT-3364 | OAuthV2: redirect_uri check |
| MGMT-3319 | אי אפשר לרשום רשומות בכספת שיש בה ערך null באחת מהרשומות בארגונים (CPS ולא CPS) |
| MGMT-3226 | שאילתות ברמת הארגון או הסביבה לא אמורות לשלוף את כל הנתונים ולגרום לכשל ב-API בגרסה Release_160302 היה באג שגרם לכך שרשימת המשאבים ברמת הארגון או הסביבה נכשלה אם הגודל המצטבר של המשאבים היה מעל 16MB. התיקון הזה מטפל בבעיה. |
| AXAPP-2429 | Analytics API using response_status_code returns data access error |
| AXAPP-2386 | תיקון תוכן ריק בדוחות יומיים באימייל של Analytics |
| AXAPP-2347 | לא מקבלים אימיילים עם סיכום יומי של נתוני Analytics |
| APIRT-3141 | הפעלת Java Callouts נכשלת כשמפעילים את ExecutionResult() חדש, כי ה-constructor הוגדר כפרטי |
| APIRT-3140 | המדיניות ServiceCallout לא פועלת בקריאות ל-API של HEAD |
| APIRT-3131 | הערך שמוצג ב-createdBy עבור API Proxy שגוי כשמשתמשים במונטיזציה עם ספק אימות חיצוני |
| APIRT-3121 | שינוי שבוצע בקובץ משאבים של הארגון לא משפיע ב-100% |
| APIRT-3117 | ה-MP הגיע לניצול של 100% מה-CPU והפסיק להציג תנועה |
| APIRT-3016 | שגיאות בנתב 'השיחה הסתיימה בגלל חוסר פעילות' בפריסות |
| APIRT-2975 | העלאת חבילת אישורים נכשלה |
| APIRT-2955 | לא ניתן להסתיר מאפיינים מסוימים של נתוני תגובת JSON עבור כותרת Content-Type תואמת FHIR 'application/json+fhir' |
| APIRT-2946 | מדיניות OAuthV2-RefreshToken לא מסתירה מאפיינים גם אם ההגדרה display מוגדרת כ-false |
| APIRT-2908 | נדרשת אכיפה של TLS1.2 לקריאה פנימית ל-API אחרי עדכון TLS1.2 ב-virtualhost |
| APIRT-2901 | תשובות שדחוסות ב-gzip ומוחזרות מהמטמון נדחסות פעמיים |
| APIRT-2873 | מודולי ה-MP מעלים NullPointerException שקשור ל-VerifyAPIKey אחרי מחיקה של products/developers/proxies |
| APIRT-2871 | מדיניות IOIntensive מופיעה פעמיים ב-Trace |
| APIRT-2825 | שגיאת דקדוק בתגובה לשגיאה של accesstoken |
| APIRT-2750 | שיעור גבוה של כשלים בתנועה בארגון מסוים |
| APIRT-2685 | התנועה לא יכולה לזרום בגלל שגיאה לא ידועה |
| APIRT-2647 | השגיאה"Underlying input stream returned zero bytes" עם nonprod/dev |
| APIRT-2630 | בעיות לסירוגין כשמנסים לקרוא ערך מהמטמון |
| APIRT-2620 | מאגר שרשורים נפרד לכמה שלבים חוסמים |
| APIRT-2610 | java.lang.ClassCastException with Response Cache policy |
| APIRT-2608 | שגיאה בניתוח של כותרות Last-Modified במדיניות של מטמון תגובות |
| APIRT-2605 | אסור לאפשר החלפה של משתני 'ארגון' ו'סביבה' באמצעות מדיניות |
| APIRT-2566 | מדיניות OAuthV2 מחזירה כותרת WWW-Authenticate פגומה |
| APIRT-2491 | העדכון של TargetServer נכשל בגלל שהזמן הקצוב לתפוגת RPC בין הניהול לבין mps הסתיים |
| APIRT-2386 | נוצר היקף מחרוזת ריקה במוצר API עם היקפי OAuth מותרים ריקים |
| APIRT-2383 | נראה שמדיניות XSL Transformation לא מתעדת נתונים בשגיאה |
| APIRT-2364 | משתני תהליך שגיאה של OAuth לא מתעדכנים בשגיאה |
| APIRT-2216 | אירועים שנשלחו מהשרת – יש בעיות בזרם האירועים בסביבת הייצור |
| APIRT-2079 | קריאת DEBUG cURL לא מפסיקה אחרי שפג הזמן הקצוב לתפוגה של הסשן שנוצר |
| APIRT-1495 | הגנה מפני איומים ב-XML לא מזהה את סוג התוכן fhir |
| APIRT-347 | מדיניות ה-XSL לא מאומתת כמו שצריך במהלך הייבוא (התוצאות לא מוקצות למשתני הפלט כמו שמתואר במסמכים) |