אתם צופים במסמכי התיעוד של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X. מידע
ביום שלישי, 30 באוגוסט 2016, השקנו גרסה חדשה של Apigee Edge for 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> במסמכי העזר בנושא Assign Message policy ו-Raise Fault policy. (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 עם ביצועים גבוהים זמינה ליצירה, לאחזור ולעדכון של אובייקטים מסוג hash הבאים: MD5, SHA-1, SHA256, SHA512.
אובייקט crypto מאפשר גם לקבל את התאריך בפורמטים שונים. מידע נוסף זמין במאמר בנושא מודל אובייקטים של JavaScript.
(APIRT-2886)
בדיקת גרסת ה-JAR של Java Callout
כשמעלים משאב Java JAR ל-API proxy, מוחזר קוד סטטוס HTTP 400 (במקום 500) אם הגרסה של משאב Java לא תואמת לגרסה של Java שנתמכת ב-Edge, שמפורטת במאמר תוכנות נתמכות וגרסאות נתמכות. (MGMT-3420)
אימות משאבים של proxy ל-API
אם יש לכם קובצי משאבים של שרת proxy ל-API (כמו קובצי JAR של JavaScript או Java) שמאוחסנים בהיקף הסביבה או הארגון, לא תצטרכו יותר לכלול את המשאבים האלה גם ברמת שרת ה-proxy ל-API בחבילת proxy כדי שהייבוא יעבור את האימות. אימות המשאבים מתבצע עכשיו בזמן הפריסה, ולא בזמן הייבוא. (MGMT-1430)
הגדרת פסק זמן לשרתי proxy ספציפיים ל-API
אפשר להגדיר שפרוקסי של API יפסיק לפעול אחרי פרק זמן מוגדר (עם סטטוס של 504 gateway timeout). תרחיש השימוש העיקרי הוא ללקוחות Private Cloud שיש להם פרוקסי 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 שלא דורשים פסק זמן ארוך יותר ישתמשו בפסק זמן קצר יותר. לדוגמה, הקוד הבא מגדיר שפרוקסי של API יפסיק לפעול אחרי דקה אחת:
<Property name="api.timeout">60000</Property>
לקוחות Cloud שלא יכולים לשנות את הזמן הקצוב לתפוגה ב-Edge יכולים גם להגדיר זמן קצוב לתפוגה של פרוקסי 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 באמצעות response_status_code מחזיר שגיאה של גישה לנתונים |
| 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 עם מדיניות Response Cache |
| APIRT-2608 | שגיאה בניתוח של כותרות Last-Modified במדיניות של מטמון תגובות |
| APIRT-2605 | אסור לאפשר למדיניות לדרוס את המשתנים organization ו-environment |
| APIRT-2566 | מדיניות OAuthV2 מחזירה כותרת WWW-Authenticate פגומה |
| APIRT-2491 | העדכון של TargetServer נכשל בגלל פסק זמן של RPC בין הניהול לבין mps |
| APIRT-2386 | נוצר היקף מחרוזת ריקה במוצר API עם היקפי OAuth מותרים ריקים |
| APIRT-2383 | נראה שמדיניות XSL Transformation לא מתעדת נתונים במקרה של שגיאה |
| APIRT-2364 | משתני תהליך שגיאה של OAuth לא מתעדכנים בשגיאה |
| APIRT-2216 | Server sent events - event stream having issues in prod |
| APIRT-2079 | קריאת DEBUG cURL לא מפסיקה אחרי שפג הזמן הקצוב לתפוגה של הסשן שנוצר |
| APIRT-1495 | הגנה מפני איומים ב-XML לא מזהה את סוג התוכן fhir |
| APIRT-347 | מדיניות ה-XSL לא מאומתת כמו שצריך במהלך הייבוא (התוצאות לא מוקצות למשתני הפלט כמו שמתואר במסמכים) |