آنتی الگوهای مهاجرت Apigee Edge به Apigee X

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

به عنوان یک مشتری فعلی Apigee Edge، ممکن است تصمیم بگیرید که نصب خود را به Apigee X منتقل کنید تا از قابلیت‌های جدید یا دسترسی منطقه‌ای متفاوت بهره‌مند شوید.

این صفحه، ضدالگوهای موجود در پیکربندی شما را که باید قبل از مهاجرت به Apigee X به آنها رسیدگی کنید، و همچنین سایر تغییرات رفتاری که باید قبل از مهاجرت از آنها آگاه باشید، شرح می‌دهد.

فهرست گسترده‌تر الگوهای ضد Apigee Edge، شیوه‌های استفاده‌ای را شرح می‌دهد که در هر صورت باید از آنها اجتناب شود. این صفحه شیوه‌های استفاده‌ی نامطلوب خاصی را شرح می‌دهد که مانع مهاجرت می‌شوند. اکنون این موارد را حل کنید تا از بروز مشکلات هنگام مهاجرت به Apigee X جلوگیری کنید.

برنامه‌های بدون محصولات API

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

برنامه‌هایی وجود دارند که محصول API ندارند.

تفاوت بین Apigee Edge و Apigee X:

لبه آپیجی آپیجی ایکس
می‌توان یک برنامه و اعتبارنامه را طوری پیکربندی کرد که به هیچ محصول API مرتبط نباشد. این برنامه عملاً به همه محصولات API دسترسی دارد. هر برنامه باید طوری پیکربندی شود که حداقل به یک محصول API دسترسی داشته باشد. هیچ راهی برای دسترسی ضمنی به همه محصولات API وجود ندارد. می‌توانید یک برنامه را طوری پیکربندی کنید که به همه محصولات API دسترسی داشته باشد، اما باید این کار را صریحاً انجام دهید.
خیر.

وضوح: برنامه‌های بدون محصولات API

هر اعتبارنامه برنامه را حداقل با یک محصول API مرتبط کنید. برای اطلاعات بیشتر در مورد نحوه انجام این کار، به ثبت برنامه‌ها و مدیریت کلیدهای API مراجعه کنید.

یک مسیر آسان، اختصاص دسترسی به هر برنامه برای همه محصولات API است. این معادل کاری است که در Apigee Edge امکان‌پذیر است. چالش این است که اگر می‌خواهید رویکرد "حداقل امتیاز" را دنبال کنید، باید حداقل لیست محصولات API را که هر اعتبارنامه برنامه باید به آنها دسترسی داشته باشد، تعیین کنید. می‌توانید این را با گزارش‌های Apigee Edge Analytics، بر اساس شناسه مشتری، تجزیه و تحلیل کنید.

حافظه پنهان بدون زمان انقضا

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

حافظه پنهان (یا حافظه‌های پنهان) زمان انقضا ندارند.

تفاوت بین Apigee Edge و Apigee X:

لبه آپیجی آپیجی ایکس
از ایجاد، به‌روزرسانی و حذف توصیف‌گرهای منابع کش پشتیبانی می‌کند. از ایجاد، به‌روزرسانی یا حذف توصیف‌گرهای منابع کش پشتیبانی نمی‌کند.
خیر

حل مشکل: حافظه پنهان بدون زمان انقضا

برای همه حافظه‌های پنهان، زمان انقضا تعیین کنید.

عبارات فیلتر JSONPath روی مسیرهای نامشخص

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

برای مسیرهای غیر قطعی، پرس و جو کردن نتیجه یک عبارت فیلتر بخشی از مشخصات JSONPath نیست. به https://goessner.net/articles/JsonPath/ مراجعه کنید.

تفاوت بین Apigee Edge و Apigee X:

هنگام پیمایش این ساختار نمونه،

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

با عبارت $..books[?(@.name == 'A')][0] ،

لبه آپیجی آپیجی ایکس
خروجی '{"name": "A"}' خروجی‌ها []

با عبارت $..books[?(@.name == 'A')][0].name ،

لبه آپیجی آپیجی ایکس
خروجی‌های "A" خروجی‌ها []
بله

حل: عبارات فیلتر JSONPath در مسیرهای نامشخص

کوئری‌های آسیب‌دیده را پیدا و جایگزین کنید.

عبارات JSONPath برای شاخص‌هایی که وجود ندارند

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

عبارات JSONPath با اندیسی که وجود ندارد، در Apigee X و Apigee Edge رفتارهای متفاوتی دارند. Apigee X وقتی مسیر پیدا نشود، خطای PathNotFoundException برمی‌گرداند.

تفاوت بین Apigee Edge و Apigee X:

هنگام پیمایش این ساختار نمونه،

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

با عبارت $.books[3] ،

لبه آپیجی آپیجی ایکس
خروجی‌ها null خطای PathNotFoundException خروجی می‌دهد.
بله

حل: عبارات JSONPath برای شاخص‌هایی که وجود ندارند

کوئری‌های آسیب‌دیده را پیدا و جایگزین کنید.

عبارات JSONPath با اندیس آرایه که شیء آرایه را برنمی‌گردانند

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

عبارات JSONPath با اندیس آرایه یا برش‌ها، یک شیء آرایه را در Apigee X برمی‌گردانند.

تفاوت بین Apigee Edge و Apigee X:

هنگام پیمایش این ساختار نمونه،

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

با عبارت $.books

لبه آپیجی آپیجی ایکس
خروجی‌ها {“name”:”A”, “name”: “B”} خروجی [{“name”:”A”, “name”: “B”}]

با عبارت $.books[-1] ،

لبه آپیجی آپیجی ایکس
خروجی‌ها {“name”: “B”} خروجی‌ها [{“name”: “B”}]

با عبارت $.books[-2:] ،

لبه آپیجی آپیجی ایکس
خروجی‌ها {“name”:”A”, “name”: “B”} خروجی [{“name”:”A”, “name”: “B”}]
بله

حل: عبارات JSONPath با اندیس آرایه، شیء آرایه را برنمی‌گردانند

عباراتی را پیدا و جایگزین کنید که ممکن است پس از ارتقا نتایج متفاوتی را برگردانند.

محدودیت‌های نام Keystore

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

نام‌های keystore در Apigee X فقط می‌توانند شامل حروف، اعداد و خط فاصله باشند. نام‌های keystore در Edge این محدودیت‌ها را اعمال نمی‌کنند.

خیر

راه‌حل: محدودیت‌های نام Keystore

نام‌های فروشگاه کلید را بررسی کنید و در صورت لزوم، نام‌ها را به‌روزرسانی کنید تا نویسه‌های پشتیبانی‌نشده حذف شوند.

چندین مسیر پایه برای یک پروکسی API مستقر شده است

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

چندین نسخه از یک پروکسی API در یک محیط مستقر می‌شوند و هر نسخه مسیر پایه متفاوتی دارد.

تفاوت بین Apigee Edge و Apigee X:

لبه آپیجی آپیجی ایکس
از استقرار چندین نسخه از یک پروکسی API پشتیبانی می‌کند که در آن هر نسخه می‌تواند مسیر پایه متفاوتی داشته باشد. از استقرار چندین نسخه از یک پروکسی API پشتیبانی نمی‌کند، حتی اگر پروکسی مسیرهای پایه متفاوتی داشته باشد.
خیر

حل مشکل: چندین مسیر پایه برای یک پروکسی API مستقر شده است

تمام بسته‌ها را به‌روزرسانی کنید تا صرف نظر از مسیر پایه، فقط یک نسخه از یک بسته در یک محیط مستقر شود.

پیام‌های HTTP ناسازگار

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

کلاینت‌ها یا API Proxy پیام‌هایی (درخواست یا پاسخ) ارسال می‌کنند که با استاندارد HTTP مطابقت ندارند. برای مثال، نام‌های هدر نامعتبر، تکرار در برخی از هدرهای محدود شده و غیره.

اگر اجرای API شما یک یا چند مورد از خطاهای زیر را داشته باشد، نمی‌توانید به Apigee X مهاجرت کنید:

خطا جزئیات
کاراکترهای نامعتبر در هدر یک یا چند کاراکتر غیرمجاز در سرآیند مشخص شده یافت شد. نام‌های سرآیند معتبر از حروف انگلیسی، اعداد و خط فاصله تشکیل شده‌اند.
گمشده_رودونه علامت : (دونقطه) در جفت نام سربرگ و مقدار سربرگ وجود ندارد.
طول_محتوای_متعدد چندین مقدار برای سربرگ Content-Length ارائه شده است.
طول_محتوا_نه_عددی مقدار هدر Content-Length یک عدد صحیح نیست.
ارتقاء نامعتبر هدر Upgrade فقط باید برای فعال کردن اتصالات WebSocket استفاده شود، اما اینطور نیست.
URL_HEADER_SIZE_TOO_LONG حجم کل URL درخواستی و هدرها از حداکثر حجم مجاز ۱۵ کیلوبایت بیشتر است.
بدن_مجاز نیست استفاده از متدهای "GET"، "DELETE"، "TRACE"، "OPTIONS" و "HEAD" در بدنه پیام مجاز نیست.
نسخه_HTTP_پشتیبانی‌نشده نسخه HTTP غیر از ۱.۱ برای درخواست استفاده می‌شود و پشتیبانی نمی‌شود.
طول_محتوا_صفر_برای_پست_یا_قرارداد مقدار فیلد سرآیند Content-Length برای روش "POST" یا "PUT" صفر ("0") تنظیم شده است.
پیشوند_پاسخ_پشتیبانی_نشده پیشوند هدر «X-Apigee-» که پشتیبانی نمی‌شود، در هدر پاسخ وجود داشت.
بله، احتمالاً.

راه‌حل: پیام‌های HTTP ناسازگار

قبل از مهاجرت به Apigee X، باید هرگونه خطایی را در پروتکل‌های HTTP برطرف کنید. اگر خطایی از یک برنامه کلاینت ناشی می‌شود، باید از توسعه‌دهنده برنامه کلاینت بخواهید که مشکل را برطرف کند.

زمان انقضای توکن OAuth 2.0 نامعتبر است.

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

محدودیت‌های انقضای توکن‌های OAuth 2.0 خارج از محدوده‌ی تعیین‌شده است.

تفاوت بین Apigee Edge و Apigee X:

لبه آپیجی آپیجی ایکس
در حال حاضر هیچ محدودیتی برای زمان انقضای توکن OAuth 2.0 اعمال نشده است، اما اجرای آن در حال برنامه‌ریزی است. به دستورالعمل‌های موجود در بخش OAuth از صفحه محدودیت‌ها مراجعه کنید. شما باید یک توکن دسترسی و زمان انقضای توکن تازه‌سازی را برای OAuth 2.0 تنظیم کنید. محدوده‌های پشتیبانی‌شده عبارتند از:
  • ۱۸۰ ثانیه <= زمان انقضای توکن دسترسی OAuth 2.0 <= ۳۰ روز
  • ۱ روز <= زمان انقضای توکن به‌روزرسانی OAuth 2.0 <= ۲ سال
خیر

حل مشکل: زمان انقضای توکن OAuth 2.0 نامعتبر است

از سیاست OAuthV2 استفاده کنید و زمان انقضا را در <ExpiresIn> و <RefreshTokenExpiresIn> مشخص کنید.

محدودیت محصول بیش از حد مجاز است

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

پیکربندی Apigee Edge با محدودیت‌های تعریف‌شده‌ی محصول مطابقت ندارد. برخی از محدودیت‌های محصول که در Apigee Edge مستند شده‌اند اما اعمال نمی‌شوند، در Apigee X اعمال می‌شوند.

خیر

حل مشکل: محدودیت محصول فراتر رفته است

قبل از مهاجرت به Apigee X، هرگونه استفاده‌ای که از محدودیت‌های محصول فراتر رفته است را اصلاح کنید.

سیاست‌های ServiceCallout با مشخص‌کننده‌های اتصال نقطه پایانی و هدف مسیر

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

در سیاست ServiceCallout، عنصر <LocalTargetConnection> باید شامل عناصر <APIProxy> و <ProxyEndpoint> یا عنصر <Path> باشد، اما نه هر دو. برای اطلاعات بیشتر، به عنصر <LocalTargetConnection> مراجعه کنید.

Apigee Edge این الزام را مستندسازی می‌کند اما آن را اجباری نمی‌کند. Apigee X در صورت مواجهه با <LocalTargetConnection> در هر دو پیکربندی، پردازش را متوقف می‌کند.

خیر

راه‌حل: سیاست‌های ServiceCallout با هر دو مشخص‌کننده‌ی اتصال نقطه‌ی پایانی و هدف مسیر

پیکربندی‌های سیاست ServiceCallout را بررسی کنید و هرگونه پیکربندی <LocalTargetConnection> که سازگار نیست را حذف کنید.

محدودیت‌های نام سرور هدف

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

نام سرورهای هدف Apigee X فقط می‌تواند شامل حروف، اعداد، خط فاصله و نقطه باشد. نام سرورهای هدف Edge این محدودیت‌ها را اعمال نمی‌کنند.

خیر

راه حل: محدودیت نام سرور هدف

نام سرورهای هدف را بررسی کنید و در صورت لزوم، نام‌ها را به‌روزرسانی کنید تا کاراکترهای پشتیبانی نشده حذف شوند.

گواهی آزمایشی در یک میزبان مجازی

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

یک یا چند میزبان مجازی از گواهی "آزمایشی رایگان" ارائه شده توسط Apigee استفاده می‌کنند. این باعث می‌شود که میزبان مجازی به درخواست‌های دامنه‌هایی مانند ORG-ENV.apigee.net پاسخ دهد.

تفاوت بین Apigee Edge و Apigee X:

لبه آپیجی آپیجی ایکس
به طور خودکار میزبان مجازی "پیش‌فرض" را برای پشتیبانی از نام دامنه‌ای به شکل ORG-ENV.apigee.net پیکربندی می‌کند. یک گواهی wildcard وجود دارد که به عنوان "گواهی آزمایشی رایگان" شناخته می‌شود و TLS را در این دامنه‌ها مجاز می‌کند. دامنه‌های قدیمی Apigee با فرم ORG-ENV.apigee.net در Apigee X در دسترس نیستند. شما باید نام دامنه خود را پیکربندی کنید و گواهینامه‌ها را به طور مناسب ارائه دهید.
بله

راه حل: گواهی آزمایشی در یک میزبان مجازی

شما باید دامنه خود را پیکربندی کنید و گواهینامه‌ها را به طور مناسب ارائه دهید.

هر برنامه کلاینتی که به نام دامنه قدیمی به شکل ORG-ENV.apigee.net وابسته است، باید برای فراخوانی دامنه جدید اصلاح شود.

DNS حل نشده

خلاصه نیاز به تغییرات سمت کلاینت دارد؟ وضوح تصویر

نام(های) دامنه‌ی نقطه‌ی پایانی هدف، نامشخص هستند.

تفاوت بین Apigee Edge و Apigee X:

لبه آپیجی آپیجی ایکس
اگر حل مشکل از طریق DNS با شکست مواجه شود، Apigee پسوند .apigee.com را به نام دامنه اضافه می‌کند و DNS با یک کد پاسخ 4xx با موفقیت حل مشکل می‌کند. اگر فرآیند DNS با شکست مواجه شود، Apigee درخواست را اجرا نمی‌کند و یک کد پاسخ 5xx برمی‌گرداند.
خیر

حل مشکل: DNS حل نشده

نقطه پایانی هدف را با یک نام دامنه معتبر به‌روزرسانی کنید.