16.08.17 – נתוני הגרסה של Apigee Edge ל-Public Cloud

אתם צופים במסמכי התיעוד של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X.
מידע

ביום שלישי, 30 באוגוסט 2016, השקנו גרסה חדשה של Apigee Edge for Public Cloud.

עדכונים ותכונות חדשות

בהמשך מפורטים העדכונים והתכונות החדשות בגרסה הזו.

מטענים ייעודיים (payloads) של JSON ברכיבים Assign Message ו-Raise Fault

כשמגדירים מטען ייעודי (payload) של JSON באמצעות מדיניות Assign Message או Raise Fault, לפעמים המשתמשים נדרשו להשתמש בפתרונות עקיפים כדי לוודא שהודעת JSON מעוצבת כראוי בזמן הריצה, כמו התחלת המטען הייעודי בקו נטוי הפוך "\" או ציון של variablePrefix ו-variableSuffix ברכיב Payload, גם אם לא נעשה שימוש במשתנים בהודעה.

השיפור הזה מאפשר להשתמש במשתנים באמצעות סוגריים מסולסלים בלי ליצור 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 דקות:

  1. קודם כול, חשוב להגדיר את איזון העומסים, הנתב ומעבד ההודעות כך שיופעל פסק זמן אחרי 3 דקות.
  2. לאחר מכן, מגדירים את שרתי ה-proxy הרלוונטיים כך שיופסק החיבור שלהם אחרי 3 דקות. מציינים את הערך באלפיות שנייה. לדוגמה:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. עם זאת, חשוב לזכור שהגדלת ערכי הזמן הקצוב לתפוגה של המערכת עלולה לגרום לבעיות בביצועים, כי כל ה-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 לא מאומתת כמו שצריך במהלך הייבוא (התוצאות לא מוקצות למשתני הפלט כמו שמתואר במסמכים)