Apigee Edge থেকে Apigee X মাইগ্রেশন অ্যান্টিপ্যাটার্নস

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

Apigee Edge-এর বর্তমান গ্রাহক হিসেবে, আপনি নতুন সুবিধাসমূহ বা বিভিন্ন আঞ্চলিক প্রাপ্যতার সুযোগ নিতে আপনার ইনস্টলেশনটি Apigee X- এ স্থানান্তরিত করার সিদ্ধান্ত নিতে পারেন।

এই পৃষ্ঠায় আপনার কনফিগারেশনের সেইসব অ্যান্টিপ্যাটার্ন বর্ণনা করা হয়েছে, যেগুলো Apigee X-এ মাইগ্রেট করার আগে আপনাকে সমাধান করতে হবে। এছাড়াও, মাইগ্রেট করার আগে আচরণের অন্যান্য যে পরিবর্তনগুলো সম্পর্কে আপনার সচেতন থাকা উচিত, সে সম্পর্কেও জানানো হয়েছে।

Apigee Edge-এর অ্যান্টিপ্যাটার্নগুলির বিস্তৃত তালিকায় এমন সব ব্যবহারের পদ্ধতি বর্ণনা করা হয়েছে যা যেকোনো অবস্থাতেই পরিহার করা উচিত। এই পৃষ্ঠায় সেইসব নির্দিষ্ট ব্যবহার পদ্ধতির বর্ণনা দেওয়া হয়েছে যা ব্যবহারের জন্য সুপারিশ করা হয় না এবং যা মাইগ্রেশনকে বাধাগ্রস্ত করবে। Apigee X-এ মাইগ্রেট করার সময় সমস্যা এড়াতে এখনই এগুলোর সমাধান করুন।

এপিআই পণ্য ছাড়া অ্যাপ

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

এমন অ্যাপ আছে যেগুলিতে এপিআই প্রোডাক্ট নেই।

Apigee Edge এবং Apigee X এর মধ্যে পার্থক্য:

অ্যাপিজি এজ অ্যাপিজি এক্স
এমন একটি অ্যাপ এবং ক্রেডেনশিয়াল কনফিগার করা সম্ভব যা কোনো এপিআই প্রোডাক্টের সাথে যুক্ত নয়। এই অ্যাপটির কার্যত সমস্ত এপিআই প্রোডাক্টে অ্যাক্সেস থাকে। প্রতিটি অ্যাপকে অবশ্যই অন্তত একটি এপিআই প্রোডাক্ট অ্যাক্সেস করার জন্য কনফিগার করতে হবে। স্বয়ংক্রিয়ভাবে সমস্ত এপিআই প্রোডাক্টে অ্যাক্সেস দেওয়ার কোনো উপায় নেই। আপনি একটি অ্যাপকে সমস্ত এপিআই প্রোডাক্টে অ্যাক্সেস দেওয়ার জন্য কনফিগার করতে পারেন, কিন্তু তার জন্য আপনাকে সুস্পষ্টভাবে তা করতে হবে।
না।

সমাধান: এপিআই পণ্য ছাড়া অ্যাপ

প্রতিটি অ্যাপ ক্রেডেনশিয়ালকে অন্তত একটি API প্রোডাক্টের সাথে যুক্ত করুন। এটি কীভাবে করতে হয় সে সম্পর্কে আরও তথ্যের জন্য, ‘অ্যাপ নিবন্ধন করুন এবং API কী পরিচালনা করুন’ দেখুন।

একটি সহজ উপায় হলো প্রতিটি অ্যাপকে সমস্ত এপিআই প্রোডাক্টে অ্যাক্সেস দেওয়া। এটি Apigee Edge-এ যা করা সম্ভব, তার সমতুল্য হবে। চ্যালেঞ্জটি হবে যদি আপনি "সর্বনিম্ন সুবিধা" (least privilege) পদ্ধতি অনুসরণ করতে চান, সেক্ষেত্রে আপনাকে এপিআই প্রোডাক্টের ন্যূনতম তালিকা নির্ধারণ করতে হবে, যেগুলোতে প্রতিটি অ্যাপ ক্রেডেনশিয়ালের অ্যাক্সেস থাকা আবশ্যক। আপনি ক্লায়েন্ট আইডির উপর ভিত্তি করে Apigee Edge অ্যানালিটিক্স রিপোর্টের মাধ্যমে এটি বিশ্লেষণ করতে পারেন।

মেয়াদ শেষ হওয়ার সময় ছাড়া ক্যাশে

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

ক্যাশের কোনো মেয়াদ শেষ হওয়ার সময় নেই।

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 এক্সপ্রেশন অ্যারে অবজেক্ট ফেরত দিচ্ছে না

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

Apigee X-এ অ্যারে ইনডেক্স বা স্লাইস সহ JSONPath এক্সপ্রেশন একটি অ্যারে অবজেক্ট রিটার্ন করে।

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 এক্সপ্রেশন অ্যারে অবজেক্ট ফেরত দিচ্ছে না

এমন এক্সপ্রেশনগুলো খুঁজুন এবং প্রতিস্থাপন করুন যেগুলো আপগ্রেডের পরে ভিন্ন ফলাফল দিতে পারে।

কীস্টোর নামের সীমাবদ্ধতা

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

Apigee X কীস্টোরের নামে শুধুমাত্র অক্ষর, সংখ্যা এবং হাইফেন থাকতে পারে। Edge কীস্টোরের নামের ক্ষেত্রে এই সীমাবদ্ধতাগুলো প্রযোজ্য নয়।

না

সমাধান: কীস্টোর নামের সীমাবদ্ধতা

কীস্টোরের নামগুলো যাচাই করুন এবং প্রয়োজনে অসমর্থিত অক্ষরগুলো বাদ দিয়ে নামগুলো আপডেট করুন।

একটি এপিআই প্রক্সির জন্য একাধিক বেস পাথ স্থাপন করা হয়েছে।

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

একটি পরিবেশে এপিআই প্রক্সির একাধিক সংস্করণ স্থাপন করা হয় এবং প্রতিটি সংস্করণের একটি ভিন্ন বেস পাথ থাকে।

Apigee Edge এবং Apigee X এর মধ্যে পার্থক্য:

অ্যাপিজি এজ অ্যাপিজি এক্স
একটি এপিআই প্রক্সির একাধিক সংস্করণ স্থাপন সমর্থন করে, যেখানে প্রতিটি সংস্করণের একটি ভিন্ন বেস পাথ থাকতে পারে। এপিআই প্রক্সির একাধিক সংস্করণ স্থাপন করা সমর্থন করে না, যদিও প্রক্সিটির বেস পাথ ভিন্ন ভিন্ন হয়।
না

সমাধান: একটি এপিআই প্রক্সির জন্য একাধিক বেস পাথ স্থাপন করা হয়েছে।

সমস্ত বান্ডেল আপডেট করুন, যাতে বেসপাথ নির্বিশেষে একটি এনভায়রনমেন্টে কোনো বান্ডেলের কেবল একটি রিভিশনই ডেপ্লয় করা হয়।

অ-সম্মত HTTP বার্তা

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

ক্লায়েন্ট বা এপিআই প্রক্সি এমন বার্তা (অনুরোধ বা প্রতিক্রিয়া) পাঠায় যা HTTP স্ট্যান্ডার্ড মেনে চলে না। উদাহরণস্বরূপ, অবৈধ হেডার নাম, কিছু সীমাবদ্ধ হেডারে পুনরাবৃত্তি, ইত্যাদি।

আপনার API এক্সিকিউশনে নিম্নলিখিত এক বা একাধিক ত্রুটি থাকলে আপনি Apigee X-এ মাইগ্রেট করতে পারবেন না:

ত্রুটি বিস্তারিত
হেডারে অবৈধ অক্ষর নির্দিষ্ট হেডারে এক বা একাধিক অবৈধ অক্ষর পাওয়া গেছে। বৈধ হেডারের নাম ইংরেজি অক্ষর, সংখ্যা এবং হাইফেন দ্বারা গঠিত হয়।
মিসিং_কোলন হেডার নেম এবং হেডার ভ্যালু জোড়ায় একটি : (কোলন) নেই।
একাধিক বিষয়বস্তুর দৈর্ঘ্য Content-Length হেডারের জন্য একাধিক মান প্রদান করা হয়েছিল।
CONTENT_LENGTH_NOT_INTEGER Content-Length হেডারের মানটি একটি পূর্ণসংখ্যা নয়।
অবৈধ_আপগ্রেড শুধুমাত্র ওয়েবসকেট সংযোগ সক্রিয় করার জন্য আপগ্রেড হেডারটি ব্যবহার করা আবশ্যক, কিন্তু তা করা হয় না।
URL_HEADER_SIZE_TOO_LONG অনুরোধ ইউআরএল এবং হেডারগুলোর মোট আকার সর্বোচ্চ অনুমোদিত ১৫ কিলোবাইট সীমা অতিক্রম করেছে।
শরীর অনুমোদিত নয় "GET", "DELETE", "TRACE", "OPTIONS", এবং "HEAD" মেথডগুলোর সাথে মেসেজ বডি ব্যবহারের অনুমতি নেই।
অসমর্থিত_HTTP_সংস্করণ অনুরোধটির জন্য HTTP 1.1 ব্যতীত অন্য একটি সংস্করণ ব্যবহার করা হচ্ছে এবং এটি সমর্থিত নয়।
পোস্ট বা পুট করার জন্য বিষয়বস্তুর দৈর্ঘ্য শূন্য 'POST' বা 'PUT' মেথডের জন্য Content-Length হেডার ফিল্ডের মান শূন্য ("0") সেট করা হয়েছিল।
অসমর্থিত_প্রতিক্রিয়া_পূর্বসমাধান রেসপন্স হেডারে একটি অসমর্থিত “X-Apigee-” হেডার প্রিফিক্স উপস্থিত ছিল।
হ্যাঁ, সম্ভবত।

সমাধান: অ-সম্মত HTTP বার্তা

Apigee X-এ মাইগ্রেট করার আগে আপনাকে অবশ্যই HTTP প্রোটোকলের যেকোনো ত্রুটি সংশোধন করতে হবে। যদি কোনো ত্রুটি ক্লায়েন্ট অ্যাপ্লিকেশন থেকে উদ্ভূত হয়, তবে আপনাকে অবশ্যই সেই ক্লায়েন্ট অ্যাপের ডেভেলপারকে সমস্যাটি সমাধান করতে বলতে হবে।

OAuth 2.0 টোকেনের মেয়াদ শেষ হওয়ার সময় অবৈধ।

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

OAuth 2.0 টোকেনের মেয়াদ শেষ হওয়ার সীমা নির্ধারিত পরিসরের বাইরে রয়েছে।

Apigee Edge এবং Apigee X এর মধ্যে পার্থক্য:

অ্যাপিজি এজ অ্যাপিজি এক্স
বর্তমানে OAuth 2.0 টোকেনের মেয়াদ শেষ হওয়ার সময়ের উপর কোনো বিধিনিষেধ বলবৎ নেই, তবে এটি বলবৎ করার পরিকল্পনা রয়েছে। Limits পেইজের 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 পলিসিতে, <LocalTargetConnection> এলিমেন্টের মধ্যে হয় <APIProxy><ProxyEndpoint> এলিমেন্ট অথবা <Path> এলিমেন্ট অন্তর্ভুক্ত থাকতে হবে, কিন্তু উভয়ই নয়। আরও তথ্যের জন্য, <LocalTargetConnection> এলিমেন্টটি দেখুন।

Apigee Edge এই প্রয়োজনীয়তাটি নথিভুক্ত করে, কিন্তু তা প্রয়োগ করে না। Apigee X উভয় কনফিগারেশন সহ একটি <LocalTargetConnection> পেলে প্রসেসিং বন্ধ করে দেয়।

না

সমাধান: এন্ডপয়েন্ট এবং পাথ টার্গেট উভয় সংযোগ স্পেসিফায়ার সহ সার্ভিসকলআউট পলিসি

ServiceCallout পলিসি কনফিগারেশনগুলো পরীক্ষা করুন এবং নিয়ম মেনে চলে না এমন যেকোনো <LocalTargetConnection> কনফিগারেশন বাদ দিন।

লক্ষ্য সার্ভারের নামের সীমাবদ্ধতা

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

Apigee X টার্গেট সার্ভারের নামে শুধুমাত্র অক্ষর, সংখ্যা, হাইফেন এবং পিরিয়ড থাকতে পারে। Edge টার্গেট সার্ভারের নামের ক্ষেত্রে এই সীমাবদ্ধতাগুলো প্রযোজ্য নয়।

না

সমাধান: লক্ষ্য সার্ভারের নামের সীমাবদ্ধতা

টার্গেট সার্ভারের নামগুলো যাচাই করুন এবং প্রয়োজনে অসমর্থিত অক্ষরগুলো বাদ দিয়ে নামগুলো আপডেট করুন।

ভার্চুয়াল হোস্টে ট্রায়াল সার্টিফিকেট

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

এক বা একাধিক ভার্চুয়াল হোস্ট Apigee-প্রদত্ত "ফ্রি ট্রায়াল" সার্টিফিকেট ব্যবহার করে। এর ফলে ভার্চুয়াল হোস্টটি ORG-ENV.apigee.net মতো ডোমেইনের অনুরোধে সাড়া দেয়।

Apigee Edge এবং Apigee X এর মধ্যে পার্থক্য:

অ্যাপিজি এজ অ্যাপিজি এক্স
ORG-ENV.apigee.net ফর্ম্যাটের একটি ডোমেইন নাম সমর্থন করার জন্য "ডিফল্ট" vhost স্বয়ংক্রিয়ভাবে কনফিগার করে। একটি ওয়াইল্ডকার্ড সার্টিফিকেট রয়েছে, যা "ফ্রি ট্রায়াল সার্টিফিকেট" নামে পরিচিত, এবং এটি এই ডোমেইনগুলিতে TLS ব্যবহারের অনুমতি দেয়। ORG-ENV.apigee.net ফর্মের পুরোনো Apigee ডোমেইনগুলো Apigee X-এ উপলব্ধ নয়। আপনাকে অবশ্যই আপনার নিজস্ব ডোমেইন নাম কনফিগার করতে হবে এবং যথাযথভাবে সার্টিফিকেট সরবরাহ করতে হবে।
হ্যাঁ

সমাধান: ভার্চুয়াল হোস্টে ট্রায়াল সার্টিফিকেট

আপনাকে অবশ্যই আপনার নিজস্ব ডোমেইন কনফিগার করতে হবে এবং যথাযথভাবে সার্টিফিকেট সরবরাহ করতে হবে।

যে কোনো ক্লায়েন্ট অ্যাপ্লিকেশন যা ORG-ENV.apigee.net ফর্মের পুরোনো ডোমেইন নামের উপর নির্ভর করে, সেটিকে নতুন ডোমেইনটি কল করার জন্য পরিবর্তন করতে হবে।

অমীমাংসিত ডিএনএস

সারসংক্ষেপ ক্লায়েন্ট-সাইডে পরিবর্তনের প্রয়োজন আছে কি? সমাধান

লক্ষ্য এন্ডপয়েন্ট(গুলি)-এর ডোমেইন নাম(গুলি) অমীমাংসিত রয়েছে।

Apigee Edge এবং Apigee X এর মধ্যে পার্থক্য:

অ্যাপিজি এজ অ্যাপিজি এক্স
যদি DNS রেজোলিউশন ব্যর্থ হয়, Apigee ডোমেইন নামের শেষে .apigee.com যুক্ত করে দেয় এবং এর ফলে একটি 4xx রেসপন্স কোডসহ DNS সফলভাবে রেজলভ হয়। যদি DNS রেজোলিউশন ব্যর্থ হয়, Apigee অনুরোধটি সম্পাদন করে না এবং একটি 5xx প্রতিক্রিয়া কোড ফেরত দেয়।
না

সমাধান: অমীমাংসিত ডিএনএস

টার্গেট এন্ডপয়েন্টটি একটি বৈধ ডোমেইন নাম দিয়ে আপডেট করুন।