পরিবর্তনগুলির ওভারভিউ
Edge for Private Cloud 4.53.01-এ একাধিক পরিবর্তন করা হয়েছে যা প্ল্যাটফর্মের নিরাপত্তা আরও উন্নত করে এবং প্রয়োজনীয় সফ্টওয়্যার ও লাইব্রেরির আপডেট করা ভার্সন অন্তর্ভুক্ত করে। এইসব পরিবর্তন নিম্নলিখিত ধরনের নীতির উপর প্রভাব ফেলে:
- OAS (OpenAPI স্পেসিফিকেশন) যাচাইকরণ নীতি
- JSONPath কোয়েরি কাজ করে এমন নীতি
- Java কলআউট নীতি যা বন্ধ হয়ে যাওয়া লাইব্রেরির উপর নির্ভর করে।
- OpenLDAP
- ক্রিপ্টোগ্রাফি প্রদানকারী সংক্রান্ত পরিবর্তন
এছাড়াও, এই আপগ্রেডের ফলে আপনার ক্লাস্টারে প্রক্সি, শেয়ার করা ফ্লো বা অন্যান্য আর্টিফ্যাক্টে হওয়া পরিবর্তন শনাক্ত করতে, আপনি পরিবর্তন শনাক্তকরণ টুল ব্যবহার করতে পারবেন।
পরিবর্তনগুলির বিস্তারিত বিবরণ
এই বিভাগে, 4.53.01 ভার্সনে করা সেইসব পরিবর্তন সম্পর্কে বর্ণনা করা হয়েছে যা আপগ্রেড চলাকালীন বা পরে আপনার ওয়ার্কফ্লোতে ব্যাঘাত ঘটাতে পারে। সম্ভাব্য সমস্যাযুক্ত ক্ষেত্রগুলি শনাক্ত করার পদ্ধতি এবং প্রশমন বা বিকল্প পদ্ধতির পদ্ধতিগুলিও কভার করা হয়েছে।
OAS (OpenAPI specification) যাচাইকরণ নীতি
প্রসঙ্গ
OAS যাচাইকরণ নীতি, OpenAPI 3.0 স্পেসিফিকেশন (JSON বা YAML)-এ সংজ্ঞায়িত নিয়মের বিরুদ্ধে ইনকামিং অনুরোধ বা উত্তর যাচাই করে। Edge for Private Cloud 4.53.01, OAS (OpenAPI স্পেসিফিকেশন) নীতিতে উন্নতি করে, API রেসপন্স বডির আরও কঠোর ও নির্ভুল ভ্যালিডেশনের উপর ফোকাস করে।
পরিবর্তনগুলি
Edge for Private Cloud 4.53.01, API উত্তর কীভাবে OAS নীতি যাচাই করে তার মধ্যে দুটি গুরুত্বপূর্ণ পরিবর্তন নিয়ে আসে, যা আপনার OpenAPI স্পেসিফিকেশনের সাথে আরও ভালভাবে অ্যালাইনমেন্ট নিশ্চিত করে:
- পরিস্থিতি ১:
- আগের আচরণ: আপনার OpenAPI স্পেসিফিকেশনে যদি রেসপন্স বডির প্রয়োজন হয়, কিন্তু টার্গেট বা আপস্ট্রিম পলিসি থেকে পাওয়া আসল রেসপন্সে সেটি না থাকে, তাহলে পলিসি এটিকে যাচাইকরণ সংক্রান্ত সমস্যা হিসেবে ফ্ল্যাগ করত না।
- বর্তমান আচরণ: এই পরিস্থিতিতে নীতিটি এখন সঠিকভাবে যাচাইকরণ সংক্রান্ত সমস্যা (যেমন:
defines a response schema but no response body found) রিটার্ন করবে, যা প্রত্যাশিত ও প্রকৃত উত্তরের মধ্যে অমিল নির্দেশ করে।
- পরিস্থিতি ২:
- আগের আচরণ: আপনার OpenAPI স্পেসিফিকেশনে যদি স্পষ্টভাবে উল্লেখ করা থাকে যে কোনও রেসপন্স বডি প্রত্যাশিত নয়, কিন্তু টার্গেট বা আপস্ট্রিম নীতি থেকে প্রাপ্ত আসল রেসপন্সে বডি অন্তর্ভুক্ত থাকে, তাহলে নীতিটি ব্যর্থ হবে না।
- বর্তমান আচরণ: এই পরিস্থিতিতে নীতিটি এখন ব্যর্থ হবে (যেমন:
No response body is expected but one was found), এটি নিশ্চিত করে যে উত্তরগুলি নির্দিষ্ট স্কিমা কঠোরভাবে মেনে চলে।
হ্রাস করা
পরিবর্তন শনাক্তকরণ টুল ব্যবহার করে বা ম্যানুয়ালি পর্যালোচনা করে আপগ্রেড করার ফলে প্রভাবিত হতে পারে এমন যেকোনও প্রক্সি বা শেয়ার করা ফ্লো শনাক্ত করুন। এমন কোনও প্রক্সি আছে কিনা দেখুন যেখানে নিম্নলিখিত শর্তগুলির মধ্যে কোনও একটি উপস্থিত আছে:
- OAS যাচাইকরণ নীতি Source ট্যাগ সহ কনফিগার করা হয়েছে যা
responseহিসেবে সেট করা আছে। - OAS যাচাইকরণ নীতি, উত্তর জেনারেট করে এমন যেকোনও অন্য নীতি থেকে পাওয়া উত্তর যাচাই করছে।
টুল ব্যবহার করলে, এটি নিম্নলিখিত ফর্ম্যাটে আউটপুট তৈরি করবে:
| সংগঠন | পরিবেশ | আর্টিফ্যাক্টের নাম | আর্টিফ্যাক্টের ধরন | পুনরায় বিবেচনা করা | নীতির নাম | নীতির প্রকার | প্রভাবের ধরন | প্রভাব সম্পর্কিত নির্দিষ্ট ফিল্ড | প্রভাবের নিশ্চয়তা | ডকুমেন্টেশন |
|---|---|---|---|---|---|---|---|---|---|---|
| org2 | dev | proxy2 | প্রক্সি | 4 | oas-validateresponse | OASValidation | oas_content_type_handling | Source=calloutresponse | মাঝারি | OAS যাচাইকরণ নীতি |
| org1 | prod | proxy3 | শেয়ারফ্লো | 1 | oas-spec-validation | OASValidation | oas_content_type_handling | Source=response | মাঝারি | OAS যাচাইকরণ নীতি |
আউটপুট টেবিলের কলামের বিস্তারিত ব্যাখ্যা পেতে, টুলের আউটপুট বোঝা বিভাগ দেখুন।
প্রক্সি বা শেয়ার করা ফ্লো শনাক্ত করা হয়ে গেলে, নিশ্চিত করুন যে উত্তর এবং আপনার OAS স্পেসিফিকেশন, উত্তর বডির উপস্থিতি বা অনুপস্থিতি সংক্রান্ত বিষয়ে একই রকম আছে। আপনার ট্রাফিক প্যাটার্ন পর্যালোচনা করতে, আপনি স্ট্যান্ডার্ড Apigee ট্রেস ব্যবহার করতে পারেন। টার্গেট যদি মাঝে মাঝে উত্তর রিটার্ন করে, তাহলে OAS যাচাইকরণ নীতিতে উত্তর পাস করার আগে উত্তর যাচাই করার জন্য অন্যান্য নীতি ব্যবহার করুন।
- আপনার OAS স্পেসিফিকেশন ফাইলে কোনও রেসপন্স বডি নির্দিষ্ট করা থাকলে, টার্গেট বা আপস্ট্রিম পলিসি থেকে পাওয়া রেসপন্সে সেটি অবশ্যই থাকতে হবে।
- আপনার OAS স্পেসিফিকেশন ফাইলে কোনও রেসপন্স বডি নির্দিষ্ট করা না থাকলে, টার্গেট বা আপস্ট্রিম নীতিতে সেটি পাঠানো যাবে না।
Private Cloud 4.53.01-এ আপগ্রেড করার আগে, প্রয়োজন অনুযায়ী OAS যাচাইকরণ নীতি বা আপনার টার্গেট আচরণ আপডেট করুন। প্রোডাকশন ক্লাস্টার আপগ্রেড করার সময় বিঘ্ন ঘটার ঝুঁকি কমাতে, আপনাকে প্রথমে নিজের নন-প্রোডাকশন এনভায়রনমেন্টে এই ধরনের শনাক্ত করা ওয়ার্কফ্লো যাচাই করে নিতে হবে।
JSON পাথ
প্রসঙ্গ
Edge for Private Cloud 4.53.01-এ বিভিন্ন নীতিতে JSON পাথ এক্সপ্রেশন কীভাবে ব্যবহার করা হয় তাতে পরিবর্তন করা হয়েছে। JSON কন্টেন্ট পার্স করতে বা ভেরিয়েবলে মান স্টোর করতে ExtractVariable policy, RegularExpressionProtection policy, Data masking-এর মতো নীতিতে JSONPath এক্সপ্রেশন ব্যবহার করা যেতে পারে। প্রক্সি এক্সিকিউশনের সময় ভ্যালু দিয়ে ভেরিয়েবল ডাইনামিক রিপ্লেস করতে, সাধারণ মেসেজ টেমপ্লেটিং-এও JSONPath এক্সপ্রেশন ব্যবহার করা যেতে পারে। নতুন JSONPath এক্সপ্রেশন ও ফর্ম্যাট লেটেস্ট JSON এক্সপ্রেশন স্ট্যান্ডার্ড মেনে চলে।
পরিবর্তনগুলি
JSONPath এক্সপ্রেশন ব্যবহার করে এমন নীতির জন্য আগে থেকে থাকা API প্রক্সি/শেয়ার করা ফ্লো পর্যালোচনা করা গুরুত্বপূর্ণ। এর মধ্যে অন্তর্ভুক্ত রয়েছে, তবে এর মধ্যেই সীমাবদ্ধ নয়, এক্সট্র্যাক্ট ভেরিয়েবল নীতি, রেগুলার এক্সপ্রেশন সুরক্ষা নীতি বা JSONPath ব্যবহার করে মেসেজ টেমপ্লেট সহ যেকোনও নীতি।
পরিবর্তনগুলি ব্যাখ্যা করার জন্য নিচে JSON ইনপুট ব্যবহার করা হয়েছে:
{
"store": {
"book": [
{"category": "reference", "author": "Nigel Rees", "price": 8.95},
{"category": "fiction", "author": "Evelyn Waugh", "price": 12.99},
{"category": "fiction", "author": "Herman Melville", "price": 8.99}
],
"bicycle": {
"color": "red",
"book": [
{"author": "Abc"}
]
}
}
}
- অবজেক্ট ভ্যালুর জন্য JSONPath ওয়াইল্ডকার্ড
[*]আচরণে পরিবর্তনJSON অবজেক্টের সব তাৎক্ষণিক ভ্যালু অ্যাক্সেস করার জন্য ব্যবহার করা হলে
[*]ওয়াইল্ডকার্ডের আচরণ পরিবর্তন করা হয়েছে। আগে,$.object[*]একটি JSON অবজেক্টের মধ্যে র্যাপ করা অবিলম্বে ভ্যালু রিটার্ন করত। আপডেট করা লাইব্রেরির সাহায্যে, আউটপুট এখন এই ভ্যালুগুলি সহ একটি অ্যারে।যেমন,
আগের আচরণ:$.store[*]: বর্তমান আচরণ:{ "bicycle": { "color": "red", "book": [{"author": "Abc"}] }, "book": [ {"price": 8.95, "category": "reference", "author": "Nigel Rees"}, {"price": 12.99, "category": "fiction", "author": "Evelyn Waugh"}, {"price": 8.99, "category": "fiction", "author": "Herman Melville"} ] } অ্যাকশন:[ [ {"category": "reference", "author": "Nigel Rees", "price": 8.95}, {"category": "fiction", "author": "Evelyn Waugh", "price": 12.99}, {"category": "fiction", "author": "Herman Melville", "price": 8.99} ], { "color": "red", "book": [{"author": "Abc"}] } ]আগে পাওয়া আইটেমকে সরাসরি টার্গেট করতে, JSONPath এক্সপ্রেশন পরিবর্তন করে প্যারেন্ট অবজেক্টকে (যেমন:
$.store) টার্গেট করুন। - পাথে JSONPath ট্রেলিং ডট
(.)থাকলে সমস্যা হয়JSONPath এক্সপ্রেশনের জন্য আরও কঠোর যাচাইকরণ আছে। আগে, ভুল ট্রেলিং ডট (যেমন:
$.path.to.element.) দিয়ে শেষ হওয়া পাথকে নীরবে উপেক্ষা করা হত এবং আগের বৈধ পাথ সেগমেন্ট ম্যাচ করলে কোয়েরি এখনও ফলাফল রিটার্ন করে। নতুন ভার্সনে, এই ধরনের ভুল ফর্ম্যাট করা পাথ এখন সঠিকভাবে ভুল হিসেবে শনাক্ত করা হয় এবং এর ফলে একটি সমস্যা হয়।যেমন,
আগের আচরণ:$.store.book. বর্তমান আচরণ:[ {"price":8.95,"category":"reference","author":"Nigel Rees"}, {"price":12.99,"category":"fiction","author":"Evelyn Waugh"}, {"price":8.99,"category":"fiction","author":"Herman Melville"} ]ERROR: com.jayway.jsonpath.InvalidPathException - Path must not end with a '.' or '..'
যেসব আগেকার নীতিতে অনিচ্ছাকৃত ট্রেলিং ডট সহ JSONPath এক্সপ্রেশন ব্যবহার করা হয়, সেগুলি এখন
অ্যাকশন:InvalidPathExceptionসহ ব্যর্থ হবে।JSONPath এক্সপ্রেশনের শেষে একটি ডট থাকলে সেটি সরিয়ে দিন। যেমন,
$.store.book.-কে$.store.book-এ পরিবর্তন করুন। - JSONPath রিকার্সিভ ডিসেন্ট
(..)আউটপুট স্ট্রাকচার পরিবর্তননাম করা এলিমেন্টের সবকটি অকারেন্স খুঁজে পেতে
(..)(রিকাসিভ ডিসেন্ট) অপারেটর ব্যবহার করার সময় ফলাফল রিটার্ন করার পদ্ধতিতে পরিবর্তন করা হয়েছে। আগে, খুঁজে পাওয়া সব এলিমেন্ট একটি তালিকায় ফ্ল্যাটেন করা হত। আপডেট করা লাইব্রেরি এখন একটি ফ্ল্যাট তালিকার পরিবর্তে, যেখানে এলিমেন্ট পাওয়া গেছে সেই আসল গ্রুপিং স্ট্রাকচার বজায় রেখে তালিকার একটি তালিকা রিটার্ন করে।যেমন,
আগের আচরণ:$..book বর্তমান আচরণ:[ {"price":8.95,"category":"reference","author":"Nigel Rees"}, {"price":12.99,"category":"fiction","author":"Evelyn Waugh"}, {"price":8.99,"category":"fiction","author":"Herman Melville"}, {"author":"Abc"} ] অ্যাকশন:[ [ {"category":"reference","author":"Nigel Rees","price":8.95}, {"category":"fiction","author":"Evelyn Waugh","price":12.99}, {"category":"fiction","author":"Herman Melville","price":8.99} ], [ {"author":"Abc"} ] ]নতুন নেস্টেড অ্যারে স্ট্রাকচারকে বিবেচনা করে আপনার ডাউনস্ট্রিম প্রসেসিং লজিক আপডেট করুন। আপনাকে সম্ভবত বাইরের JSONArray-এর মাধ্যমে এবং তারপরে প্রতিটি ভিতরের JSONArray-এর মাধ্যমে আলাদা আলাদা এলিমেন্ট অ্যাক্সেস করতে হবে।
- একাধিক আইটেম বেছে নেওয়ার পরে বা ফিল্টার খালি অ্যারে রিটার্ন করলে JSONPath ইন্ডেক্সিং
মাল্টি-আইটেম সিলেক্টর (যেমন,
[*]) বা ফিল্টার ([?(condition)]) প্রয়োগ করার সাথে সাথেই কোনও ইন্ডেক্স (যেমন,[0]) প্রয়োগ করলে, আচরণের পরিবর্তন হয়। আগে, এই ধরনের এক্সপ্রেশন, একত্রিত ফলাফল থেকে নির্দিষ্ট ইন্ডেক্সে থাকা আইটেম বেছে নেওয়ার চেষ্টা করত। নতুন ভার্সনে, এই এক্সপ্রেশনগুলি এখন একটি খালি অ্যারে ([]) রিটার্ন করবে।যেমন,
আগের আচরণ:$.store.book[*][0] বর্তমান আচরণ:{"category": "reference", "price": 8.95, "author": "Nigel Rees"} অ্যাকশন:[]
যদি ফিল্টার করার পরে ফিল্টার করা সেট থেকে নির্দিষ্ট আইটেম পাওয়ার প্রয়োজন হয়, তাহলে JSONPath-এর মাধ্যমে পাওয়া ফিল্টার করা অ্যারে প্রসেস করুন, যেমন,
$..book[?(@.category == 'fiction')]এবং তারপরে আগের ফলাফল থেকে[0]নিন। - JSONPath নেগেটিভ অ্যারে স্লাইসিং আউটপুট পরিবর্তন
নতুন ভার্সনে নেগেটিভ অ্যারে স্লাইসিংয়ের (যেমন:
[-2:], [-1:]) আচরণ পরিবর্তন করা হয়েছে। আগে, কোনও অ্যারেতে নেগেটিভ স্লাইস প্রয়োগ করলে (অ্যারের শেষ থেকে এলিমেন্ট নির্দেশ করে), পুরনো ভার্সনটি ভুলভাবে সেই স্লাইস থেকে শুধুমাত্র একটি আইটেম রিটার্ন করত। নতুন ভার্সন এখন সঠিকভাবে একটি তালিকা (অ্যারে) রিটার্ন করে যাতে নির্দিষ্ট নেগেটিভ রেঞ্জের মধ্যে থাকা সব এলিমেন্ট থাকে।যেমন
আগের আচরণ:$.store.book[-2:] বর্তমান আচরণ:{"price":12.99,"category":"fiction","author":"Evelyn Waugh"} অ্যাকশন:[ {"category":"fiction","author":"Evelyn Waugh","price":12.99}, {"category":"fiction","author":"Herman Melville","price":8.99} ]কাঙ্ক্ষিত আউটপুট পেতে, রিটার্ন করা JSON অ্যারেতে ইটারেট করার জন্য ডাউনস্ট্রিম প্রসেসিং লজিক এখন আপডেট করতে হবে।
- JSONPath-এ আগের ডট আরও কঠোরভাবে চেক করা
রুট থেকে সরাসরি অ্যাক্সেস করা এলিমেন্টের জন্য সিনট্যাক্স আরও কঠোরভাবে প্রয়োগ করা হয়। যখন এলিমেন্টগুলি পূর্ববর্তী ডট ছাড়াই সরাসরি রুট থেকে অ্যাক্সেস করা হয় (যেমন:
$propertyelement), তখন এই ধরনের সিনট্যাক্স এখন একটি সমস্যা হিসেবে বিবেচিত হয় এবং এটি প্রক্সি ডেপ্লয়মেন্টে বাধা দেয়।যেমন
$store,{ "bicycle": { "color": "red", "book": [{"author": "Abc"}] }, "book": [ {"price": 8.95, "category": "reference", "author": "Nigel Rees"}, {"price": 12.99, "category": "fiction", "author": "Evelyn Waugh"}, {"price": 8.99, "category": "fiction", "author": "Herman Melville"} ] }বর্তমান আচরণ:
Proxy will fail to deploy.অ্যাকশন:
ডট অন্তর্ভুক্ত করতে আপনার JSONPath পরিবর্তন করুন:
$.propertyName(যেমন:$.store)। এটি সঠিকভাবে টার্গেট করবে এবং ভ্যালু রিট্রিভ করবে। - ডায়নামিক JSONPath এক্সপ্রেশন
যেসব নীতিতে JSONPath এক্সপ্রেশনটি কোনও ভেরিয়েবেল (যেমন:
বা{myJsonPathVariable} ) দ্বারা প্রদান করা হয় সেগুলির দিকে মনোযোগ দিন। উপরে বর্ণিত সম্ভাব্য আচরণগত পরিবর্তনের সাথে এইসব ভেরিয়েবেলের মানও চেক করতে হবে।{dynamicPath}
হ্রাস করা
পরিবর্তন শনাক্তকরণ টুল ব্যবহার করে বা বর্ণিত প্যাটার্ন খোঁজার জন্য আপনার API প্রক্সি ম্যানুয়ালি পর্যালোচনা করে, আপগ্রেড করার ফলে প্রভাবিত হতে পারে এমন যেকোনও প্রক্সি বা শেয়ার করা ফ্লো শনাক্ত করুন। আপনি টুলটি ব্যবহার করলে, আউটপুট প্রভাবিত প্রক্সি বা শেয়ার করা ফ্লো, প্রাসঙ্গিক নীতি এবং কোনও সমস্যাযুক্ত JSON পাথ শনাক্ত করবে, যেমনটি নিচে দেওয়া আউটপুটের উদাহরণে দেখানো হয়েছে:
| সংগঠন | পরিবেশ | আর্টিফ্যাক্টের নাম | আর্টিফ্যাক্টের ধরন | পুনরায় বিবেচনা করা | নীতির নাম | নীতির প্রকার | প্রভাবের ধরন | প্রভাব সম্পর্কিত নির্দিষ্ট ফিল্ড | প্রভাবের নিশ্চয়তা | ডকুমেন্টেশন |
|---|---|---|---|---|---|---|---|---|---|---|
| org1 | dev | proxy1 | প্রক্সি | 4 | EV-ExtractRequestParams | ExtractVariables | অবজেক্ট ভ্যালুর জন্য JSONPath ওয়াইল্ডকার্ড [*] আচরণের পরিবর্তন | $.store[*] | বেশি | অবজেক্ট ভ্যালুর জন্য JSONPath ওয়াইল্ডকার্ড [*]-এর আচরণে পরিবর্তন |
| org2 | prod | proxy2 | শেয়ারফ্লো | 1 | EV-ExtractResponseParams | ExtractVariables | JSONPath-এ পাথ শেষে ডট (.) থাকলে এখন সমস্যা হয় | $.store.book. | বেশি | পাথে JSONPath-এর শেষে থাকা ডট (.) সমস্যার কারণ হয় |
| org3 | dev | proxy3 | প্রক্সি | 3 | SC-FetchUserProfile | ServiceCallout | JSONPath রিকার্সিভ ডিসেন্ট (..) আউটপুট স্ট্রাকচার পরিবর্তন | $..book | বেশি | JSONPath রিকার্সিভ ডিসেন্ট (..) আউটপুট স্ট্রাকচার পরিবর্তন |
| org4 | prod | proxy4 | শেয়ারফ্লো | 2 | RF-InvalidAuthToken | RaiseFault | JSONPath ইন্ডেক্সিং একাধিক আইটেম বেছে নেওয়ার পরে বা ফিল্টার করার পরে এখন খালি অ্যারে রিটার্ন করে | $.store.book[*][0] | বেশি | একাধিক আইটেম বেছে নেওয়ার পরে JSONPath ইন্ডেক্সিং বা ফিল্টার খালি অ্যারে রিটার্ন করে |
| org5 | টেস্ট | proxy5 | প্রক্সি | 6 | SC-FetchProfileDetails | ServiceCallout | JSONPath নেগেটিভ অ্যারে স্লাইসিং আউটপুট পরিবর্তন | $.store.book[-2:] | বেশি | JSONPath নেগেটিভ অ্যারে স্লাইসিং আউটপুট পরিবর্তন |
| org6 | prod | proxy6 | প্রক্সি | 2 | ML-LogRequestDetails | MessageLogging | JSONPath Stricter Preceding Dot | $store | বেশি | JSONPath-এ আগের ডট আরও কঠোরভাবে চেক করা |
| org7 | টেস্ট | proxy7 | প্রক্সি | 5 | RF-InvalidTokenDetails | RaiseFault | ডায়নামিক JSONPath এক্সপ্রেশন | myJsonPathVariable | মাঝারি | ডায়নামিক JSONPath এক্সপ্রেশন |
উপরের আউটপুট টেবিলের কলামের বিস্তারিত ব্যাখ্যা পেতে, টুলের আউটপুট বোঝা বিভাগ দেখুন।
এর প্রভাব কমানোর জন্য একটি সামগ্রিক কৌশল প্রয়োজন। এই প্রসেসে উপযুক্ত আপডেট পাথ বেছে নেওয়া এবং শনাক্ত করা JSONPath এক্সপ্রেশনের জন্য প্রয়োজনীয় সমাধান প্রয়োগ করা হয়।
আপনার জন্য সবচেয়ে উপযুক্ত আপগ্রেড পাথ পদ্ধতি বেছে নিন:
- জিরো ডাউনটাইম মাইগ্রেশন
এই স্ট্র্যাটেজির মধ্যে এক বা একাধিক নতুন এনভায়রনমেন্ট সংগ্রহ করা হয় যাতে আপনি এতে আলাদা মেসেজ প্রসেসর নোড কানেক্ট করতে পারেন। এই ধরনের মেসেজ প্রসেসর নোড 4.53.01 ভার্সন ইনস্টল করার জন্য সেট করা যেতে পারে এবং এতে আধুনিক JSONPath এক্সপ্রেশন সহ প্রক্সি থাকে। এগুলি আপগ্রেড করার সময় ব্যবহার করা যেতে পারে এবং আপগ্রেড সম্পূর্ণ হয়ে গেলে এগুলি বন্ধ করে দেওয়া যেতে পারে। এই কৌশলটি নির্বিঘ্নে কাজ করে, তবে মসৃণ আপগ্রেড নিশ্চিত করতে অতিরিক্ত মেসেজ-প্রসেসর নোড সাময়িকভাবে সংগ্রহ করতে হয়। নিচে বিবরণ দেওয়া হল:
- একটি নতুন এনভায়র্নমেন্ট তৈরি করুন এবং এই নতুন এনভায়র্নমেন্টে 4.53.01 ভার্সনের নতুন মেসেজ-প্রসেসর নোড যোগ করুন।
- প্রভাবিত প্রক্সির জন্য নতুন এনভায়রনমেন্টে প্রক্সি বান্ডেল আপলোড করুন এবং সমাধান বিভাগে ব্যাখ্যা করা প্রয়োজনীয় সমাধান প্রয়োগ করুন ও নতুন এনভায়রনমেন্টে আপডেট করা প্রক্সি বান্ডেল ডেপ্লয় করুন।
- নতুন এনভায়রনমেন্টে ট্রাফিক রিডাইরেক্ট করুন এবং পুরনো এনভায়রনমেন্ট থেকে প্রভাবিত প্রক্সি আন-ডিপ্লয় করুন।
- 4.53.01 ভার্সনে মূল মেসেজ প্রসেসর নোড আপগ্রেড করুন। এমন প্রক্সি ডেপ্লয় করুন যেটিতে আসল এনভায়রনমেন্টে JSONPath সংক্রান্ত সমস্যার সমাধান আছে।
- পুরনো এনভায়রনমেন্টে ট্রাফিক ফিরিয়ে আনুন, যেখানে এখন 4.53.01 ভার্সনে মেসেজ প্রসেসর ও নতুন jsonpath এক্সপ্রেশনের জন্য আধুনিক করা প্রক্সি আছে।
- নতুন এনভায়রনমেন্ট ও সংশ্লিষ্ট নোড মুছে দিন ও বন্ধ করে দিন।
- ডাউনটাইম ও আপগ্রেড
এই স্ট্র্যাটেজিতে ভুল JSON পাথ এক্সপ্রেশন ব্যবহার করে API প্রক্সি ডাউনটাইম সংগ্রহ করা হয়। এর জন্য অতিরিক্ত মেসেজ প্রসেসর নোড সংগ্রহ করার প্রয়োজন হয় না, তবে প্রভাবিত প্রক্সিগুলির জন্য API ট্রাফিকে ব্যাঘাত ঘটে।
- প্রভাবিত নীতি সহ প্রভাবিত প্রক্সি শনাক্ত করুন এবং প্রভাবিত সব প্রক্সির জন্য একটি নতুন রিভিশন তৈরি করুন।
- প্রক্সি সার্ভারের নতুন রিভিশনে সমাধান বিভাগে ব্যাখ্যা করা সমাধান প্রয়োগ করে প্রয়োজনীয় সমাধান প্রয়োগ করুন। এটি এখনও ডেপ্লয় করবেন না।
- প্রভাবিত প্রক্সি/প্রক্সিগুলির জন্য ডাউনটাইম সংগ্রহ করুন।
- প্রাইভেট ক্লাউড ভার্সন 4.53.01-এর জন্য সব মেসেজ প্রসেসর Edge-এ আপগ্রেড করুন। মনে রাখবেন, নতুন আপগ্রেড করা মেসেজ প্রসেসরে আগে থেকে থাকা প্রক্সি কাজ নাও করতে পারে।
- সব মেসেজ প্রসেসর Edge for private cloud ভার্সন 4.53.01-এ আপগ্রেড করা হয়ে গেলে , ঠিক করা JSONPath এক্সপ্রেশন সহ নতুন তৈরি করা প্রক্সি রিভিশন ডেপ্লয় করুন।
- এই ধরনের প্রক্সিতে ট্রাফিক আবার চালু করুন।
- আপগ্রেড করার আগে প্রক্সি নতুন করে ডিজাইন করা
Edge for Private Cloud 4.53.01-এ আপগ্রেড করার আগে আপনি প্রক্সি নিজেই নতুন করে ডিজাইন করতে পারবেন। নির্দিষ্ট JSON পাথ এক্সপ্রেশনের উপর নির্ভর না করে, আপনি অন্য পদ্ধতি ব্যবহার করে একই ফলাফল পেতে পারেন।
যেমন, আপনি যদি JSON পাথ সহ কোনও এক্সট্র্যাক্ট ভেরিয়েবল নীতি ব্যবহার করেন, তাহলে আপনি নীতিটিকে একটি JavaScript নীতি দিয়ে প্রতিস্থাপন করতে পারেন যা নতুন ভার্সনে আপগ্রেড করার আগে একই ধরনের ডেটা এক্সট্র্যাক্ট করে। আপগ্রেড সম্পূর্ণ হয়ে গেলে, আপনি নিজের প্রক্সি পরিবর্তন করে নতুন ফর্ম্যাটের সাথে JSON পাথ ব্যবহার করতে পারবেন।
JavaCallout পরিবর্তন
প্রসঙ্গ
Edge for private cloud 4.53.00 ও এর আগের ভার্সনে deprecated ($APIGEE_ROOT/edge-message-processor/lib/deprecated) নামের একটি ডিরেক্টরি থাকত, এতে JAR লাইব্রেরির একটি গুচ্ছ থাকত। এইসব লাইব্রেরি JavaCallout নীতিতে জাভা কোডে ব্যবহারের জন্য উপলভ্য ছিল এবং আপনার কাস্টম জাভা কোড এগুলি সরাসরি বা পরোক্ষভাবে ব্যবহার করতে পারত।
পরিবর্তনগুলি
Edge-এর প্রাইভেট ক্লাউড ভার্সন 4.53.01 থেকে সচল নয় ডিরেক্টরি এখন সরিয়ে দেওয়া হয়েছে। আপনার জাভা কোড যদি এই ধরনের লাইব্রেরির উপর নির্ভর করে, তাহলে মেসেজ প্রসেসরকে 4.53.01 ভার্সনে আপগ্রেড করা হলে, এই ধরনের জাভা কলআউট ব্যবহার করা প্রক্সি কাজ করবে না। এই ধরনের ব্যর্থতা এড়াতে, মেসেজ-প্রসেসরকে 4.53.01 ভার্সনে আপগ্রেড করার আগে নিচে উল্লেখ করা প্রশমনকারী ধাপগুলি অনুসরণ করুন।
হ্রাস করা
পরিবর্তন শনাক্তকরণ টুল ব্যবহার করে অথবা ম্যানুয়ালি আপনার Java কলআউট নীতি ও সংশ্লিষ্ট jar পর্যালোচনা করুন। আপনার বর্তমান মেসেজ প্রসেসরের "সেকেল" ডিরেক্টরিতে কোনও নীতি রেফারেন্স লাইব্রেরি আছে কিনা তা চেক করে দেখুন।
আপনি যদি উপরে উল্লিখিত শনাক্তকরণের জন্য Apigee-এর দেওয়া টুল ব্যবহার করেন, তাহলে টুলটি নিম্নলিখিত সারণীতে দেখানো রিপোর্ট তৈরি করবে। বিশেষত, এটি এমন নীতিকে টার্গেট করে যা
$APIGEE_ROOT/edge-message-processor/lib/deprecatedডিরেক্টরিতে পাওয়া JAR-এর রেফারেন্স দেয়, এটি Edge for Private Cloud-এর পুরনো ভার্সন।টুলটি নিচে উল্লেখ করা ফর্ম্যাটে রিপোর্ট তৈরি করবে:
সংগঠন পরিবেশ আর্টিফ্যাক্টের নাম আর্টিফ্যাক্টের ধরন পুনরায় বিবেচনা করা নীতির নাম নীতির প্রকার প্রভাবের ধরন প্রভাব সম্পর্কিত নির্দিষ্ট ফিল্ড প্রভাবের নিশ্চয়তা ডকুমেন্টেশন org1 কোনওটিই নয় কোনওটিই নয় org-level-jar কোনওটিই নয় কোনওটিই নয় java-callout simple-javacallout-o1-jar-1.jar-এর জন্য বাতিল করা লাইব্রেরি শনাক্ত করা হয়েছে[' commons-io-2.5.jarথেকে ক্লাসorg.apache.commons.io.FileUtils-এর ব্যবহার শনাক্ত করা হয়েছে, 'commons-io-2.5.jarথেকে ক্লাসorg.apache.commons.io.input.XmlStreamReaderException-এর ব্যবহার শনাক্ত করা হয়েছে']বেশি JavaCallout পরিবর্তন org3 env3 কোনওটিই নয় env-level-jar কোনওটিই নয় কোনওটিই নয় java-callout fat-javacallout-e3-jar-1.jar-এর জন্য বাতিল করা লাইব্রেরি শনাক্ত করা হয়েছে[' httpclient-4.5.2.jarথেকেorg.apache.http.impl.auth.NTLMSchemeFactoryক্লাসের ব্যবহার শনাক্ত করা হয়েছে']বেশি JavaCallout পরিবর্তন org1 env1 p1 proxy-level-jar 1 কোনওটিই নয় java-callout simple-javacallout-p1-jar-1.jar-এর জন্য বাতিল করা লাইব্রেরি শনাক্ত করা হয়েছে[' commons-lang3-3.4.jarথেকে ক্লাসorg.apache.commons.lang3.builder.ToStringBuilder-এর ব্যবহার শনাক্ত করা হয়েছে', 'commons-lang3-3.4.jarথেকে ক্লাসorg.apache.commons.lang3.Validate-এর ব্যবহার শনাক্ত করা হয়েছে']বেশি JavaCallout পরিবর্তন উপরের আউটপুট টেবিলের কলামের বিস্তারিত ব্যাখ্যা পেতে, টুল আউটপুট বোঝা বিভাগটি দেখুন।
- আপনি এই ধরনের অপ্রচলিত লাইব্রেরি শনাক্ত করার পরে , সমস্যা কমানোর জন্য নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি অনুসরণ করতে পারেন।
- রিসোর্স প্লেসমেন্ট (সাজেস্ট করা হয় যদি আপনার কাছে অবলুপ্ত ডিরেক্টরি থেকে অল্প সংখ্যক জার / লাইব্রেরি থাকে যা জাভা-কলআউট জার দ্বারা রেফারেন্স করা হচ্ছে)
- শনাক্ত করা বাতিল করা জারকে পছন্দসই লেভেলে রিসোর্স হিসেবে আপলোড করুন: API প্রক্সি রিভিশন, এনভায়রনমেন্ট বা সংস্থা।
- সাধারণত যেভাবে Apigee সফ্টওয়্যার আপগ্রেড করা হয়, সেইভাবেই করুন।
- ম্যানুয়াল প্লেসমেন্ট (আপনার কাছে যদি প্রচুর পরিমাণে জার / লাইব্রেরি থাকে যা Java-Callout জার দ্বারা রেফারেন্স করা হচ্ছে, তাহলে এটি সাজেস্ট করা হয়)
- প্রতিটি মেসেজ প্রসেসর নোডে,
$APIGEE_ROOT/data/edge-message-processor/পাথে external-lib নামের একটি নতুন ডিরেক্টরি তৈরি করুন। - পুরনো হয়ে যাওয়া ডিরেক্টরি থেকে শনাক্ত করা JAR-গুলি এই external-lib ডিরেক্টরিতে কপি করুন:
cp $APIGEE_ROOT/edge-message-processor/lib/deprecated/some.jar$APIGEE_ROOT/data/edge-message-processor/external-lib/some.jar - Apigee ব্যবহারকারী ডিরেক্টরি ও অন্তর্নিহিত জার পড়তে পারছেন কিনা তা নিশ্চিত করুন:
chown -R apigee:apigee$APIGEE_ROOT/data/edge-message-processor/external-lib - সাধারণত যেভাবে Apigee সফ্টওয়্যার আপগ্রেড করা হয়, সেইভাবেই করুন।
- প্রতিটি মেসেজ প্রসেসর নোডে,
- রিসোর্স প্লেসমেন্ট (সাজেস্ট করা হয় যদি আপনার কাছে অবলুপ্ত ডিরেক্টরি থেকে অল্প সংখ্যক জার / লাইব্রেরি থাকে যা জাভা-কলআউট জার দ্বারা রেফারেন্স করা হচ্ছে)
OpenLDAP পরিবর্তন
প্রসঙ্গ
যাচাইকরণ ও অনুমোদনের জন্য Edge Private Cloud-এ OpenLDAP ব্যবহার করা যেতে পারে। Edge for Private Cloud 4.53.01-এ, Apigee-এর পাঠানো OpenLDAP সফ্টওয়্যারটি 2.4 থেকে 2.6 ভার্সনে আপগ্রেড করা হয়েছে।
পরিবর্তনগুলি
OpenLDAP 2.6-এ, আপেক্ষিক স্বতন্ত্র নাম (RDN) প্রায় ২৪১ বাইট/অক্ষরের মধ্যে সীমাবদ্ধ। এই সীমা কঠোরভাবে প্রয়োগ করা হয় এবং এটি পরিবর্তন করা যায় না।
প্রভাব- অত্যধিক বড় RDN সহ এন্ট্রির জন্য রেপ্লিকেশন বা ইমপোর্ট ব্যর্থ হয়।
- সংস্থা, এনভায়রনমেন্ট, কাস্টম রোল, অনুমতি ইত্যাদির মতো এন্টিটি তৈরি করার চেষ্টা করলে, এই সমস্যার মেসেজটি দেখতে পেতে পারেন:
"message": "[LDAP: error code 80 - Other]". - Apigee-এর LDAP-তে ২৪১ বাইটের চেয়ে বড় কোনও DN থাকলে তা প্রভাবিত হয়। এই ধরনের DN থাকলে, Apigee OpenLDAP সফ্টওয়্যার আপগ্রেড করা যাবে না এবং আপগ্রেড করার আগে আপনাকে এই ধরনের আইটেমের জন্য প্রশমন কৌশল অনুসরণ করতে হবে।
সাধারণত, Apigee-এর LDAP-তে, দীর্ঘ DN অনুমতি সম্পর্কিত কারণ সেগুলি একাধিক এন্টিটি একত্রিত করে তৈরি করা হয়। এই ধরনের অনুমতির এন্ট্রিগুলি বিশেষত আপগ্রেড সংক্রান্ত সমস্যার সম্মুখীন হয়।
যেমন,
dn: cn=@@@environments@@@*@@@applications@@@*@@@revisions@@@*@@@debugsessions,ou=resources,cn=businessuser,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
সাধারণত, আপনার সংস্থা, এনভায়রনমেন্ট ও রোলের নাম এমন দৈর্ঘ্যের হয় যে LDAP-তে RDN ২৪১ বাইটের চেয়ে ছোট হয়।
হ্রাস করা
4.53.01 ভার্সনে আপগ্রেড করার আগে:
আপনার আগে থেকে থাকা LDAP 2.4 ক্লাস্টারে বড় RDN আছে কিনা তা যাচাই করতে নিম্নলিখিত ধাপগুলি সাহায্য করবে।
#১ - LDAP ডেটা এক্সট্র্যাক্ট করা
স্বতন্ত্র নাম (dn) খুঁজে পেতে ldapsearch কমান্ড ব্যবহার করুন এবং আউটপুট একটি ফাইলে রিডাইরেক্ট করুন:
ldapsearch -o ldif-wrap=no -b "dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w LDAP_PASSWORD dn > /tmp/DN.ldif
উপরের DN.ldif ফাইলে LDAP এন্ট্রি আছে কিনা তা ভালোভাবে দেখে নিন।
#২ - বড় RDN শনাক্ত করা
পরিবর্তন শনাক্তকরণ টুল, ২৪১ বাইট/ক্যারেক্টারের বেশি LDAP RDN শনাক্ত করতে, জেনারেট করা LDIF ফাইল ব্যবহার করে।
টুলটি নিম্নলিখিত ফর্ম্যাটে রিপোর্ট তৈরি করবে:
| সংগঠন | পরিবেশ | আর্টিফ্যাক্টের নাম | আর্টিফ্যাক্টের ধরন | পুনরায় বিবেচনা করা | নীতির নাম | নীতির প্রকার | প্রভাবের ধরন | প্রভাব সম্পর্কিত নির্দিষ্ট ফিল্ড | প্রভাবের নিশ্চয়তা | ডকুমেন্টেশন |
|---|---|---|---|---|---|---|---|---|---|---|
| কোনওটিই নয় | কোনওটিই নয় | cn=really-long-name,ou=userroles,o=edge-platform,ou=organizations,dc=apigee,dc=com | ldif ফাইল | কোনওটিই নয় | কোনওটিই নয় | কোনওটিই নয় | Ldap RDN ২৪১ অক্ষরের বেশি | cn=really-long-name | বেশি | OpenLDAP পরিবর্তন |
উপরের আউটপুট টেবিলের কলামের বিস্তারিত ব্যাখ্যা পেতে, টুল আউটপুট বিভাগটি বুঝুন দেখুন।
উপরের কমান্ড কোনও আউটপুট না দেখালে, এর অর্থ হল বর্তমান LDAP সেট-আপে কোনও RDN ২৪১ বাইট/অক্ষরের বেশি নয়। আপনি আগের মতোই নিরাপদে আপগ্রেড করতে পারবেন।
উপরের কমান্ডটি কোনও আউটপুট তৈরি করলে, এটি নির্দেশ করে যে ২৪১ বাইট/অক্ষরের বেশি RDN উপস্থিত আছে। এই ধরনের আইটেমের জন্য, Edge for Private Cloud 4.53.01 আপগ্রেড করার আগে ধাপ#৩-এ বর্ণিত প্রশমন সংক্রান্ত ধাপগুলি অনুসরণ করুন।
#৩ - বড় RDN ম্যানেজ করা
ধাপ#২ থেকে আউটপুট পাওয়া গেলে, এটি ইঙ্গিত করে যে ২৪১ বাইট/অক্ষরের বেশি RDN আছে এবং নিচে উল্লেখ করা প্রশমন সংক্রান্ত ধাপগুলি অনুসরণ করুন:
২৪১ বাইটের বেশি LDAP এন্ট্রি পর্যালোচনা করুন।
- এটি কাস্টম রোলের নাম, অ্যাপ, API প্রোডাক্ট বা অন্য কোনও এন্টিটি হলে, যার জন্য RDN অনেক বড় হয়ে গেছে, তাহলে ছোট নামের বিকল্প এন্টিটি ব্যবহার করার জন্য মাইগ্রেট করুন।
- যদি সংস্থার নাম বা এনভায়রনমেন্টের নামই দীর্ঘ RDN-এর মূল কারণ হয়, তাহলে আপনাকে ছোট নামের অন্য কোনও সংস্থা বা এনভায়রনমেন্টে মাইগ্রেট করতে হবে।
আপনার LDAP-তে ২৪১ বাইটের বেশি RDN না থাকা পর্যন্ত উপরের ধাপগুলি বার বার করতে থাকুন। এই অবস্থায় পৌঁছে গেলে, স্বাভাবিক নিয়মে প্রাইভেট ক্লাউড ভার্সন আপগ্রেড করা চালিয়ে যান।
ক্রিপ্টোগ্রাফি প্রদানকারী সংক্রান্ত পরিবর্তন
প্রসঙ্গ
এই পরিবর্তন Edge for Private Cloud 4.53.00 থেকে নেওয়া হয়েছে। Edge for Private Cloud 4.53.00-এ, FIPS সহায়তা চালু করতে ইন্টার্নাল ক্রিপ্টোগ্রাফি প্রদানকারীকে Bouncy Castle (BC) থেকে Bouncy Castle FIPS (BCFIPS)-এ আপডেট করা হয়েছে।
পরিবর্তনগুলি
JavaCallout নীতি যদি আসল BC প্রদানকারীর উপর নির্ভর করে, বিশেষ করে BCFIPS প্রদানকারীর মধ্যে আরও শক্তিশালী করা নিরাপত্তা সংক্রান্ত ফাংশন ব্যবহার করার সময় (যেমন, এনক্রিপশন ও সাইনিং, দুটির জন্যই সাধারণ কী পেয়ার ব্যবহার করা), তাহলে এই ধরনের JavaCallout নীতিকে আরও আধুনিক করতে হবে। BC নাম ব্যবহার করে Bouncy Castle ক্রিপ্টোগ্রাফি প্রদানকারীকে লোড করার চেষ্টা করা JavaCallout নীতি ব্যর্থ হতে পারে কারণ ডিফল্ট প্রদানকারী পরিবর্তন করা হয়েছে। BC প্রদানকারী ব্যবহার করে তৈরি করা এই ধরনের নীতি পরে ভেঙে যেতে পারে। পুরনো BC প্রদানকারীর উপর নির্ভর করে এমন কোনও কাস্টম প্রয়োগ আর অ্যাক্সেস করা যাবে না এবং সেগুলি পর্যালোচনা করে আবার প্রয়োগ করতে হবে।
হ্রাস করা
সাজেস্ট করা বিকল্প হল BCFIPS প্রদানকারী ব্যবহার করা। কাস্টম JavaCallout ইমপ্লিমেন্টেশন যা পুরনো প্রোভাইডারের উপর নির্ভর করে, তা Bouncy Castle FIPS প্রোভাইডার ব্যবহার করে পর্যালোচনা ও আবার ইমপ্লিমেন্ট করতে হবে, যা "BCFIPS" স্ট্রিং ব্যবহার করে অ্যাক্সেস করা যাবে।
পরিবর্তন শনাক্তকরণ টুল
Edge for Private Cloud 4.53.01-এ ট্রানজিশন চলাকালীন ও পরে প্রভাবিত হতে পারে এমন Apigee প্রক্সি, নীতি, শেয়ার করা ফ্লো শনাক্ত করতে একটি পরিবর্তন শনাক্তকরণ টুল তৈরি করা হয়েছে। এই টুলটি ডিপ্লয় করা প্রক্সি, শেয়ার করা ফ্লো এবং OpenLDAP-এর উপর হওয়া পরিবর্তনের প্রভাবের বিবরণ সহ একটি রিপোর্ট তৈরি করে এবং শনাক্ত করা প্রক্সি বা শেয়ার করা ফ্লোয়ের সাথে প্রাসঙ্গিক নির্দিষ্ট গাইড ও কৌশল সম্পর্কে নির্দেশাবলী প্রদান করে।
পূর্বশর্ত
- এই টুল চালানোর জন্য RHEL-ভিত্তিক মেশিন প্রয়োজন।
- টুলের স্ক্রিপ্ট রান করার অনুমতি দিতে হোস্ট ভার্চুয়াল মেশিনে JRE 8 ইনস্টল ও সঠিকভাবে কনফিগার করা থাকতে হবে।
- টুলটির জন্য ম্যানেজমেন্ট সার্ভারের সঠিক এন্ডপয়েন্ট (URL) এবং যাচাইকরণ ও ডেটা রিট্রিভ করার জন্য সঠিক অ্যাডমিনিস্ট্রেটিভ ক্রেডেনশিয়াল প্রয়োজন।
- বান্ডেল এক্সট্র্যাক্ট করা, লগ তৈরি করা এবং আউটপুট স্টোর করার জন্য টুলের একটি নির্দিষ্ট ওয়ার্কিং ডিরেক্টরি (যেমন,
/tmp) অ্যাক্সেস করতে হবে। এই ডিরেক্টরিতে পর্যাপ্ত ডিস্ক স্পেস ও উপযুক্ত রিড/রাইট অনুমতি আছে কিনা তা নিশ্চিত করুন। - ২৪১ অক্ষরের / বাইটের বেশি দীর্ঘ RDN শনাক্ত করতে, টুলের OpenLDAP পরিবর্তন - LDAP ডেটা এক্সট্র্যাক্ট করুন বিভাগে
ldapsearchকমান্ড ব্যবহার করে LDIF ফাইল প্রয়োজন।
টুল চালানো
উপরে তালিকাভুক্ত সমস্ত পূর্বশর্ত পূরণ করার পরে, Apigee থেকে ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রদান করে টুলটি ডাউনলোড করুন যা আপনি Apigee রিপোজিটরি অ্যাক্সেস করতে ব্যবহার করেন। ডাউনলোড হয়ে গেলে, ডাউনলোড করা আর্কাইভ এক্সট্র্যাক্ট করুন।
curl -u uName:pWord https://software.apigee.com/apigee/change-detector/change-detector-for-4.53.01_1.0.1.zip -o /tmp/change-detector-for-4.53.01_1.0.1.zip
unzip /tmp/change-detector-for-4.53.01_1.0.1.zip
ডাউনলোড সম্পূর্ণ হয়ে গেলে, টুলের জন্য উপলভ্য সব বিকল্প দেখতে আপনি নিম্নলিখিত কমান্ড রান করাতে পারবেন:
./change-detector --help
টুলটি চালানোর জন্য, নিম্নলিখিত কমান্ড ব্যবহার করুন এবং আপনার তথ্য দিয়ে প্লেসহোল্ডারগুলি পরিবর্তন করুন:
export APIGEE_PASSWORD=[your_password] ./change-detector --username [your_username] --mgmt-url [MGMT url]
বৃহৎ RDN LDAP এন্ট্রি শনাক্ত করতে, নিম্নলিখিত কমান্ড রান করুন:
./change-detector --username [your_username] --mgmt-url [MGMT url] --ldif-file [LDIF_file]
টুলটি json বা csv ফর্ম্যাটে আউটপুট তৈরি করে যা সরাসরি ব্যবহার করা বা Google Sheets-এর মতো মানুষের-পঠনযোগ্য টুলে ইমপোর্ট করা যেতে পারে।
টুলের আউটপুট বোঝা
সংগঠন
এটি সেই সংস্থার নাম নির্দেশ করে যেখানে আর্টিফ্যাক্টটি অবস্থিত। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।
পরিবেশ
সংস্থার মধ্যে নির্দিষ্ট এনভায়রনমেন্ট (যেমন, ডেভেলপমেন্ট, টেস্ট, প্রোডাকশন)। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।
Java কলআউট পরিবর্তনের ক্ষেত্রে, Artifact Type=env-level-jar হলে, এই ফিল্ড None হবে।
আর্টিফ্যাক্টের নাম
এই ফিল্ড থেকে প্রক্সি/শেয়ার্ড ফ্লোয়ের নাম জানা যায়। OpenLDAP পরিবর্তনের জন্য, এই ফিল্ডে RDN-এর LDAP এন্টিটি দেখানো হয়।
Java কলআউট পরিবর্তনের ক্ষেত্রে, Artifact Type=env-level-jar অথবা org-level-jar হলে, এই ফিল্ড None হবে।
আর্টিফ্যাক্টের ধরন
- OAS ও JSON পরিবর্তনের ক্ষেত্রে, এই কলামটি আর্টিফ্যাক্ট, প্রক্সি বা শেয়ার করা ফ্লোয়ের ধরন নির্দিষ্ট করে।
- Java কলআউট পরিবর্তনের জন্য, এই কলামটি সেই জায়গা বা লেভেল সম্পর্কে বিবরণ প্রদান করে যেখানে প্রভাবিত jar আপলোড করা হয়। রিসোর্স (JAR) তিনটি লেভেলের মধ্যে যেকোনও একটিতে স্টোর করা যেতে পারে:
org-level,env-level,proxy-level. - OpenLDAP পরিবর্তনের জন্য, এই ফিল্ডটি টুলে ব্যবহৃত LDIF ফাইলকে নির্দেশ করে।
পুনরায় বিবেচনা করা
এটি প্রভাবিত প্রক্সি/শেয়ার্ড ফ্লোয়ের ডিপ্লয় করা রিভিশনের দিকে নির্দেশ করে। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।
নীতির নাম
সম্ভাব্য সমস্যা হিসেবে শনাক্ত করা নির্দিষ্ট নীতির নাম। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।
নীতির ধরন
এটি নীতির ধরনকে নির্দেশ করে। OpenLDAP পরিবর্তনের জন্য, এটি None হবে।
প্রভাবের ধরন
- এই ফিল্ডে প্রক্সি/শেয়ার করা ফ্লোতে শনাক্ত করা নির্দিষ্ট ধরনের পরিবর্তনের বিবরণ দেওয়া হয়।
- Java কলআউট পরিবর্তনের জন্য, Java কলআউট সম্পর্কিত পরিবর্তনের শনাক্তকরণ, টুলটি প্রভাবিত Java কলআউটের দিকে নির্দেশ করে, যার মধ্যে
$APIGEE_ROOT/edge-message-processor/lib/deprecatedডিরেক্টরিতে উপস্থিত JAR-এর রেফারেন্স রয়েছে। এই নির্দিষ্ট কলামে Edge for Private Cloud-এর পুরনো ভার্সন নিম্নলিখিত উপায়ে দেখানো হয়। - OpenLDAP পরিবর্তনের ক্ষেত্রে, কোনও LDAP এন্টিটির RDN ২৪১ বাইট বা অক্ষরের বেশি হলে এই ফিল্ডে তা দেখানো হয়।
deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR
প্রভাবিত নির্দিষ্ট ফিল্ড
- OAS পরিবর্তনের জন্য, এই ফিল্ড হল নীতির সোর্স ট্যাগে ব্যবহৃত ভেরিয়েবলের নাম।
- JSON পরিবর্তনের ক্ষেত্রে, এই ফিল্ডে সেই JSONPath এক্সপ্রেশন বা এলিমেন্ট দেখানো হয় যেটিকে সম্ভাব্য সমস্যা হিসেবে ফ্ল্যাগ করা হয়েছে।
- Java কলআউট পরিবর্তনের জন্য, এই ফিল্ডে সঠিক ক্লাস ও সংশ্লিষ্ট JAR-এর নাম (পুরনো প্রাইভেট ক্লাউড ভার্সনের
$APIGEE_ROOT/edge-message-processor/lib/deprecatedডিরেক্টরিতে উপস্থিত) সংক্রান্ত বিবরণ থাকে যা প্রভাবিত JavaCallout jar ব্যবহার/রেফার করে। এর ফলে, ভার্সন 4.53.01-এ আপগ্রেড করার পরে এটি প্রশমিত না হলে, ব্যর্থতা দেখা দেয়। - OpenLDAP পরিবর্তনের ক্ষেত্রে, এই ফিল্ডে LDAP এন্টিটির RDN দেখানো হয়, যেগুলি ২৪১ বাইট বা অক্ষরের বেশি।
['Detected use of class CLASS_NAME_1 from JAR_NAME_1',
Detected use of class CLASS_NAME_2 from JAR_NAME_2',
.. , .. , ]প্রভাব নিশ্চিততা
এই ফিল্ড থেকে জানা যায় যে টুলটি কতটা নিশ্চিতভাবে কোনও নির্দিষ্ট আইটেম শনাক্ত করেছে। এই কলামের ভ্যালু বেশি বা মাঝারি হতে পারে (পরে আরও ভ্যালু যোগ করা হতে পারে)।
বেশি ভ্যালু মানে টুলটি নির্ধারণ করেছে যে ভার্সন 4.53.01-এ আপগ্রেড করার পরে আইটেমটি অ্যাপ্লিকেশন ভেঙে যাওয়ার কারণ হতে পারে এমন সম্ভাবনা খুব বেশি। মাঝারি ভ্যালু থেকে বোঝা যায় যে টুলটি শনাক্তকরণ সম্পর্কে নিশ্চিত নয় এবং নির্ধারণ করার জন্য আরও কৌশল প্রয়োজন (যেমন, প্রক্সি এক্সিকিউশনের সময় সমাধান করা ভেরিয়েবল পর্যবেক্ষণ করতে ট্রেস ক্যাপচার করা)।
- JavaCallout ও OpenLDAP পরিবর্তন সংক্রান্ত শনাক্তকরণের ক্ষেত্রে প্রভাবের নিশ্চয়তা কলামের ভ্যালু সবসময় বেশি হবে।
ডকুমেন্টেশন
এই কলামে Apigee-এর ডকুমেন্টেশনের (এই নিবন্ধের প্রাসঙ্গিক বিভাগ) একটি হাইপারলিঙ্ক দেওয়া আছে যা সমস্যা ও তা কমানোর ধাপগুলি ব্যাখ্যা করে।