תבניות נגד מיגרציה מ-Apigee Edge ל-Apigee X

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

לקוחות קיימים של Apigee Edge יכולים להעביר את ההתקנה שלהם אל Apigee X כדי ליהנות מיכולות חדשות או מזמינות אזורית שונה.

בדף הזה מתוארים דפוסי מניעת גישה בתצורה שיהיה בהם צורך לטפל לפני המעבר ל-Apigee X, וכן שינויים אחרים בהתנהגות שכדאי להיות מודעים להם לפני ההעברה.

ברשימה הרחבה יותר של תוכנות נגד Apigee Edge מתוארות שיטות שימוש שיש להימנע מהן בכל מקרה. בדף הזה מתוארים נוהלי השימוש הספציפיים שלא מומלצים, אשר יחסמו את ההעברה. פתרו את הבעיות האלה עכשיו כדי למנוע בעיות במעבר ל-Apigee X.

אפליקציות ללא מוצרי API

סיכום דורשים שינויים בצד הלקוח? פתרון

יש אפליקציות ללא מוצרי API.

ההבדל בין Apigee Edge ל-Apigee X:

Apigee Edge אפיג' X
אפשר להגדיר אפליקציה ופרטי כניסה שלא משויכים לאף מוצר של API. לאפליקציה הזו יש למעשה גישה לכל מוצרי ה-API. יש להגדיר לכל אפליקציה גישה למוצר API אחד לפחות. אין דרך להעניק גישה לכל מוצרי ה-API באופן מרומז. אפשר להגדיר לאפליקציה גישה לכל מוצרי ה-API, אבל צריך להגדיר זאת במפורש.
לא.

פתרון: אפליקציות ללא מוצרי API

שיוך כל פרטי כניסה לאפליקציה למוצר אחד לפחות של API. למידע נוסף אפשר לקרוא איך עושים זאת במאמר רישום אפליקציות וניהול של מפתחות API.

הדרך הקלה היא להקצות לכל אפליקציה גישה לכל מוצרי ה-API. זו תהיה המקבילה למה שאפשר ב-Apigee Edge. האתגר הוא שאם ברצונך לנקוט גישה של "הרשאות מינימליות", יהיה עליך לקבוע מהי הרשימה המינימלית של מוצרי API שלכל פרטי כניסה לאפליקציה צריכה להיות גישה אליהם. אפשר לנתח את הנתונים האלה באמצעות דוחות Analytics של Apigee Edge שמבוססים על מזהה לקוח.

שמירה במטמון ללא מועד תפוגה

סיכום דורשים שינויים בצד הלקוח? פתרון

למטמון או למטמון אין מועד תפוגה.

ההבדל בין Apigee Edge ל-Apigee X:

Apigee Edge אפיג' X
תומכת ביצירה, בעדכון ובמחיקה של מתארי משאבי מטמון. לא תומך ביצירה, בעדכון או במחיקה של מתארי משאבים במטמון.
לא

פתרון: שמירה במטמון ללא זמן תפוגה

מגדירים מועד תפוגה לכל המטמון.

ביטויי סינון JSONPath בנתיבים לא מוגדרים

סיכום דורשים שינויים בצד הלקוח? פתרון

בנתיבים לא מוגדרים, שאילתה על התוצאה של ביטויי מסנן היא לא חלק מהמפרט של JSONPath. למידע נוסף: https://goessner.net/articles/JsonPath/.

ההבדל בין Apigee Edge ל-Apigee X:

בניווט במבנה לדוגמה הזה,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

עם הביטוי $..books[?(@.name == 'A')][0],

Apigee Edge אפיג' X
פלט ‘{"name": "A"}’ פלט []

עם הביטוי $..books[?(@.name == 'A')][0].name,

Apigee Edge אפיג' X
פלט "A" פלט []
כן

פתרון: ביטויי סינון של JSONPath בנתיבים לא מוגדרים

לחפש ולהחליף שאילתות שהושפעו.

ביטויי JSONPath לאינדקסים שלא קיימים

סיכום דורשים שינויים בצד הלקוח? פתרון

לביטויי JSONPath עם אינדקס שאינו קיים יש התנהגויות שונות ב-Apigee X לעומת Apigee Edge. כאשר הנתיב לא נמצא, Apigee X מחזירה את השגיאה PathNotFoundException.

ההבדל בין Apigee Edge ל-Apigee X:

בניווט במבנה לדוגמה הזה,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

עם הביטוי $.books[3],

Apigee Edge אפיג' X
פלט null שגיאה אחת (PathNotFoundException) בפלט
כן

פתרון: ביטויי JSONPath לאינדקסים שלא קיימים

לחפש ולהחליף שאילתות שהושפעו.

ביטויי JSONPath עם אינדקס מערך שלא מחזירים אובייקט מערך

סיכום דורשים שינויים בצד הלקוח? פתרון

ביטויי JSONPath עם אינדקס מערך או פרוסות מחזירים אובייקט מערך ב-Apigee X.

ההבדל בין Apigee Edge ל-Apigee X:

בניווט במבנה לדוגמה הזה,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

עם הביטוי $.books,

Apigee Edge אפיג' X
פלט {“name”:”A”, “name”: “B”} פלט [{“name”:”A”, “name”: “B”}]

עם הביטוי $.books[-1],

Apigee Edge אפיג' X
פלט {“name”: “B”} פלט [{“name”: “B”}]

עם הביטוי $.books[-2:],

Apigee Edge אפיג' X
פלט {“name”:”A”, “name”: “B”} פלט [{“name”:”A”, “name”: “B”}]
כן

פתרון: ביטויי JSONPath עם אינדקס מערך שלא מחזירים אובייקט מערך

לחפש ולהחליף ביטויים שעשויים להחזיר תוצאות שונות אחרי השדרוג.

הגבלות על שמות ב-Keystore

סיכום דורשים שינויים בצד הלקוח? פתרון

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

לא

פתרון: הגבלות על שמות ב-Keystore

בודקים את השמות של מאגרי המפתחות ומעדכנים את השמות כדי להסיר תווים לא נתמכים אם יש צורך בכך.

מספר נתיבים בסיסיים נפרסו עבור שרת proxy של API

סיכום דורשים שינויים בצד הלקוח? פתרון

כמה גרסאות של שרת proxy ל-API נפרסות בסביבה, ולכל גרסה יש נתיב בסיס שונה.

ההבדל בין Apigee Edge ל-Apigee X:

Apigee Edge אפיג' X
תומך בפריסה של כמה גרסאות של שרת proxy ל-API, שבו לכל גרסה יכול להיות נתיב בסיסי שונה. לא תומך בפריסה של כמה גרסאות של שרת proxy ל-API, על אף שלשרת ה-proxy יש נתיבים בסיסיים שונים.
לא

פתרון: פריסה של כמה נתיבים בסיסיים לשרת proxy של API

מעדכנים את כל החבילות כך שרק גרסה אחת של החבילה תיפרס בסביבה, ללא קשר לנתיב הבסיס.

הודעות HTTP שלא תואמות למדיניות

סיכום דורשים שינויים בצד הלקוח? פתרון

לקוחות או שרת ה-API של ה-API שולחים הודעות (בקשות או תגובות) שלא עומדות בתקן HTTP. לדוגמה, שמות לא חוקיים של כותרות, כפילויות בכותרות מוגבלות מסוימות וכו'.

לא ניתן לעבור ל-Apigee X אם הפעלת ה-API כוללת אחת או יותר מהשגיאות הבאות:

  • INVALID_CHARACTERS_IN_HEADER
  • MISSING_COLON
  • MULTIPLE_CONTENT_LENGTH
  • CONTENT_LENGTH_NOT_INTEGER
  • INVALID_UPGRADE
  • URL_HEADER_SIZE_TOO_LONG
  • BODY_NOT_ALLOWED
  • UNSUPPORTED_HTTP_VERSION
  • ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT
  • UNSUPPORTED_RESPONSE_PREFIX
כן, אולי.

פתרון: הודעות HTTP שלא תואמות למדיניות

עליך לתקן את כל השגיאות בפרוטוקולים של HTTP לפני המעבר ל-Apigee X. אם שגיאה מגיעה מאפליקציית לקוח, צריך לבקש ממפתח האפליקציה לתקן את הבעיה.

מועד התפוגה של אסימון OAuth 2.0 לא חוקי

סיכום דורשים שינויים בצד הלקוח? פתרון

מגבלות התפוגה של אסימון OAuth 2.0 חורגות מהטווח המתוכנן.

ההבדל בין Apigee Edge ל-Apigee X:

Apigee Edge אפיג' X
בשלב הזה לא נאכפת מגבלה על זמן התפוגה של אסימון OAuth 2.0, אבל מתוכננת אכיפה. תוכלו להיעזר בהנחיות בקטע OAuth של הדף Limits. עליכם להגדיר אסימון גישה ולרענן את מועד התפוגה של אסימון ל-OAuth 2.0. הטווחים הנתמכים הם:
  • 180 שניות <= זמן התפוגה של אסימון הגישה של OAuth 2.0 <= 30 ימים
  • תאריך תפוגה של אסימון רענון של OAuth 2.0 ליום אחד <= שנתיים
לא

פתרון: זמן התפוגה של אסימון OAuth 2.0 לא חוקי

יש להשתמש במדיניות OAuthV2 ולציין את מועד התפוגה ב-<ExpiresIn> וב-<RefreshTokenExpiresIn>.

חריגה ממגבלות המוצר

סיכום דורשים שינויים בצד הלקוח? פתרון

ההגדרה של Apigee Edge לא תואמת למגבלות המוצרים שהוגדרו. חלק ממגבלות המוצר מתועדות אבל לא נאכפות ב-Apigee Edgeare ב-Apigee X.

לא

פתרון: חריגה ממגבלות המוצר

צריך לתקן את כל השימושים שחורגים ממגבלות המוצרים לפני המעבר ל-Apigee X.

המדיניות בנושא יתרונות מרכזיים של שירות עם מציינים לציון החיבור של נקודת הקצה והנתיב

סיכום דורשים שינויים בצד הלקוח? פתרון

במדיניות של Serviceיתרונות מרכזיים, הרכיב <LocalTargetConnection> צריך לכלול את הרכיבים <APIProxy> ו-<ProxyEndpoint> או את הרכיב <Path>, אבל לא את שניהם. למידע נוסף, אפשר לעיין ברכיב <LocalTargetConnection>.

Apigee Edge מתעדת את הדרישה הזו אבל לא אוכפת אותה. העיבוד ב-Apigee X מופסק אם הוא נתקל ב-<LocalTargetConnection> עם שתי ההגדרות.

לא

פתרון: כללי מדיניות של יתרונות מרכזיים של שירות עם פרמטרים לציון חיבור של נקודת קצה ונתיב

צריך לבדוק את הגדרות המדיניות בנושא יתרונות מרכזיים של שירות ולבטל את ההגדרות של <LocalTargetConnection> שלא עומדות בדרישות.

הגבלות על שמות של שרתי יעד

סיכום דורשים שינויים בצד הלקוח? פתרון

שמות של שרתי יעד של Apigee X יכולים להכיל רק אותיות, מספרים, מקפים ונקודות. ההגבלות האלה לא חלות על שמות של שרתי יעד של Edge.

לא

פתרון: הגבלות על שמות של שרתי יעד

יש לבדוק את השמות של שרתי היעד ולעדכן את השמות כדי להסיר תווים לא נתמכים במקרה הצורך.

אישור גרסת ניסיון במארח וירטואלי

סיכום דורשים שינויים בצד הלקוח? פתרון

אחד או יותר ממארחי האירוח הווירטואליים משתמשים באישור 'תקופת ניסיון בחינם' שמסופקת על ידי Apigee. בעקבות זאת, המארח הווירטואלי מגיב לבקשות בדומיינים כמו ORG-ENV.apigee.net.

ההבדל בין Apigee Edge ל-Apigee X:

Apigee Edge אפיג' X
ההגדרה הזו קובעת באופן אוטומטי את המארח 'ברירת המחדל' לתמיכה בשם דומיין בצורה ORG-ENV.apigee.net. יש אישור עם תו כללי לחיפוש, שנקרא "האישור של תקופת הניסיון בחינם", שמאפשר שימוש ב-TLS בדומיינים האלה. דומיינים מדור קודם של Apigee בצורת ORG-ENV.apigee.net אינם זמינים ב-Apigee X. עליך להגדיר שם דומיין משלך ולהקצות אישורים בהתאם.
כן

פתרון: אישור תקופת ניסיון במארח וירטואלי

עליך להגדיר דומיין משלך ולהקצות אישורים כראוי.

יש לשנות כל יישום לקוח שתלוי בשם הדומיין מדור קודם בטופס ORG-ENV.apigee.net, כדי לקרוא לדומיין החדש.

DNS לא נפתר

סיכום דורשים שינויים בצד הלקוח? פתרון

נקודות הקצה (endpoint) ביעד כוללות שמות דומיינים לא מזוהים.

ההבדל בין Apigee Edge ל-Apigee X:

Apigee Edge אפיג' X
אם רזולוציית ה-DNS נכשלת, Apigee מצרף את .apigee.com לשם הדומיין ו-DNS מתבצע בהצלחה באמצעות קוד תגובה 4xx. אם פענוח ה-DNS נכשל, Apigee לא יבצע את הבקשה ויחזיר קוד תגובה 5xx.
לא

פתרון: DNS לא נפתר

יש לעדכן את נקודת הקצה (endpoint) של היעד עם שם דומיין חוקי.