آنتی الگوهای مهاجرت 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 Apigee X
پیکربندی برنامه و اعتباری که به هیچ محصول API مرتبط نیست، امکان پذیر است. این برنامه به طور موثر به تمام محصولات API دسترسی دارد. هر برنامه باید برای دسترسی به حداقل یک محصول API پیکربندی شود. هیچ راهی برای دسترسی به تمام محصولات API، به طور ضمنی وجود ندارد. می‌توانید یک برنامه را طوری پیکربندی کنید که به همه محصولات API دسترسی داشته باشد، اما باید این کار را به صراحت انجام دهید.
خیر

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

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

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

کش بدون زمان انقضا

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

کش(ها) زمان انقضا ندارند.

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

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

وضوح: کش بدون زمان انقضا

یک زمان انقضا برای همه کش ها تنظیم کنید.

عبارات فیلتر JSONPath در مسیرهای غیر معین

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

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

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

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

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

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

Apigee Edge Apigee X
خروجی '{"name": "A"}' خروجی ها []

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

Apigee Edge Apigee 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 Apigee X
خروجی null خطای PathNotFoundException خروجی می کند
بله

وضوح: عبارات JSONPath برای نمایه هایی که وجود ندارند

جستارهای تحت تأثیر را پیدا و جایگزین کنید.

عبارات JSONPath با شاخص آرایه که شی آرایه را بر نمی گرداند

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

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

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

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

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

با عبارت $.books ،

Apigee Edge Apigee X
خروجی های {“name”:”A”, “name”: “B”} خروجی ها [{“name”:”A”, “name”: “B”}]

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

Apigee Edge Apigee X
خروجی های {“name”: “B”} خروجی ها [{“name”: “B”}]

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

Apigee Edge Apigee X
خروجی های {“name”:”A”, “name”: “B”} خروجی ها [{“name”:”A”, “name”: “B”}]
بله

وضوح: عبارات JSONPath با شاخص آرایه که شی آرایه را بر نمی گرداند

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

محدودیت های نام فروشگاه کلید

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

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

خیر

وضوح: محدودیت‌های نام فروشگاه کلید

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

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

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

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

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

Apigee Edge Apigee X
از استقرار ویرایش های متعدد یک پروکسی API پشتیبانی می کند که در آن هر نسخه می تواند مسیر پایه متفاوتی داشته باشد. از استقرار ویرایش های متعدد یک پراکسی API پشتیبانی نمی کند، حتی اگر پروکسی مسیرهای پایه متفاوتی داشته باشد.
خیر

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

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

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

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

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

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

خطا جزئیات
INVALID_CHARACTERS_IN_HEADER یک یا چند نویسه غیرقانونی در هدر مشخص شده یافت شد. نام‌های هدر معتبر از حروف، اعداد و خط تیره انگلیسی تشکیل شده‌اند.
MISSING_COLON یک : (دونقطه) در نام سرصفحه و جفت مقدار هدر وجود ندارد.
MULTIPLE_CONTENT_LENGTH مقادیر متعددی برای سربرگ Content-Length ارائه شد.
CONTENT_LENGTH_NOT_INTEGER مقدار سرصفحه Content-Length یک عدد صحیح نیست.
INVALID_UPGRADE هدر Upgrade باید فقط برای فعال کردن اتصالات WebSocket استفاده شود اما اینطور نیست.
URL_HEADER_SIZE_TOO_LONG اندازه کل URL درخواست و هدرها از حداکثر اندازه مجاز 15 کیلوبایت بیشتر است.
BODY_NOT_ALLOWED متن پیام با روش‌های «GET»، «DELETE»، «TRACE»، «OPTIONS» و «HEAD» مجاز نیست.
UNSUPPORTED_HTTP_VERSION یک نسخه HTTP غیر از 1.1 برای درخواست استفاده می شود و پشتیبانی نمی شود.
ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT مقدار فیلد سرصفحه طول محتوا صفر ("0") برای روش "POST" یا "PUT" تنظیم شد.
UNSUPPORTED_RESPONSE_PREFIX پیشوند هدر «X-Apigee-» پشتیبانی‌نشده در سرصفحه پاسخ وجود داشت.
بله، احتمالا.

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

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

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

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

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

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

Apigee Edge Apigee X
در حال حاضر هیچ محدودیتی برای زمان انقضای توکن OAuth 2.0 اعمال نمی شود، اما اجرای آن برنامه ریزی شده است. دستورالعمل‌ها را در بخش OAuth صفحه محدودیت‌ها ببینید. باید برای OAuth 2.0 یک نشانه دسترسی تنظیم کنید و زمان انقضای رمز را بازخوانی کنید. محدوده های پشتیبانی شده عبارتند از:
  • 180 ثانیه <= زمان انقضای نشانه دسترسی OAuth 2.0 <= 30 روز
  • 1 روز <= OAuth 2.0 زمان انقضای نشانه تازه سازی <= 2 سال
خیر

وضوح: زمان انقضای رمز 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 فقط می تواند شامل حروف، اعداد، خط فاصله و نقطه باشد. نام سرورهای هدف لبه این محدودیت ها را اعمال نمی کند.

خیر

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

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

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

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

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

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

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

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

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

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

DNS حل نشده

خلاصه آیا نیاز به تغییرات سمت مشتری دارد؟ قطعنامه

نقطه(های) پایانی هدف دارای نام(های) دامنه حل نشده است.

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

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

وضوح: DNS حل نشده

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