בעיות מוכרות ב-Apigee

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לצפייה במאמרי העזרה של Apigee Edge.

כדי לסנן את הדף הזה, בוחרים באחת או יותר מהאפשרויות הבאות:

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

מזהה הבעיה השפעה על סטטוס תיאור
543171828 ‫hybrid 1.14.7,‏ hybrid 1.15.7 ו-hybrid 1.16.8 תוקן ב-hybrid 1.16.9 ה-DaemonSet של apigee-logger לא מתוזמן באף צומת, ולכן יומני זמן הריצה של Apigee מפסיקים להגיע ל-Cloud Logging.

אחרי שמתקינים גרסה מושפעת או משדרגים אליה, ב-kubectl get daemonset apigee-logger -n apigee מדווח על מספר רצוי של 0 ולא נוצרים פודים של רישום ביומן.

בתרשים apigee-telemetry תמיד נשלח כברירת מחדל logger.nodeSelector של apigee.cloud.google.com/apigee-logger-enabled: "true", שדורש לתייג את הצמתים שבהם צריך להפעיל את ה-logger. בגרסאות שלפני הגרסאות המושפעות, המערכת התעלמה מבוררי צמתים ברמת הרכיב, ולכן מתעד הנתונים תזמן את מאגרי הצמתים של Apigee למרות שהצמתים לא תויגו. הגרסאות המושפעות מחילות את בוררי הצמתים ברמת הרכיב בצורה נכונה, כך שברירת המחדל נכנסת לתוקף וה-DaemonSet לא תואם לאף צומת.

רק פריסות שמוגדר בהן logger.enabled: true מושפעות.

פתרון עקיף: בוחרים אחת מהאפשרויות הבאות ואז משדרגים את התרשים של apigee-telemetry.

כדי להריץ את ה-logger בכל צומת, בהתאם להתנהגות של גרסאות קודמות, צריך לנקות את בורר הצמתים שמוגדר כברירת מחדל בקובץ overrides.yaml:

logger:
  enabled: true
  nodeSelector:
    key: ""
    value: ""

כדי להגביל את כלי הרישום לקבוצה ספציפית של צמתים, משאירים את בורר הצמתים שמוגדר כברירת מחדל ומוסיפים תווית לכל אחד מהצמתים האלה:

kubectl label nodes NODE_NAME apigee.cloud.google.com/apigee-logger-enabled=true
534420582 Apigee
Apigee Hybrid
תוקנה בגרסה 1.15.8 של Hybrid מטענים ייעודיים (payloads) של JSON עם מפתחות כפולים עשויים להתפרש באופן שונה על ידי כללי המדיניות של Apigee ועל ידי שירותים לקצה העורפי, מה שיכול להחליש את בדיקות האבטחה שמבוססות על תוכן.

המדיניות ExtractVariables משתמשת ב-JSONPath, שפותר מפתחות JSON כפולים באמצעות סמנטיקה של last-wins. בחלק מה-backends, בעיקר ממשקי Google Cloud API שמקבלים proto3 JSON, מתבצע מיזוג של מפתחות חוזרים (לדוגמה, שרשור של שדות מערך חוזרים). אם שרת proxy של Apigee מסתמך על ExtractVariables + JSONPath +‏ RaiseFault כדי לבדוק ולחסום גופי בקשות עם הרשאות, תוקף יכול להסתיר תוכן זדוני במפתח כפול שמדיניות Apigee לא רואה אבל ה-backend עדיין מעבד.

פתרון עקיף: אל תסתמכו על ExtractVariables עם JSONPath בלבד כגבול אבטחה לקצוות עורפיים שמקבלים proto3 JSON. מוסיפים מדיניות JSONThreatProtection לתהליך הבקשה לפני ExtractVariables, ומגדירים את <ObjectEntryCount> ומגבלות אחרות כך שיתאימו לחוזה ה-API. כדי להגביר את ההגנה, אפשר להשתמש במדיניות JavaScript כדי לנתח את גוף הבקשה באמצעות JSON.parse() ולדחות חבילות נתונים שמכילות מפתחות כפולים לפני שהחילוץ מתבצע.

523085517 ממשק משתמש פתיחה תצוגת המעקב אחרי ניפוי הבאגים ב-Apigee עשויה להבהב או להופיע לאט בסשנים גדולים של ניפוי באגים.

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

פתרון עקיף: בחלונית View options של תצוגת המעקב אחרי ניפוי הבאגים, מבטלים את הסימון של כל תיבות הסימון כדי להקטין את מספר הרכיבים שעברו רינדור. אפשר גם לנסות לצפות בסשן ניפוי הבאגים בדפדפן אחר.

513032450 hybrid 1.16.2 תוקן ב-hybrid 1.16.11 וב-hybrid 1.17.1 apigee-connect-agent first tether wedges on RKE2-on-GKE clusters after Go 1.26.3 toolchain bump.

ה-Pod של apigee-connect-agent לא יכול לזהות את החיבור שנתקע. אנחנו עדיין בודקים מה שורש הבעיה, אבל יכול להיות שהיא קשורה ל-CloudNAT, שמשמש את אשכולות הבדיקה שלנו.

פתרון עקיף: משתמשים ביותר מפוד אחד של apigee-connect-agent. ה-Pod השני יפעל באופן תקין, וה-Pod הראשון יאפס את החיבור אחרי שעתיים ויפעל באופן תקין לאחר מכן.

515424331 hybrid 1.16.3 תוקן ב-Apigee Hybrid בגרסה 1.16.4 הסקריפט apigee-pull-push.sh נכשל בגרסה 1.16.3 כי חלק מהתמונות שהועברו מגרסה 1.16.2 לא תויגו מחדש בתג 1.16.3 במאגר gcr.io/apigee-release/hybrid/.

כש-apigee-pull-push.sh (או כל docker pull ידני) ביקש תמונה מושפעת בתג 1.16.3, המרשם החזיר שגיאת image not known והסקריפט בוטל. שדרוגים שבוצעו באמצעות תרשימי Helm של Apigee Hybrid לא הושפעו, כי התרשימים מפנים ישירות לתקצירי התמונות הנכונים.

פתרון עקיף: לכל תמונה שמושפעת מהבעיה, צריך לשלוף את התג 1.16.2 במקום 1.16.3, או לשדרג ישירות ל-1.16.4, שמפרסם מחדש את כל התמונות עם התג התואם.

512866352 hybrid 1.16.2 תוקן ב-Apigee Hybrid בגרסה 1.16.3 מאגרי סודות חיצוניים (כמו HashiCorp Vault) לא פועלים עם קובץ האימג' apigee-redis בגלל חוסר התאמה בגרסת glibc.

פתרון עקיף: אל תגדירו שילוב של מאגר סודי חיצוני (ESS) ל-apigee-redis ב-Apigee hybrid בגרסה 1.16.2. עד שיהיה תיקון, השתמשו בהגדרת ברירת המחדל של הסוד.

415061771 Apigee
Apigee Hybrid
פתיחה הודעת השגיאה "האובייקט השתנה" בבקר

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

499322601 ‫hybrid 1.16.0-hotfix.1, ‏
hybrid 1.15.2, ‏
hybrid 1.14.4
תוקן ב-hybrid 1.16.2 ‫Apigee לא תומכת בשרת proxy להעברה שמוגדרת בו אכיפה של פרטי כניסה לאימות בסיסי.
495305258 ‫Apigee (פתרון ב-Marketplace) פתיחה שיבוש בפריסה של פורטל Apigee Drupal דרך Cloud Marketplace

אנחנו מעבירים את הפתרון של Apigee Drupal Portal Marketplace לשימוש ב-Infrastructure Manager במקום ב-Cloud Deployment Manager. במהלך תקופת המעבר הזו, יכול להיות שחלק מהפונקציות של הפריסה והניהול לא יהיו זמינות.

השפעה:

  • פריסות חדשות: החל מ-1 באפריל 2026, יכול להיות שלא תצליחו לפרוס מכונה חדשה של פורטל Apigee Drupal באמצעות הלחצן Deploy ב-Cloud Marketplace.
  • פריסות קיימות: המשאבים הבסיסיים (כמו מכונות וירטואליות ומסדי נתונים של Cloud SQL) לא יושפעו וימשיכו לפעול כרגיל. עם זאת, יכול להיות שלא תצליחו להשתמש בתכונות שמבוססות על Deployment Manager כדי לנהל את הפריסה דרך ממשק המשתמש של Cloud Marketplace או הכלי gcloud deployment-manager.

פתרון עקיף: מבצעים את השינויים בהגדרות או את משימות הניהול ישירות במשאבי Google Cloud הספציפיים (Compute Engine,‏ Cloud SQL וכו'). ולא דרך ממשק המשתמש של Cloud Marketplace.

496552286 Apigee פתיחה הפריסה נכשלת בשרתי פרוקסי של MCP Discovery באזורים עם מגבלות קיבולת.

יכול להיות שפריסת התשתית של MCP תהיה כפופה למגבלות קיבולת באזורים הבאים:

  • asia-east2
  • asia-northeast3
  • asia-southeast2
  • australia-southeast1
  • europe-central2
  • europe-west12
  • europe-west9
  • me-central2
  • us-central2

אם מופיעה שגיאה שקשורה לכשל בהקצאת מאזן העומסים, או שסטטוס ההקצאה לא משתנה ל-Deployed, יכול להיות שהסיבה לכך היא מגבלות זמניות בקיבולת התשתית באזור שנבחר. נסו לפרוס את שרת ה-proxy בסביבה באזור אחר.

490308770 ‫hybrid 1.12.x, ‏ hybrid 1.15.x, ‏ hybrid 1.16.0 תוקנה בגרסאות ‎1.16.0-hotfix.1 ו-‎1.15.2 הגדרות של שרת proxy מאומת ל-HTTP נכשלות בגלל מחרוזות של כתובות URL בפורמט שגוי בתבניות Helm.

כשמגדירים שרת proxy מאומת לתעבורה יוצאת באמצעות httpProxy.username ו-httpProxy.password, תרשימי Apigee Hybrid Helm יוצרים מחרוזות http_proxy ו-https_proxy לא תקינות. התבניות מוסיפות בטעות מירכאות כפולות באמצע כתובת ה-URL, וזה גורם לקריסה של רכיבים כמו פודים של אימות מעקות בטיחות עם שגיאת net/url: invalid userinfo.

פתרון עקיף: עורכים ידנית את קובצי התבנית של Helm כדי להסיר את הפונקציה quote משדות שם המשתמש והסיסמה במבנה של כתובת ה-URL של שרת ה-proxy. לדוגמה, ב-apigee-operator/templates/apigee-operators-guardrails.yaml, צריך לשנות את ההגדרות של משתנה הסביבה של שרת ה-proxy כדי לוודא שפרטי הכניסה לא מוקפים במירכאות בנפרד בתוך המחרוזת של כתובת ה-URL.

482077193 ‫hybrid מגרסה 1.15.0 ואילך תוקן ב-‎1.16.0-hotfix.1 שרשור שרתי proxy נכשל עם השגיאה ‎404 route_not_found בהגדרות של כמה ארגונים עם מרחב שמות אחד.

בסביבות Apigee Hybrid שבהן כמה ארגונים חולקים מרחב שמות אחד של Kubernetes, יכול להיות ששרשור שרתי proxy ייכשל מדי פעם עם שגיאת HTTP 404 route_not_found. זה קורה כי שערי השרשור הפנימיים של ארגונים שונים משתמשים באותו בורר ingress_name, וכתוצאה מכך Envoy טוען את כללי הניתוב באופן לא עקבי.

פתרון עקיף: כדי להבטיח בידוד של הבורר, צריך להקצות שם ייחודי לשער השרשור של כל ארגון בקובץ overrides.yaml:

apigeeChainingGateway:
  name: internal-chaining-UNIQUE_SUFFIX

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

479040521 ‫hybrid 1.16.0 תוקן ב-hybrid 1.16.0-hotfix.1 apigee-operator-guardrails-sa לא נוצר ב-AKS או ב-EKS עם Workload Identity.

ה-Kubernetes ServiceAccount apigee-operator-guardrails-sa לא נוצר כשמתקינים או משדרגים את התרשים apigee-operator ב-Apigee Hybrid 1.16.0 בפלטפורמות שהן לא GKE, שבהן מופעלת Federated Workload Identity (WIF).

פתרון עקיף: מתקנים ידנית את תבנית תרשים ה-Helm של apigee-operator:

  1. עורכים את קובץ התבנית של תרשים Helm‏ apigee-operatorapigee-operator/templates/apigee-operator-guardrails-sa.yaml.

    מעדכנים את התנאי הראשוני של if כך שיכלול את הבדיקה של federatedWorkloadIdentity:

    {{ - if or (.Values.serviceAccountSecretProviderClass) (.Values.gcp.workloadIdentity.enabled) (.Values.gcp.federatedWorkloadIdentity.enabled) } }
  2. עורכים את קובץ התבנית של תרשים Helm של apigee-operator apigee-operator/templates/apigee-operator-guardrails.yaml (הערה: זהו קובץ התבנית של apigee-operator-guardrails.yaml, לא הקובץ של apigee-operator-guardrails-sa).

    מעדכנים את התנאי הראשוני של if בשורה 17 מיד אחרי spec: כדי לכלול את הבדיקה של federatedWorkloadIdentity:

    {{ - if or (.Values.serviceAccountSecretProviderClass) (.Values.gcp.workloadIdentity.enabled) (.Values.gcp.federatedWorkloadIdentity.enabled) } }
  3. מחילים את השינויים על התרשים apigee-operator.
479872706 ‫hybrid 1.16.0 (EKS עם WIF ושרת proxy להעברה) תוקן ב-hybrid 1.16.0-hotfix.1 לא ניתן לטעון מוצרי API, אפליקציות ומפתחים אחרי העברת נתונים ל-Apigee Hybrid 1.16.

אחרי השדרוג ל-Apigee Hybrid 1.16.0, יכול להיות שסביבות שמשתמשות ב-Workload Identity Federation (WIF) בשילוב עם שרת פרוקסי להעברת HTTP לא יצליחו לטעון ישויות ניהול (מוצרי API, אפליקציות, מפתחים) בגלל רגרסיה בהמרת פרטי כניסה ב-MART.

פתרון עקיף: מחילים את העדכון 1.16.0-hotfix.1 על ידי עדכון המאפיינים image.url ו-image.tag של רכיבי האופרטור ו-MART בקובץ overrides.yaml:

ao:
  image:
    url: "gcr.io/apigee-release/hybrid/apigee-operators"
    tag: "1.16.0-hotfix.1"
mart:
  image:
    url: "gcr.io/apigee-release/hybrid/apigee-mart-server"
    tag: "1.16.0-hotfix.1"
482209901 ‫hybrid 1.16.0 תוקן ב-hybrid 1.16.0-hotfix.1 פריסת שרת ה-proxy לא הושלמה בגלל הרשאות RBAC חסרות ב-Hybrid בגרסה 1.16.0.

יש בעיה מוכרת בגרסה 1.16.0 שבה אשכולות היברידיים עלולים להיכשל בדיווח על סטטוס הפריסה של שרתי proxy. הסיבה לכך היא שחסרה הרשאה בתפקיד apigee-manager-role.

פתרון עקיף: מוסיפים את ההרשאה לתבנית תרשים ה-Helm של apigee-operator:

  1. עורכים את קובץ התבנית של תרשים Helm‏ apigee-operatorapigee-operator/templates/apigee-operators.yaml.
  2. מוסיפים את הפועל - watch למשאב deployments, אחרי הפועל - update בשורה 584.
  3. מעדכנים את גרסת ה-Helm של apigee-operator.
418274570 ‫hybrid 1.16.0 FIXED דף נתוני הגרסה של Hybrid לא עודכן במידע על ‎1.16.0-hotfix.1.

בדף של נתוני הגרסה של Hybrid לא מוצג המידע על העדכון 1.16.0-hotfix.1. פרטים נוספים זמינים ב הערות המוצר של Apigee hybrid v1.16.0-hotfix.1.

484366184 ‫hybrid 1.14.x, ‏ hybrid 1.15.x תוקן ב-hybrid 1.16.0 בגרסאות 1.14 ו-1.15 של Apigee Hybrid מתרחשת לולאת קריסה ב-apigee-ingressgateway-manager כשמשתמשים ב-Kubernetes Gateway API בגרסה 1.4.0 ואילך.

הבעיה הזו לא משפיעה על Apigee Hybrid 1.16.

פתרון עקיף: אם אתם צריכים להשתמש ב-Kubernetes Gateway API עם גרסאות 1.14 או 1.15 של Apigee Hybrid, התקינו את גרסה v1.3.x של Gateway API. לדוגמה:

kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml

מידע נוסף:

471125841 hybrid 1.14.x,hybrid 1.15.x תוקן ב-hybrid 1.16.x כשיוצרים גרסה חדשה של שרת proxy ל-API ופורסים אותה עם ערך io.timeout.millis מעודכן, יכול להיות שהערך החדש לא יכובד באופן עקבי.

הערך המעודכן של io.timeout.millis לא מכובד לסירוגין בבקשות API. זה קורה כשמשתמשים בכמה שרתים ב-<LoadBalancer> ב-TargetEndpoint.

פתרון עקיף: אחרי פריסת ה-proxy ל-API, מפעילים מחדש את ה-pods של apigee-runtime אחד אחרי השני כדי שהשינוי יופץ בצורה נכונה.

480997525 Apigee 1-17-0-apigee-1 תוקן ב-Apigee 1-17-0-apigee-2 קריאות לשרת proxy נכשלות עם השגיאה The URI contain illegal characters אחרי שדרוג Netty.

בגרסה 1-17-0-apigee-1 של Apigee, שדרוג של Netty ל-4.1.129.Final גרם לרגרסיה. זה יכול לגרום לקריאות לשרת proxy ל-API להיכשל עם קוד הסטטוס 400 והודעת השגיאה The URI contain illegal characters. הבעיה הזו מנוהלת באופן חיצוני ב- netty/netty#16020.

511240460 שדרוגים מגרסה 1.15.x של Apigee Hybrid לגרסה 1.16.0 ואילך פתוח (לא מתוכנן תיקון) כשמשדרגים את האופרטור מ-Apigee hybrid בגרסה 1.15.x לגרסה 1.16.x, מתבצעת הפעלה מחדש של סביבת זמן הריצה, הסנכרון, MART, מתאם Envoy ו-Pod של העברה בכל סביבה.

בגרסה 1.16 של Apigee Hybrid נוספה נקודת טעינה של אמצעי אחסון לתבנית ה-Pod של הרכיבים האלה. בשדרוג הראשון של האופרטור מגרסה 1.15.x לגרסה 1.16.x, הפודים של סביבת זמן הריצה, הסנכרון, MART, מתאם Envoy וההעברה מופעלים מחדש פעם אחת בכל סביבה. ההפעלה מחדש מתרחשת גם אם רוטציית האישורים מופעלת וגם אם לא.

כל הפעלה מחדש היא עדכון בהדרגה (rolling), כך שכל עומס עבודה מריץ לזמן קצר פודים נוספים (surge). באשכול עם הרבה סביבות, כל הפודים האלה של ה-surge מתחילים לפעול באותו זמן.

מתזמן המשימות של Mint לא מופעל מחדש. השינוי יתבצע בהפעלה המתוזמנת הבאה.

ההפעלה מחדש מתרחשת רק פעם אחת, בשדרוג מגרסה 1.15.x לגרסה 1.16.x. שדרוגים מאוחרים יותר, כמו מ-1.16.x ל-1.17.x, לא גורמים לזה. בגרסאות מאוחרות יותר של Apigee Hybrid נדרשת טעינת הנפח, ולכן לא מתוכנן תיקון.

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

למידע נוסף:

465834046 ‫hybrid 1.14.3,‏ hybrid 1.15.1 ו-hybrid 1.16.0 ואילך לשדרוגים תוקן בגרסאות ההיברידיות 1.14.3,‏ 1.15.1 ו-1.16.0 להתקנות חדשות בגרסאות cert-manager 1.18 ואילך, מדיניות ברירת המחדל לרוטציית מפתחות פרטיים השתנתה מ-Never ל-Always. אם המפתח הפרטי של apigee-ca יוחלף, תהיה לכך השפעה על התנועה

בגרסאות חדשות יותר של cert-manager (גרסה 1.18 ואילך), המפתחות הפרטיים מוחלפים באופן אוטומטי. כשמחליפים את המפתח הזה לאישור apigee-ca, זה גורם להפסקה זמנית בשירות.

פתרון עקיף: כדי למנוע את הבעיה, אתם יכולים לבחור באחת מהאפשרויות הבאות:

  • אל תשדרגו את cert-manager לגרסה גבוהה יותר מ-1.17.x.
  • עורכים את האישור apigee-ca במרחב השמות cert-manager ומגדירים את spec.privateKey.rotationPolicy כ-Never. כדי לערוך את האישור של apigee-ca ולשדרג את cert-manager:
    1. בודקים את התוכן של האישור apigee-ca כדי לראות אם rotationPolicy מוגדר:
      kubectl get certificate apigee-ca -n cert-manager -o yaml
      

      מחפשים את הערכים בקטע spec.privateKey בפלט:

      ...
      spec:
        commonName: apigee-hybrid
        duration: 87600h
        isCA: true
        issuerRef:
          group: cert-manager.io
          kind: ClusterIssuer
          name: apigee-root-certificate-issuer
        privateKey:
          algorithm: ECDSA
          # Note: rotationPolicy would appear here if it is set.
          size: 256
        secretName: apigee-ca
      ...
    2. אם rotationPolicy לא מוגדר או אם הוא מוגדר ל-Always, עורכים את האישור apigee-ca כדי להגדיר את הערך של rotationPolicy ל-Never:
      1. קודם מבצעים הרצה יבשה:
        kubectl patch Certificate \
          --dry-run=server \
          -n cert-manager \
          --type=json \
          -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \
          -o=yaml \
          apigee-ca
        
      2. מתקנים את האישור:
        kubectl patch Certificate \
          -n cert-manager \
          --type=json \
          -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \
          -o=yaml \
          apigee-ca
        
    3. מוודאים שהערך של rotationPolicy מוגדר עכשיו כ-Never:
      kubectl get certificate apigee-ca -n cert-manager -o yaml
      

      הפלט אמור להיראות כך:

      ...
      spec:
        commonName: apigee-hybrid
        duration: 87600h
        isCA: true
        issuerRef:
          group: cert-manager.io
          kind: ClusterIssuer
          name: apigee-root-certificate-issuer
        privateKey:
          algorithm: ECDSA
          rotationPolicy: Never
          size: 256
        secretName: apigee-ca
      ...
    4. משדרגים את cert-manager. הפקודה הבאה תוריד ותתקין את cert-manager v0.14.2:
      kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v0.14.2/cert-manager.yaml

למידע נוסף:

458417250 ‫Apigee 1-16-0-apigee-4 תוקן ב-Apigee 1-16-0-apigee-6 מעבד הבקשות מחזיר שגיאה 500 עם "Duplicate Header "authorization"".

אם יש כמה כותרות הרשאה בבקשה, שער הכניסה של Apigee לא משרשר אותן לכותרת אחת. כתוצאה מכך, מעבד הבקשות מחזיר שגיאה מסוג 500 עם ההודעה "Duplicate Header "authorization"".

פתרון עקיף: אם בבקשה יש כמה כותרות הרשאה, צריך לשרשר אותן לכותרת אחת. לדוגמה:

curl -s https://my-hostname.net/mocktarget/echo \
          -H 'authorization: a, b'

462685598 ממשק משתמש פתיחה

בממשק המשתמש של Apigee אין כרגע אפשרות להקצות ארגונים ב-Apigee באמצעות Google-owned and Google-managed encryption key.

בממשק המשתמש של Apigee אין אפשרות לבחור Google-owned and Google-managed encryption key כשמקצים ארגונים עם מינוי.

פתרון עקיף: משתמשים בממשקי ה-API של Apigee כדי ליצור ארגונים מבוססי-מינוי עם Google-owned and Google-managed encryption key.

כמו שמוסבר ב מאמרי העזרה של Apigee API, כשיוצרים את הארגון ב-Apigee, אפשר ליצור אותו באמצעות Google-owned and Google-managed encryption key בלי לספק ערכים לשדות runtimeDatabaseEncryptionKeyName,‏ apiConsumerDataEncryptionKeyName ו-controlPlaneEncryptionKeyName.

460431753 ‫Apigee, ‏ Apigee Hybrid פתיחה כללי המדיניות של Apigee Model Armor לא נתמכים ב-WebSockets.

כללי המדיניות של Apigee Model Armor, כולל SanitizeUserPrompt ו- SanitizeModelResponse, לא פועלים כרגע כמו שצריך כשמשתמשים בהם בשרתי proxy ל-API שמטפלים בחיבורי WebSocket. למידע נוסף על הגדרת WebSocket, ראו WebSockets עם Apigee.

433759657 Apigee תוקן בגרסה ‎1-16-0-apigee-3 ואילך

אחרי השדרוג לגרסה 1-16-0-apigee-3, יכול להיות שבחלק מהארגונים ב-Apigee יופיעו שגיאות HTTP 500 שנובעות מ-java.lang.NoClassDefFoundError במדיניות קריאה ל-Java. השגיאה נראית בערך כך:

{"fault":{"faultstring":"Failed to execute JavaCallout. org/apache/commons/lang/StringUtils","detail":{"errorcode":"steps.javacallout.ExecutionError"}}}

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

פעולה נדרשת: כדי למנוע את הבעיה הזו, המפתחים צריכים לוודא שכל הקריאות ל-Java הן עצמאיות ומשתמשות בספריות ייעודיות משלהן, בלי להסתמך על נתיב המחלקה הפנימי של Apigee.

ב-proxy ל-API שמשתמש בספריית Apache Commons JAR, מייבאים את קובץ Apache Commons JAR כדי לכלול אותו כמשאב ל-proxy. מידע נוסף זמין בהנחיות למשאבי Java.

451841788 ‫hybrid 1.14.3 ו-hybrid 1.15.1 FIXED ב-Apigee Hybrid נדרש המאפיין mintTaskScheduler.serviceAccountPath גם אם המונטיזציה לא מופעלת.

השדרוג של תרשים apigee-org עלול להיכשל אם המאפיין mintTaskScheduler.serviceAccountPath לא מוגדר, גם אם המונטיזציה לא מופעלת:

Error: UPGRADE FAILED: execution error at (apigee-org/templates/mint-task-scheduler-gsa-secret.yaml:12:63): mintTaskScheduler.serviceAccountPath is required!

פתרון עקיף: מסירים את הקבצים apigee-org/templates/mint-task-scheduler-gsa-secret.yaml ו-apitee-org/templates/mint-task-scheduler-sa.yaml.

אם רוצים, אפשר להעביר את הקבצים למיקום נפרד מחוץ לספריית תרשים Helm. לחלופין, אתם יכולים להוריד אותם שוב אם תרצו להפעיל את המונטיזציה בעתיד, לפי ההוראות בשלב 2: הורדת תרשימי Apigee Helm.

לדוגמה, מהספרייה helm-charts/:

  1. ls apigee-org/templates/

    פלט:

    apigee-org-guardrails.yaml              mart-sa.yaml
    apigee-proxy-chaining-certificate.yaml  mint-task-scheduler-gsa-secret.yaml
    apigee-proxy-chaining-route.yaml        mint-task-scheduler-sa.yaml
    ax-hash-salt-secret.yaml                NOTES.txt
    connect-agent-gsa-secret.yaml           organization.yaml
    connect-agent-sa.yaml                   udca-gsa-secret.yaml
    data-encryption-secret.yaml             udca-sa.yaml
    encryption-keys-secret.yaml             watcher-gsa-secret.yaml
    _helpers.tpl                            watcher-sa.yaml
    mart-gsa-secret.yaml
    
  2. (אופציונלי:)
    cp apigee-org/templates/mint-task-scheduler-gsa-secret.yaml /tmp/
    cp apigee-org/templates/mint-task-scheduler-sa.yaml /tmp/
  3. rm apigee-org/templates/mint-task-scheduler-gsa-secret.yaml
  4. rm apigee-org/templates/mint-task-scheduler-sa.yaml
  5. ls apigee-org/templates/

    פלט:

    apigee-org-guardrails.yaml              mart-gsa-secret.yaml
    apigee-proxy-chaining-certificate.yaml  mart-sa.yaml
    apigee-proxy-chaining-route.yaml        NOTES.txt
    ax-hash-salt-secret.yaml                organization.yaml
    connect-agent-gsa-secret.yaml           udca-gsa-secret.yaml
    connect-agent-sa.yaml                   udca-sa.yaml
    data-encryption-secret.yaml             watcher-gsa-secret.yaml
    encryption-keys-secret.yaml             watcher-sa.yaml
    _helpers.tpl
    
451375397 ‫hybrid 1.14.3 תוקן ב-hybrid 1.15.1

הסקריפט apigee-pull-push.sh יכול להחזיר הודעת שגיאה מסוג No such image, לדוגמה:

Error response from daemon: No such image: gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent:latest

פתרון עקיף: עורכים את הסקריפט HELM_CHARTS_DIR/apigee-operator/etc/tools/apigee-pull-push.sh כדי לשנות את שורה 114 בפונקציה docker_tag(), מ:

  docker tag "${source}/$i" "${dest}/$i:${TAG}"

אל:

  docker tag "${source}/$i:${TAG}" "${dest}/$i:${TAG}"
405936071 hybrid 1.15.0 תוקן בגרסה 1.15.1 של Apigee Hybrid

כשמציינים את metrics.serviceAccountRef או את metrics.serviceAccountSecretProviderClass בקובץ overrides.yaml, תפקיד הטלמטריה יטרגט את חשבון השירות הלא נכון.

פתרון עקיף: צריך לתקן את _helper.tpl בתרשים apigee-operator/ ולהחיל אותו מחדש.

  1. עורכים את הקובץ apigee-operator/templates/_helpers.tpl ומסירים את השורות הבאות שמופיעות במודגש:

    {{- define "metricsSA" -}}
      {{- $metricsName := "apigee-metrics" }}
      {{- $telemetryName := "apigee-telemetry" -}}
      {{- $generatedName := include "orgScopeEncodedName" (dict "name" .Values.org) -}}
      {{- if .Values.gcp.workloadIdentity.enabled -}}
      {{- printf "%s-sa" $metricsName -}}
      {{- else if .Values.serviceAccountSecretProviderClass -}}  <-- DELETE
      {{- .Values.serviceAccountSecretProviderClass -}}          <-- DELETE
      {{- else if .Values.metrics.serviceAccountRef -}}          <-- DELETE
      {{- .Values.metrics.serviceAccountRef -}}                  <-- DELETE
      {{- else if .Values.multiOrgCluster -}}
      {{- printf "%s-%s" $metricsName $generatedName -}}
      {{- else -}}
      {{- printf "%s-%s" $metricsName $telemetryName -}}
      {{- end -}}
    {{- end -}}

    הקטע שנוצר אמור להיראות כך:

    {{- define "metricsSA" -}}
      {{- $metricsName := "apigee-metrics" }}
      {{- $telemetryName := "apigee-telemetry" -}}
      {{- $generatedName := include "orgScopeEncodedName" (dict "name" .Values.org) -}}
      {{- if .Values.gcp.workloadIdentity.enabled -}}
      {{- printf "%s-sa" $metricsName -}}
      {{- else if .Values.multiOrgCluster -}}
      {{- printf "%s-%s" $metricsName $generatedName -}}
      {{- else -}}
      {{- printf "%s-%s" $metricsName $telemetryName -}}
      {{- end -}}
    {{- end -}}
  2. מפעילים מחדש את התרשים apigee-operator.

    helm upgrade operator apigee-operator/ \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
419856132 ‫hybrid מגרסה 1.14.2 ואילך תוקן בגרסאות 1.14.3 ו-1.15.0 של Apigee Hybrid אם gateway.networking.k8s.io/v1 מותקן באשכול,יכול להיות שהשדרוג של apigee-ingressgateway-manager ייכשל.

כדי לעקוף את הבעיה, צריך לפעול לפי השלבים שמפורטים בבעיה מוכרת 416634326.

378686709 ‫Apigee
‫Apigee Hybrid
תוקן ב-Apigee (נדרשת שיחת תמיכה)
תוקן בגרסאות 1.14.3 ו-1.15.1 של Apigee Hybrid (נדרש הליך)

שימוש בתווים כלליים לחיפוש (*) בנתיבי הבסיס של שרת ה-proxy של Apigee עלול להתנגש עם נתיבי בסיס מפורשים אחרים, ולגרום לשגיאה 404. לדוגמה, אם משתמשים בנתיבי הבסיס הבאים לשני שרתי proxy שנפרסו באותה סביבה, יכול להיות שתופיע השגיאה 404 כשקוראים ל-Proxy-2:

Proxy-1: /a/v1/b
Proxy-2: /a/*/c

במקרה כזה, קריאות לנתיב הבסיס המפורש יסתיימו בהצלחה, אבל קריאות ל-Proxy-2 עשויות להחזיר 404, אם נתיב התווים הכלליים מוערך כ-/a/v1/c.

תיקון: הבעיה תוקנה ב-Apigee ובגרסה היברידית 1.14.3 ואילך. עם זאת, התיקון לא מופעל כברירת מחדל. כדי להפעיל את השימוש בתווים כלליים לחיפוש בנתיבי בסיס:

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

הוראות: כדי לאפשר שימוש בתווים כלליים לחיפוש (*) בנתיבי הבסיס של שרתי proxy ב-Apigee Hybrid:

  1. לפני שמשדרגים לגרסה 1.14.3 או גרסה מאוחרת יותר של Hybrid, מוסיפים את הבית הבא לקובץ overrides.yaml:
    runtime:
      cwcAppend:
        conf_message-processor-communication_classificationV2.enabled: "true"
    
  2. מחילים את השינויים על התרשים apigee-env. חוזרים על השינוי בכל סביבה בהתקנה.
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
    • ‫ENV_RELEASE_NAME הוא שם שמשמש למעקב אחרי ההתקנה והשדרוגים של תרשים ה-Helm של apigee-env. השם הזה חייב להיות שונה משמות אחרים של גרסאות Helm בהתקנה. בדרך כלל, זוהי כתובת ה-URL הסופית של המודעה, ENV_NAME. עם זאת, אם לסביבה יש שם זהה לשם של קבוצת הסביבות, צריך להשתמש בשמות שונים לגרסאות של הסביבה ושל קבוצת הסביבות, לדוגמה dev-env-release ו-dev-envgroup-release. מידע נוסף על גרסאות ב-Helm זמין במאמר Three big concepts במסמכי התיעוד של Helm.
    • ‫ENV_NAME הוא שם הסביבה שמשדרגים.
    • OVERRIDES_FILE הוא קובץ ההגדרות המבוטלות.
  3. צריך לשדרג לגרסה 1.14.3 או לגרסה מאוחרת יותר של Apigee Hybrid.
382565315 ‫hybrid 1.13.0,
hybrid 1.13.1,
hybrid 1.13.2,
hybrid 1.14.0
תוקן בגרסאות hybrid 1.13.3 ו-hybrid 1.14.1

השימוש ב-LogTimer ב-SecurityPolicy עלול לגרום לדליפת זיכרון.

בנסיבות מסוימות, ה-threads של ה-logger ב-Apigee hybrid עלולים לצרוך את כל הזיכרון הזמין. לדוגמה, רשומות יומן תכופות שמתעדות שגיאות הרשאה שמשויכות ל-Javacallout עלולות לגרום ל-OOM.

421190799 Apigee תוקן ב-Apigee 1-15-0-apigee-7

מעבד התוספים של Apigee לא תומך בעיבוד נתונים של יותר מ-100KB כחלק מאירועים של גוף הבקשה והתגובה.

432315283 Apigee פתיחה

כשמעדכנים מאגר מפתחות או מאגר אישורים בלי ליצור מאגר מפתחות או מאגר אישורים חדש, יכול להיות שהעדכונים בזמן הריצה ייכשלו ויגרמו לשגיאה הבאה לסירוגין:

  {"fault":{"faultstring":"SSL Handshake failed sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target","detail":{"errorcode":"messaging.adaptors.http.flow.SslHandshakeFailed"}}}

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

412740465 ‫hybrid בגרסה 1.14.0 ואילך תוקן ב-hybrid 1.14.3 וב-hybrid 1.15.1

החל מ-Apigee hybrid גרסה 1.14.0, הוסרה ההוספה האוטומטית של כותרות מעקב של Zipkin‏ (x-b3-*).

לא רלוונטי

Apigee Hybrid פתיחה אם מגדירים העברת שרת proxy שאינו proxy ל-API באמצעות httpProxy בלי להגדיר גם את envs.httpProxy, הגדרת שרת ה-proxy לא תחול על הקריאות החיצוניות של Apigee Runtime לשירותים כמו Pub/Sub או Cloud APIs אחרים של Google Cloud.

אם אתם מציינים רק את httpProxy, אתם צריכים גם לוודא ש-*.googleapis.com נמצא ברשימת ההיתרים של Pods של סביבת זמן הריצה של Apigee כדי לאפשר קישוריות לשירותים האלה.

מידע נוסף זמין במאמר הגדרת העברת proxy לשרתי proxy ל-API.

416634326 ‫hybrid מגרסה 1.14.2 ואילך תוקן ב-hybrid 1.14.3 וב-hybrid 1.15.1

Presence of istio.io Custom Resource Definitions (CRDs) in an Apigee Hybrid cluster may cause failure in apigee-ingressgateway-manager pods.

במהלך השדרוג של Apigee Hybrid מגרסאות ישנות יותר לגרסה 1.14.2 ואילך, אם יש istio.io CRDs קיימים, יכול להיות שייכשלו בדיקות המוכנות במאגרי discovery של ה-pods ב-apigee-ingressgateway-manager.

פתרון עקיף: הגדרות ה-CRD של istio.io לא נדרשות ב-Apigee Hybrid בגרסה 1.14.2 ואילך. יש שתי דרכים לפתור את הבעיה:

  • אם אתם לא משתמשים ב-Istio למטרה אחרת מלבד Apigee באשכול, מחקו את istio.io ה-CRD.
  • צריך לעדכן את apigee-ingressgateway-manager clusterrole כדי להוסיף הרשאות ל-istio.io.

אחרי כל אחת מהאפשרויות שלמעלה, צריך להפעיל מחדש את נקודות הגישה של apigee-ingressgateway-manager.

מחיקת CRD

  1. מציגים את הגדרות ה-CRD של istio.io באשכול בקובץ CSV:
    kubectl get crd -o custom-columns=NAME:metadata.name | grep istio.io > istio-crd.csv
  2. אופציונלי: שומרים את ה-CRD באופן מקומי למקרה שצריך ליצור אותם מחדש:
    kubectl get crd $(cat istio-crd.csv) -o yaml > istio-crd.yaml
  3. מוחקים את ה-CRD של istio.io:

    הרצת בדיקה:

    kubectl delete crd $(cat istio-crd.csv) --dry-run=client

    מריצים את הפקודה:

    kubectl delete crd $(cat istio-crd.csv)

עדכון clusterrole

  1. מורידים את ה-clusterrole הנוכחי של apigee-ingressgateway-manager:
    kubectl get clusterrole apigee-ingressgateway-manager-apigee -o yaml > apigee-ingressgateway-manager-apigee-clusterrole.yaml
  2. מעתיקים את clusterrole למיקום חדש:
    cp apigee-ingressgateway-manager-apigee-clusterrole.yaml apigee-ingressgateway-manager-apigee-clusterrole-added-istio-permissions.yaml
  3. מוסיפים את ההרשאות הבאות בסוף הקובץ:
    - apiGroups:
      - gateway.networking.k8s.io
      resources:
      - gatewayclasses
      - gateways
      - grpcroutes
      - httproutes
      - referencegrants
      verbs:
      - get
      - list
      - watch
    - apiGroups:
      - networking.istio.io
      resources:
      - sidecars
      - destinationrules
      - gateways
      - virtualservices
      - envoyfilters
      - workloadentries
      - serviceentries
      - workloadgroups
      - proxyconfigs
      verbs:
      - get
      - list
      - watch
    - apiGroups:
      - security.istio.io
      resources:
      - peerauthentications
      - authorizationpolicies
      - requestauthentications
      verbs:
      - get
      - list
      - watch
    - apiGroups:
      - telemetry.istio.io
      resources:
      - telemetries
      verbs:
      - get
      - list
      - watch
    - apiGroups:
      - extensions.istio.io
      resources:
      - wasmplugins
      verbs:
      - get
      - list
      - watch
    
  4. מחילים את התפקיד:
    kubectl -n APIGEE_NAMESPACE apply -f apigee-ingressgateway-manager-apigee-clusterrole-added-istio-permissions.yaml

אחרי שתבצעו את הפעולות שלמעלה, תצטרכו להפעיל מחדש את הפודים של apigee-ingressgateway-manager.

  1. מציגים את הפודים של ingress-manager שצריך להתקין או ליצור מחדש:
    kubectl get deployments -n APIGEE_NAMESPACE

    פלט לדוגמה:

    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-controller-manager       1/1     1            1           32d
    apigee-ingressgateway-manager   2/2     2            2           32d
    
  2. מפעילים מחדש את הפודים של ingress-manager:
    kubectl rollout restart deployment -n APIGEE_NAMESPACE apigee-ingressgateway-manager
  3. אחרי כמה דקות, בודקים את הפודים של apigee-ingressgateway-manager:
    watch -n 10 kubectl -n APIGEE_NAMESPACE get pods -l app=apigee-ingressgateway-manager

    פלט לדוגמה:

    NAME                                             READY   STATUS    RESTARTS   AGE
    apigee-ingressgateway-manager-12345abcde-678wx   3/3     Running   0          10m
    apigee-ingressgateway-manager-12345abcde-901yz   3/3     Running   0          10m
    
414499328 ‫hybrid 1.14.1 תוקן בגרסאות 1.14.3 ו-1.15.0 של Apigee Hybrid

‫ApigeeTelemetry יכול להיתקע במצב creating.

הבעיה הזו זוהתה בהתקנות של OpenShift.

פתרון עקיף: משנים את תבנית התרשים של apigee-operator כדי ליצור את הגישה הנכונה ל-clusterrole.

  1. עורכים את קובץ התבנית helm-charts/apigee-operator/templates/apigee-operators.yaml ומאתרים את ההגדרה של clusterrole‏ -apigee-manager-role-. הוא מתחיל ב:
    kind: ClusterRole
    metadata:
      name: apigee-manager-role-{{ include 'namespace' }}
    rules:
      ...
                  
  2. מוצאים את הבלוק - apiGroups: apiregistration.k8s.io ומוסיפים את המשאב apiservices/finalizers לרשימת המשאבים:
    - apiGroups:
      - apiregistration.k8s.io
      resources:
      - apiservices
      - apiservices/finalizers
      verbs:
      - create
      - delete
      - get
      - patch
      - update
      
  3. מוצאים את הבלוק - apiGroups: authorization.k8s.io ומוסיפים את הבלוק - apiGroups: apigee.cloud.google.com אחרי סוף הבלוק עם הטקסט הבא:
    - apiGroups:
      - apigee.cloud.google.com
      resources:
      - apigeetelemetries/finalizers
      verbs:
      - get
      - patch
      - update
    

    לדוגמה:

    - apiGroups:
      - authorization.k8s.io
      resources:
      - subjectaccessreviews
      verbs:
      - create
      - get
      - list
    - apiGroups:
      - apigee.cloud.google.com
      resources:
      - apigeetelemetries/finalizers
      verbs:
      - get
      - patch
      - update
    
  4. מחילים את השינויים על התרשים apigee-operator:

    הרצת בדיקה:

    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    לשדרג את התרשים:

    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f OVERRIDES_FILE \
    
402739748 Apigee פתיחה

מוצרי API מוגבלים ל-50 נתיבים. אם מוסיפים עוד נתיבים, מוצגת הודעת שגיאה: Operation group limit of 51 exceeded in Operation Config

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

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

291294211 Apigee פתיחה

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

פתרון עקיף: מאחזרים את כל סוגי העמלות בצד הלקוח לפני הסינון.

391140293 Apigee
Apigee Hybrid
FIXED

שינוי קנה המידה של פודים של Istio ingress יכול לגרום לשגיאה 503.

שינוי קנה המידה של pod-ים של Istio ingress עלול לגרום מדי פעם לשגיאת 503. אם מתרחשת שגיאת 503, ביומנים של מאזן העומסים מופיעה ההודעה הבאה: statusDetails: backend_connection_closed_before_data_sent_to_client.

פתרון עקיף: משנים ידנית את קנה המידה של pod-ים של Istio ingress.

368155212 ‫hybrid 1.14.0
hybrid 1.14.1
תוקן ב-hybrid 1.14.2

רוטציית פרטי הכניסה של Cassandra ב-ESS ולא ב-ESS לא פועלת בארגונים עם מגבלות פרוקסי משופרות.

אין השפעה על תעבורת הנתונים בזמן הריצה.

401624396 ‫hybrid 1.13.x
hybrid 1.14.x
פתיחה משימת השחזור של Apigee נכשלת בזמן שחזור הגיבויים של ספקי שירותי הענן GCP או HYBRID שנוצרו מהגדרה במספר אזורים. הבעיה הזו לא משפיעה על השחזור של CSI.

גיבויים שנוצרו מההגדרה במספר אזורים באמצעות ספקי שירותי הענן GCP ו-HYBRID מכילים מידע על כל האזורים ב-Hybrid שהיו קיימים כשנוצרה תמונת המצב. ומכיוון שהאזורים האלה כבר לא קיימים, משימת השחזור תתנגש עם המצב הנוכחי של Cassandra ותיכשל עם השגיאה הבאה: Unrecognized strategy option passed to NetworkTopologyStrategy.

401746333 ‫Apigee
hybrid 1.12.4
hybrid 1.13.3
hybrid 1.14.1
FIXED

הספרייה Nimbus JOSE + JWT עלולה לגרום ל-java.lang.ClassCircularityError כשמשתמשים במדיניות JavaCallout .

אם יש לכם ארגון עם Apigee hybrid שמופעלת בו מדיניות JavaCallout שמשתמשת בספריית Nimbus JOSE + JWT, אל תשדרגו לגרסאות hybrid 1.12.4,‏ hybrid 1.13.3 ו-hybrid 1.14.1.

397693324 ‫hybrid 1.14.0
hybrid 1.14.1
תוקן ב-hybrid 1.14.2

רוטציית פרטי הכניסה של Cassandra במספר אזורים, עם ESS ובלי ESS, תיכשל בכל האזורים חוץ מהראשון.

אין השפעה על תעבורת הנתונים בזמן הריצה.

כדי לפתור את הבעיה, צריך לפעול לפי הפתרון החלופי שמוצע.

391861216 ‫hybrid 1.13.x
hybrid 1.14.x
תוקן בגרסאות hybrid 1.13.3 ו-hybrid 1.14.1 הפעלה מחדש של Podים של Cassandra באשכול היברידי ששוחזר באמצעות ספקי שירותי הענן GCP או HYBRID תגרום ל-Podים לעבור למצב CrashLoopBackoff. הבעיה הזו לא משפיעה על השחזור של CSI.

הפודים של Cassandra יופעלו מחדש אחרי החלת השינויים בשינוי ברירת המחדל של Cassandra, למשל כשמפעילים מחדש את הגיבוי, וזה יגרום לבעיה הזו. ביומנים של pod של Cassandra במצב CrashLoopBackoff תופיע השגיאה הבאה: Cannot change the number of tokens from 512 to 256.

כדי לפתור את הבעיה, צריך לפעול לפי הפתרון החלופי שמוצע.

388608440 ‫hybrid 1.11.x
hybrid 1.12.x
תוקן בגרסה ההיברידית 1.12.4 ואילך משימת הגיבוי של Apigee לא מנקה את קובצי ה-snapshot הזמניים של Cassandra.

במקרים נדירים, משימת הגיבוי של Apigee לא מנקה את תמונות המצב הזמניות של Cassandra שנוצרו במהלך הגיבויים באמצעות ספקי שירותי הענן HYBRID או GCP. זה קורה רק אם בעיה בסיסית מונעת מתהליך הגיבוי להתחבר בהצלחה לשרת המרוחק או ל-Cloud Storage. אם בעיית החיבור נמשכת, תמונות המצב של Cassandra שנשארו יכולות להצטבר עם הזמן ולנצל את נפח האחסון בדיסקים של Cassandra. אם הבעיה משפיעה עליכם, צריך לתקן את בעיית החיבור הבסיסית ואז לפעול לפי השלבים שמפורטים במדריך לפתרון בעיות ב-Cassandra כדי למחוק ידנית את קובצי ה-snapshot של Cassandra.

392135466 ‫hybrid 1.14.0 פתיחה אי אפשר להשתמש בשרשור שרתי proxy עם mTLS כשמשתמשים במגבלות משופרות לשרתי proxy לכל סביבה
383334511 Apigee פתיחה נוצר ערך KVM עם שם לא צפוי

כשמשתמשים במדיניות KeyValueMapOperations עם היקף apiproxy, והפעולה <Put> של המדיניות נקראת בתהליך משותף דרך Flow Hook, הרשומה של ה-KVM נוצרת בשם של התהליך המשותף. הוא אמור להיווצר תחת השם של ה-proxy ל-API.

384937220

‫hybrid 1.14.0 FIXED יצירת גרסת Helm עלולה להיכשל כשיש כמה מארחים וירטואליים.

כשיש כמה מארחים וירטואליים, יכול להיות שהיצירה של גרסת Helm תיכשל בגלל שמות ApigeeRoute סותרים. כדי לעקוף את הבעיה, צריך להריץ את הפקודות הבאות לכל מארח וירטואלי כשיוצרים אותו:

kubectl annotate ar apigee-ingressgateway-internal-chaining-PROJECT_ID_SUFFIX -n APIGEE_NAMESPACE meta.helm.sh/release-name=NEW_ENV_GROUP_NAME --overwrite
kubectl annotate cert apigee-ingressgateway-internal-chaining-PROJECT_ID_SUFFIX -n APIGEE_NAMESPACE meta.helm.sh/release-name=NEW_ENV_GROUP_NAME --overwrite

כאשר:

  • ‫PROJECT_ID_SUFFIX היא סיומת ייחודית לשרשור פנימי של הפרויקט ב-Kubernetes. כדי למצוא את הסיומת הזו, משתמשים בפקודה הבאה:
    kubectl get svc -n apigee -l app=apigee-ingressgateway | grep internal-chaining

    הפלט אמור להיראות ככה:

    kubectl get svc -n apigee -l app=apigee-ingressgateway | grep internal-chaining
    apigee-ingressgateway-internal-chaining-my-project--1234567    ClusterIP  34.118.226.140  <none>    15021/TCP,443/TCP    5d6h

    בפלט לדוגמה, my-project--1234567 הוא PROJECT_ID_SUFFIX.

  • ‫APIGEE_NAMESPACE הוא מרחב השמות של Apigee.
  • ‫NEW_ENV_GROUP_NAME הוא השם של קבוצת הסביבות הנוספת. צריך לעדכן את הערך הזה לכל מארח וירטואלי.

לא רלוונטי

Apigee Hybrid פתיחה חשבון שירות לא תקין יכול לשלוח את ה-API‏ UpdateControlPlaneAccess ללולאת ניסיון חוזר.

אם משתמש מספק חשבון שירות לא חוקי ל-API‏ UpdateControlPlaneAccess, הפעולה נכנסת ללולאת ניסיון חוזר, וכך למעשה נמנעת מהארגון האפשרות להפעיל את ה-API עד שהזמן הקצוב לפעולה יסתיים.

373722434 ‫hybrid 1.13.x תוקן החל מגרסה 1.13.2 של Apigee Hybrid ואילך משימת הגיבוי של Apigee לא יכולה להעלות לקטגוריות של Cloud Storage עם מדיניות שמירת נתונים.

כשמשתמשים בספק שירותי הענן GCP, משימת הגיבוי של Apigee לא יכולה להעלות לקטגוריות של Cloud Storage עם מדיניות שמירת נתונים. יכול להיות שקובצי הגיבוי יישארו בקטגוריה של Cloud Storage עם גודל קובץ של 0 בייטים.

פתרון עקיף: משביתים את כללי מדיניות שמירת הנתונים בקטגוריה של Cloud Storage.

341099433

Apigee Hybrid פתיחה הרכיב apigee-logger לא תומך באיחוד שירותי אימות הזהות של עומסי עבודה.

‫apigee-logger משתמש בחשבונות שירות של Google IAM כדי לשלוח יומנים ל-Cloud Logging. הסיבה לכך היא ש-FluentBit לא תומך באיחוד שירותי אימות הזהות של עומסי עבודה, ולכן apigee-logger לא יכול להשתמש בתכונה הזו.

לא רלוונטי

Apigee Hybrid פתיחה ב-Apigee Hybrid אין תמיכה במעקב מבוזר בארגונים שמשתמשים במיקום אחסון הנתונים.

לא רלוונטי

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

270574696

Apigee FIXED ב-Apigee אין תמיכה ב- Cloud External Key Manager.

268104619

Apigee
Apigee Hybrid
פתיחה במדיניות OASValidation, כשמציינים סוג מערך בכותרת, מעבד ההודעות יציג שגיאה, גם אם הקלט תקין.

364872027

Apigee
Apigee Hybrid
FIXED שגיאת ניתוח PEM במדיניות JWT/JWS בגלל פורמט לא סטנדרטי

בגרסאות 1.13 ומעלה של Apigee ו-Apigee Hybrid, כל חריגה מהפורמט הנדרש של מפתחות PEM שמשמשים בכללי המדיניות של Apigee JWS או JWT עלולה לגרום לשגיאת ניתוח. לדוגמה, אסור להציב תו כלשהו שאינו תו שורה חדשה (/n) מיד לפני השורה "-----END" (גבול לאחר אנקפסולציה), והדבר יגרום לשגיאה.

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

למידע נוסף על הקידוד שמשמש למפתחות ציבוריים או פרטיים, קראו את IETF RFC 7468.

310191899

Apigee
Apigee Hybrid
פתיחה זמן קצוב לתפוגה בזמן פריסה של שרתי proxy ל-API ותהליכים משותפים

יכול להיות שנקודות הקצה הבאות יחוו זמן קצוב לתפוגה כשמשתמשים בהן עם נפח גבוה של שאילתות לשנייה (QPS):

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

329304975

Apigee FIXED מגבלה על מספר נתיבי הבסיס לכל סביבה

כדי למנוע כשלים אפשריים בפריסה של גרסאות proxy ל-API, ב-Apigee יש מגבלה זמנית של 1,000 נתיבי בסיס לכל סביבה.

בזמן שהמגבלה הזו בתוקף, אתם יכולים לפרוס עד 1,000 גרסאות של שרתי proxy ל-API (כל אחת מכילה נתיב בסיס אחד) לכל סביבה. אם שרתי ה-proxy ל-API או הגרסאות שלהם מכילים יותר מנתיב בסיס אחד, המספר הכולל של נתיבי הבסיס בכל סביבה לא יכול להיות יותר מ-1,000.

333791378

‫hybrid 1.12.0 פתיחה תכונות הגיבוי והשחזור של Cassandra לא נתמכות בכלי ההעברה של Helm

בקטע פתרון בעיות מוסבר איך להתקין תיקון זמני.

310384001

‫hybrid 1.11.0 פתיחה כשלים באימות אישורים עשויים להחזיר תגובת שגיאה 502 במקום 503 כשמשתמשים מוסיפים את התג <Enforce>true</Enforce> בבלוק <SSLInfo> של היעד לאימות ברירת המחדל של אישורי נקודת קצה (endpoint) של יעד TLS.

289583112

Apigee פתיחה כללי המדיניות של OASValidation לא פועלים עם דרישות אבטחה גלובליות במפרטים של OpenAPI

אם מדיניות OASValidation מציינת <OASResource> עם דרישות אבטחה שמוגדרות ברמה גלובלית, דרישות האבטחה לא נאכפות.

פתרון עקיף: כדי להבטיח אכיפה, צריך להגדיר את כל דרישות האבטחה ברמת הפעולה במפרט OpenAPI שמועבר ברכיב <OASResource> של מדיניות OASValidation.

205666368

‫Apigee
hybrid 1.10.2
hybrid 1.10.3
תוקן ב-Apigee 1-10-0-apigee-6 וב-
Hybrid 1.10.3-hotfix.1
כברירת מחדל, Apigee Hybrid לא מאמת את אישור היעד.

מידע על הגדרת אפשרויות TLS בנקודת קצה (endpoint) או בשרת של היעד.

295929616

‫hybrid מגרסה 1.10.0 ואילך תוקן בגרסה 1.10.3 של Hybrid ההתקנה של Apigee Hybrid בגרסה 1.10 ב-OpenShift‏ (OSE) עלולה להיכשל בגלל שגיאות שקשורות למחסור בזיכרון.

יכול להיות שההתקנה או השדרוג ל-Apigee Hybrid בגרסאות 1.10.0 עד 1.10.2 ייכשלו ב-OSE בגלל בעיות של חוסר בזיכרון. הבעיה תוקנה בגרסה 1.10.3 של Apigee Hybrid.

292118812

‫hybrid 1.10.1 FIXED יכול להיות ש-apigee-udca לא יכבד את ההגדרות של שרת ה-proxy ל-HTTP.

אם חומת האש מאלצת את כל תעבורת הנתונים לעבור דרך שרת proxy להעברה, יכול להיות ש-apigee-udca ייכנס למצב של השהיה לפני ניסיון חוזר (backoff) של לולאת קריסה.

292558790

‫Apigee
Hybrid בגרסה 1.8.0 ואילך
פתיחה מדיניות OASValidation נכשלת עם השגיאה Unable to parse JSON.
  • המדיניות OASValidation נכשלת כשתוכן ה-JSON לא תואם לתבנית הצפויה. לדוגמה, אם כותרת מצפה לערך בפורמט <text>@<text> והיא מאוכלסת בטקסט שחסר בו הסמל @, המדיניות תיכשל עם שגיאת Unable to parse JSON.
  • אם במדיניות OASValidation מצוין <OASResource> שמכיל פרמטר path שמשתמש בסכימה $ref, המדיניות תיכשל ותופיע השגיאה Unable to parse JSON - Unrecognized token.

    פתרון עקיף: אל תשתמשו ב-$ref בפרמטרים של path במפרט OpenAPI שצוין ברכיב <OASResource>.

297012500

‫Apigee
Hybrid בגרסה 1.8.0 ואילך
פתיחה בעיות בפריסה עם אימות OAS בזמן שימוש בהפניה מעגלית.
  • הפריסה של Apigee תיכשל במדיניות האימות של OAS כשמשתמשים בהפניות מעגליות במפרט של OpenAPI 3.0.0, כי היא נכנסת ללולאה אינסופית.
  • פתרון עקיף: משתמשים במפרט OpenAPI בפורמט YAML בלי הפניות מעגליות.

289254725

‫Apigee
‏Apigee 1-10-0-apigee-3
‏hybrid 1.8.8
‏hybrid 1.9.3
תוקן ב-Apigee 1-10-0-apigee-5
תוקן ב-hybrid
יכול להיות שפריסות של שרתי proxy שכוללות את המדיניות OASValidation ייכשלו.

פריסות של שרתי proxy שכוללות את המדיניות OASValidation עלולות להיכשל אם:

  • מפרט ה-OpenAPI שמשמש לאימות במדיניות OASValidation הוא בפורמט YAML, וגם
  • מפרט OpenAPI בפורמט YAML מכיל מספר נקודה צפה (floating point). לדוגמה:
    schema:
    type: number
    example: 2.345

284500460

Apigee
Apigee 1-10-0-apigee-1
FIXED עלייה בזמן האחזור של המדיניות Message Logging כשמשתמשים בה עם Cloud Logging.

כדי למנוע עלייה בזמן האחזור בתגובות ללקוח, צריך לצרף את המדיניות Message Logging ל-PostClientFlow. מידע נוסף על השימוש בכללי מדיניות ב-PostClientFlows זמין במאמר שליטה בשרתי proxy ל-API באמצעות תהליכים.

282997216

‫hybrid מגרסה 1.8.0 ואילך
hybrid מגרסה 1.9.0 ואילך
פתיחה אי אפשר להשתמש בתווים מיוחדים בסיסמה של Cassandra Jolokia

הסיסמה של Cassandra Jolokia יכולה להכיל רק תווים אלפאנומריים. שימוש בתווים מיוחדים (כולל, בין היתר, "!", "@", "#", "$", "%", "^", "&", ו-"*") עלול לגרום לכשל בהפעלה של Cassandra.

270371160

‫hybrid מגרסה 1.9.0 ואילך FIXED שער הכניסה של Apigee תומך רק בפרוטוקול/הצפנות של TLS1.2 ואילך

שער הכניסה של Apigee תומך רק ב-TLS1.2 ואילך, ולא בגרסאות קודמות של TLS.

269139342

‫hybrid מגרסה 1.7.0 ואילך FIXED apigeectl getOrg לא פועל לפי ההגדרות של HTTP_PROXY ב-overrides.yaml

אימות הארגון ב-Apigee לא פועל לפי קבוצת כללי שרת ה-Proxy להעברת HTTP שמוגדרים ב-overrides.yaml. מגדירים את validateOrg: false כדי לדלג על האימות הזה.

266452840

‫Apigee
hybrid מגרסה 1.7.0 ואילך
hybrid מגרסה 1.8.0 ואילך
hybrid מגרסה 1.9.0 ואילך
FIXED Web sockets not working with Anthos Service Mesh 1.15.3 in Apigee X and Apigee Hybrid

בנסיבות מסוימות, שקעי אינטרנט לא פועלים ב-Apigee X וב-Apigee Hybrid כשמשתמשים ב-Anthos Service Mesh‏ 1.15.3-asm.6.

287922301

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

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

242213234

Apigee FIXED מוצר API לא נטען ומוצגת השגיאה "no connections available"

יכול להיות שהשגיאה הזו תופיע כשמנסים לטעון מוצרי API: "המוצרים לא נטענו בהצלחה. ‫Error: no connections available from the Apigee connect agent(s).‎"

הבעיה מתרחשת אחרי שמפעילים את VPC Service Controls בפרויקט בענן ב-Google Cloud ומוסיפים את iamcredentials.googleapis.com כאחד מהשירותים המוגבלים בגבולות הגזרה לשירות.

פתרון עקיף: יוצרים באופן ידני כלל תעבורת נתונים יוצאת, כמו הכלל הבא:

-egressTo:
    operations:
    -serviceName: "iamcredentials.googleapis.com"
        methodSelectors:
        -method:
    resources:
    -projects/608305225983
  egressFrom:
    identityType: ANY_IDENTITY

247540503

‫hybrid מגרסה 1.7.0 ואילך
hybrid מגרסה 1.8.0 ואילך
FIXED מרוץ תהליכים עם חיפוש של מפתח הצפנה יכול לגרום לכשלים בחיפוש KVM.

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

258699204

‫hybrid מגרסה 1.8.0 ואילך FIXED בקשות ברירת המחדל לזיכרון והמגבלות לפודים של מדדים השתנו בטעות בגרסה 1.8.x.

אם הפודים apigee-telemetry-app או apigee-telemetry-proxy לא פועלים, משנים את המאפיינים metrics resources requests ו-resources limits כך שיתאימו לברירות המחדל הבאות ב הפניה למאפייני הגדרה: מדדים.

מאפיין של מערך הגדרות אישיות ערך ברירת המחדל
metrics.aggregator.resources.requests.memory: 512Mi
metrics.aggregator.resources.limits.memory: 3Gi
metrics.app.resources.requests.memory: 512Mi
metrics.app.resources.limits.memory: 1Gi
metrics.appStackdriverExporter.resources.requests.memory: 512Mi
metrics.appStackdriverExporter.resources.limits.memory: 1Gi
metrics.proxy.resources.requests.memory: 512Mi
metrics.proxy.resources.limits.memory: 1Gi
metrics.proxyStackdriverExporter.resources.requests.memory: 512Mi
metrics.proxyStackdriverExporter.resources.limits.memory: 1Gi

מחילים את השינויים באמצעות apigeectl apply עם הדגל ‑‑telemetry:

apigeectl apply --telemetry -f overrides.yaml

260324159

‫Apigee 1-9-0-apigee-16 FIXED פריסות של proxy ל-API ושל תהליכים משותפים נמשכות עד 30 דקות.

בנסיבות מסוימות, פריסה של שרתי proxy ל-API ותהליכים משותפים במישור זמן הריצה עלולה להימשך בין 20 ל-30 דקות בגלל שגיאת socket closed בסנכרון.

214447386

הכול פתיחה ההודעה "config not modified" מוצגת ביומני הביקורת של בקרת הרשאות גישה לנתונים ב-Apigee API בתור Error.

הפעולה הזו אמורה להתבצע כל דקה, והיא לא משפיעה על עלות החיוב.

260772383

‫hybrid מגרסה 1.8.0 ואילך פתיחה שגיאת קישור שקע בפלטפורמת AKS

אם מתקינים את Apigee Hybrid ב-AKS, יכול להיות שתופיע השגיאה הבאה:

envoy config listener '0.0.0.0_443' failed to bind or apply socket options: cannot bind '0.0.0.0:443': Permission denied

פתרון עקיף: מוסיפים את הבית הבא של svcAnnotations לקובץ השינויים:

ingressGateways:
- name: INGRESS_NAME
...
svcAnnotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"

הגדרת סביבת זמן הריצה ההיברידית אפשר גם לקרוא את המאמר שימוש במאזן עומסים פנימי עם AKS.

241786534

‫hybrid מגרסה 1.8.0 ואילך FIXED לפעמים MART לא מצליח להתחבר ל-FluentD.

כשמשתמשים ב-UDCA ברמת הארגון, לפעמים MART לא מצליח להתחבר ל-FluentD. ב-Apigee Hybrid גרסה 1.8, ברירת המחדל היא UDCA ברמת הארגון. מידע נוסף זמין במאמר orgScopedUDCA בחומר העזר בנושא מאפייני הגדרות אישיות.

לא רלוונטי ‫hybrid מגרסה 1.6.0 ואילך פתיחה ‫apigee-logger לא פועל ב-Anthos BareMetal עם CentOS או RHEL.

אחרי המעבר של apigee-logger מ-fluend ל-fluent-bit בגרסה 1.6.6 של Apigee Hybrid, מתעד הנתונים הפסיק לפעול ב-Anthos BareMetal עם CentOS או RHEL.

207762842 ‫hybrid מגרסה 1.5.0 ואילך FIXED היומנים לא נשלחים ל-Cloud Logging על ידי apigee-logger.

ההגדרות הנוכחיות של apigee-logger, כולל בדיקות תקינות, לא תואמות לסביבת זמן הריצה של Kubernetes, ולכן היומנים לא נשלחים ל-Cloud Logging כמו שצריך. הבעיה הזו גם גורמת לפודים של apigee-logger לקרוס באופן קבוע. הבעיה הזו משפיעה על התקנות של Apigee Hybrid ב-AKS, ב-Anthos Bare Metal ובפלטפורמות אחרות. ‫שימו לב שבמקרים מסוימים הבעיה הזו גורמת לנפח יומנים מוגזם.

191291501, 191000617 Apigee FIXED שינוי כתובת האימייל של ישות מפתח ייכשל בממשק המשתמש.
191002224 ‫hybrid מגרסה 1.5.0 ואילך FIXED שינוי כתובת אימייל נכשל כשמשתמשים ב- PUT /organizations/{org_name}/developers/{developer_email} API.
184555974 ‫hybrid מגרסה 1.5.0 ואילך FIXED ‫Fluentd של apigee-logger לא יכול לנתח יומנים באשכול OpenShift.
לא רלוונטי העברת פריסות לארכיון פתיחה אי אפשר לנהל ולנפות באגים בפריסות של ארכיונים ב-Apigee בממשק המשתמש

בממשק המשתמש של Apigee אי אפשר להציג, לאשר את סטטוס הפריסה או לנהל את פריסות הארכיון, כפי שמתואר במאמר פריסת proxy ל-API, או להשתמש בממשק המשתמש של Debug כפי שמתואר במאמר שימוש ב-Debug. כדי לעקוף את הבעיה, אתם יכולים להשתמש ב-gcloud או ב-API כדי להציג את כל פריסות הארכיון בסביבה ולהשתמש ב- Debug API.

לא רלוונטי העברת פריסות לארכיון פתיחה אי אפשר להחזיר פריסה של ארכיון לגרסה קודמת

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

421402073

‫Apigee ב-VS Code פתיחה אימות של Google במדיניות לא נתמך ב-Apigee ב-Visual Studio Code‏ (VS Code)

אימות של Google במדיניות ServiceCallout ו-ExternalCallout, כפי שמתואר במאמר שימוש באימות של Google, לא נתמך ב-Apigee ב-VS Code.

422757662 ‫Apigee 1-15-0-apigee-5
hybrid 1.15.0
תוקן ב-Apigee 1-15-0-apigee-7 וב-Apigee 1-15-0-apigee-8

כותרות x-b3 לא זמינות כש-DistributedTrace מושבת

בגרסאות Apigee 1-15-0-apigee-5 ו-hybrid 1.15.0, ‏ Apigee הפסיקה לשלוח כותרות x-b3 לנקודות קצה (endpoints) לטירגוט כשהתכונה Distributed Trace מושבתת. עם זאת, בחלק מההתקנות של Apigee, כותרות x-b3 נשלחו בלי קשר להפעלה או להשבתה של Distributed Trace. לכן השינוי הזה בוטל החל מגרסה 1-15-0-apigee-7 של Apigee.

146222881 ‫hybrid מגרסה 1.3.0 ואילך FIXED שגיאה: כותרת HTTP לא תקינה

שגיאה של כותרת HTTP לא חוקית: כניסת ה-Istio מעבירה את כל תגובות היעד הנכנסות לפרוטוקול HTTP2. מעבד הבקשות ההיברידי תומך רק ב-HTTP1, ולכן יכול להיות שתופיע השגיאה הבאה כשמתבצעת קריאה ל-proxy ל-API:

http2 error: Invalid HTTP header field was received: frame type: 1, stream: 1,

name: [:authority], value: [domain_name]

אם השגיאה הזו מופיעה, אתם יכולים לבצע אחת מהפעולות הבאות כדי לפתור את הבעיה:

  • משנים את שירות היעד כדי להשמיט את הכותרת Host בתגובה.
  • אם צריך, מסירים את הכותרת Host באמצעות המדיניות AssignMessage ב-proxy ל-API.

420985360

פורטל משולב פתיחה SmartDocs
  • ‫Apigee תומך ב-OpenAPI Specification 3.0 כשאתם מפרסמים את ממשקי ה-API באמצעות SmartDocs בפורטל, אבל קבוצת משנה של תכונות עדיין לא נתמכת. לדוגמה, מאפייני allOf לשילוב ולהרחבה של סכימות.

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

  • לכלי "התנסות עם ה-API" יש את המגבלות הבאות:
    • הכותרת Accept מוגדרת לערך application/json, בלי קשר לערך שמוגדר ל-consumes במפרט OpenAPI.
    • אין תמיכה בכותרות של בקשות מסוג שאינו מחרוזת.
לא רלוונטי פורטל משולב פתיחה אדמין בפורטל

  • בשלב הזה אין תמיכה בעדכונים בו-זמניים של הפורטל (כמו עריכות של דפים, עיצובים, CSS או סקריפטים) על ידי כמה משתמשים.
  • אם מוחקים דף של מאמרי עזרה של ה-API מהפורטל, אי אפשר ליצור אותו מחדש. צריך למחוק את מוצר ה-API, להוסיף אותו מחדש וליצור מחדש את מאמרי העזרה של ה-API.
  • כש מתאימים אישית את העיצוב של הפורטל, יכול להיות שיעברו עד 5 דקות עד שהשינויים יחולו באופן מלא.
לא רלוונטי פורטל משולב פתיחה התכונות של הפורטל

בגרסה עתידית, החיפוש ישולב בפורטל המשולב.

לא רלוונטי פורטל משולב פתיחה ספק זהויות ב-SAML

אי אפשר להשתמש ביציאה יחידה (SLO) עם ספק הזהויות של SAML בדומיינים מותאמים אישית. כדי להפעיל דומיין מותאם אישית עם ספק זהויות SAML, צריך להשאיר את השדה "כתובת URL ליציאה" ריק כש מגדירים את הגדרות ה-SAML.

191815997 ‫hybrid מגרסה 1.6.0 ואילך FIXED אם לקוח היברידי מגדיר שרת proxy להעברה ל-proxy ל-API, אסימון Google לא יפעל אלא אם יש לו גישה ישירה אל *.googleapis.com.
לא רלוונטי Apigee תוקן ב-Apigee 1-12-0-apigee-2 וב-hybrid 1.12.0 בפיקוח על API וב-Cloud Monitoring מוצגות עליות חדות חריגות

  • עליות חדות חריגות במספר הבקשות והתגובות של שרת proxy ל-API (לשרת proxy וליעדים)

    הנה דוגמה לעלייה חדה כזו:

    (תמונה גדולה יותר)

  • בגלל באג, המערכת רושמת את הספירה באופן שגוי למשך תקופה קצרה, ואז הספירה מתוקנת. זה קורה כשיש ירידה בתנועת ה-API (שגורמת לצמצום אנכית בהתאם לעומס (scale down) של API Gateways).
  • כדי להבחין בין עלייה חדה אמיתית בבקשות לבין הבעיה הזו, צריך לעיין בדף API Analytics (במיוחד בדפים Proxy Performance ו-Target Performance)

המדדים המושפעים:

  • apigee.googleapis.com/proxyv2/request_count
  • apigee.googleapis.com/proxyv2/response_count
  • apigee.googleapis.com/targetv2/request_count
  • apigee.googleapis.com/targetv2/response_count

מדדים חדשים

כדי להימנע מהבעיה הזו, אתם יכולים להשתמש במדדים החדשים.

מדד תיאור
apigee.googleapis.com/proxy/request_count מספר הבקשות לשרת ה-proxy של Apigee מאז שהדגימה האחרונה תועדה.
apigee.googleapis.com/proxy/response_count מספר התשובות שנשלחו על ידי שרת ה-proxy ל-API של Apigee.
apigee.googleapis.com/proxy/latencies התפלגות זמני האחזור, שמחושבים מהזמן שבו הבקשה התקבלה על ידי שרת ה-proxy של Apigee ועד לזמן שבו התגובה נשלחה משרת ה-proxy של Apigee ללקוח.
apigee.googleapis.com/target/request_count מספר הבקשות שנשלחו ליעד של Apigee מאז שהדגימה האחרונה תועדה.
apigee.googleapis.com/target/response_count מספר התגובות שהתקבלו מהיעד של Apigee מאז שהדגימה האחרונה תועדה.
apigee.googleapis.com/target/latencies התפלגות זמני האחזור, שמחושבים מהזמן שבו הבקשה נשלחה ליעד של Apigee ועד שהתגובה התקבלה על ידי שרת ה-proxy של Apigee. הזמן לא כולל את התקורה של שרת ה-proxy ל-API של Apigee.

ב-Apigee Hybrid, ראו: סקירה כללית על איסוף מדדים והצגת מדדים.

203778087 ‫hybrid בגרסה 1.5.3 ואילך פתיחה ‫apigee-stackdriver-logging-agent פועל כרגע כ-root.

פתרון עקיף: השבתת סוכן Logging ב-hybrid.

205629443 Apigee FIXED אם ServiceCallout הוא fire and forget (אין תג <Response>), יכול להתרחש מרוץ תהליכים אם יש מדיניות אחרת שמתרחשת אחריו.

פתרון עקיף: כדי לשמור על ההתנהגות של "שגר ושכח":

  1. מוסיפים את <Response>calloutResponse</Response> ל-ServiceCallout.
  2. מגדירים את continueOnError להיות true.
207719377 Apigee תוקן ב-Apigee 1-11-0-apigee-1 אם יש יותר ממדיניות SpikeArrest אחת בחבילה, תתרחש שגיאת 502.

פתרון עקיף: כדי למנוע את הבעיה, אל תשתמשו ביותר ממדיניות SpikeArrest אחת בשרת ה-proxy.

209097822 ‫Apigee Hybrid מגרסה 1.5.0 ואילך
FIXED יכול להיות שעדכונים דינמיים של קצב התנועה במדיניות Spike Arrest לא ישתקפו באופן מיידי

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

פתרון עקיף: אם השיעור צריך להיכנס לתוקף באופן מיידי, פורסים מחדש את שרת ה-proxy עם משתנה עזר חדש. אפשר גם להשתמש בשני רכיבי Spike Arrest מותנים עם משתני זרימה שונים כדי לשנות את הקצב.

221305498 Apigee פתיחה יכול להיות שבפיקוח על ה-API יוצג קוד השגיאה "(not set)".

בפיקוח על API של שרתי proxy ל-API ניתנים להגדרה, יכול להיות שיוצג קוד שגיאה '(not set)' בתגובות עם סטטוס שאינו 2xx מהיעד.

246774745 Apigee FIXED המערכת מתעלמת מהערך של io.timeout.millis כשמשתמשים בו עם כמה יעדים דינמיים.

אם שרת proxy מגדיר שני ערכי io.timeout.millis או יותר בשני תהליכים או יותר שמשתמשים באותו מארח יעד, רק ערך io.timeout.millis אחד יכובד.

245664917 ‫hybrid 1.8.x FIXED אפשר להתעלם משגיאת השדרוג של Apigee Hybrid

במהלך השדרוג ל-Apigee hybrid 1.8.x, אחרי שמריצים את apigeectl init ומוודאים ש-check-ready הצליח, אם צופים ב-pods, יכול להיות שמשימת האימות של הסכימה של Cassandra נמצאת במצב שגיאה. זה מצב לא מזיק, ואפשר להמשיך בבטחה לשלב הבא בתהליך השדרוג.

300660653 Apigee FIXED צריכה להיות שגיאה, אבל היא לא מוחזרת כשפורסים שרתי proxy עם אותו נתיב לכמה סביבות שמצורפות לאותו מופע ולקבוצת הסביבות

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

פתרון עקיף: במהלך הפריסה ואחריה, צריך לוודא שאין התנגשויות בנתיב הבסיס עם שרתי ה-proxy שנפרסו, ולתקן לפי הצורך.

301458133 Apigee FIXED בחלק מהניסיונות לפרוס שרת proxy מופיעה הודעת שגיאה שהגרסה לא ניתנת לשינוי

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

פתרון עקיף: לוחצים על החץ לתפריט הנפתח לצד הלחצן Save ובוחרים באפשרות Save as new revision. לאחר מכן, מנסים שוב לפרוס.

301845257 Apigee FIXED ניסיון לפרוס יותר מ-800 שרתי proxy בקבוצת סביבות נכשל ומוצגת הודעת שגיאה. המגבלה שבה מוחזרת שגיאה נמוכה מ-800 כשנתיבי הבסיס ארוכים מ-15 תווים.

315820718 Apigee FIXED בבקשות proxy של gRPC, הטריילרים של gRPC מוסרים מהתגובה

כשמתבצעת קריאה לשרת יעד של gRPC, הטריילר היחיד שמוחזר הוא הטריילר "grpc-status". כל שאר הטריילרים יוסרו מהתגובה.

341157011 Apigee FIXED מפרטים שנוצרו באמצעות Gemini Code Assist ב-Cloud Code וכוללים גם תווים מסוג UTF-8 שאינם ASCII לא מנותחים בצורה נכונה כשהם מועלים ל-API hub.

כתוצאה מכך, API Hub לא יחלץ פעולות, הגדרות ומטא-נתונים אחרים בצורה נכונה.
338285095 Apigee FIXED אפליקציות שמשויכות ל-AppGroup לא מופיעות ברשימת האפליקציות בממשק המשתמש של Apigee. כתוצאה מכך, המשתמשים לא יכולים לגשת לדף פרטי האפליקציה במסוף. עד שהבעיה תיפתר, אי אפשר להשתמש בחיפוש במסוף עם שם חלקי של אפליקציה או מפתח API כדי לחפש את האפליקציה.

הבעיה לא משפיעה על ארגונים של Apigee Hybrid, כי הם משתמשים בממשק המשתמש הקלאסי כדי לראות את פרטי האפליקציה.

פתרון חלקי: אפשר לראות רשימה של כל האפליקציות באמצעות ממשקי ה-API. למידע נוסף, ראו organizations.apps.list.
355714868 מונטיזציה
Apigee Hybrid
הבעיה תוקנה בגרסאות hybrid 1.14.3,‏ hybrid 1.15.1 ו-hybrid 1.16.0 נתוני עמלות חוזרות, עמלות הקמה ועמלות טעינה לא מתועדים או מחויבים בארגונים היברידיים

בארגונים היברידיים עם מונטיזציה, נתוני העמלות החוזרות (RECURRING_FEE), עמלות ההקמה (SETUP_FEE) ועמלות הטעינה (TOPUP_FEE) לא מתועדים או מחויבים בתשלום לאחר השימוש (postpay). בחיוב בתשלום מראש, העמלות האלה מנוכות מהארנק אבל לא מדווחות.
438850078 Apigee פתיחה

רקורסיה אינסופית מתרחשת במדיניות OASValidation כשתגובה מה-backend מכילה סוג של מאפיין מבחין שזהה לסכימת ההורה. הבעיה הזו יכולה לגרום לStackOverflowError.

449012244 Apigee פתיחה

צריך להשתמש בהגדרות נפרדות של נקודות קצה לטירגוט של יעדי SSE (אירועים שנשלחים מהשרת). שילוב של נקודות קצה מסוג SSE ונקודות קצה שלא מסוג SSE עלול לגרום להתנהגות לא עקבית, כמו משתני זרימה ריקים של response.content.

445936920 ‫Apigee 1-16-0-apigee-2 ואילך פתיחה

בעיות בהגדרות ה-DNS שלא זוהו בעבר עלולות לגרום עכשיו לשגיאות DNS. בגרסה הזו הוסרה הפונקציונליות של חלופת DNS אוטומטית שהייתה בגרסה 1-16-0-apigee-2. ההסרה הזו מבטלת את העמידות של הפלטפורמה להגדרות שגויות של DNS, ועכשיו עלולות להופיע שגיאות DNS.

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

383372330 ‫Apigee Emulator מגרסה 1.13.0 עד גרסה 1.15.1 (לא כולל) תוקן בגרסאות 1.15.1 ואילך של Apigee Emulator

כל פריסות שרתי ה-proxy נכשלות באופן מקומי עם הודעות שגיאה שכוללות את Error parsing deployment report as JSON:

06/13/2025 6:45 PM EMULATOR INFO Deploying environment testenv, to Container apigee-1.14.2 (1.14.2)
06/13/2025 6:45 PM EMULATOR ERROR Error parsing deployment report as JSON
06/13/2025 6:45 PM EMULATOR ERROR null
06/13/2025 6:45 PM EMULATOR ERROR Environment testenv deployment, to Container apigee-1.14.2 (1.14.2) failed with Error: 500
06/13/2025 6:45 PM EMULATOR ERROR Deploy to Container apigee-1.14.2 (1.14.2), failed with Error: Environment testenv deployment, to Container apigee-1.14.2 (1.14.2) failed with Error: 500
תיקון: צריך לעדכן לגרסה 1.15.1 או גרסה חדשה יותר של Apigee Emulator.