أداة رصد التغييرات
تم إنشاء أداة لرصد التغييرات بهدف تحديد خوادم Apigee الوكيلة والسياسات والتدفقات المشترَكة وملفات JAR للموارد (على مستوى الخادم الوكيل أو البيئة أو المؤسسة) التي قد تتأثر أثناء عملية الانتقال إلى Edge for Private Cloud 4.54.00 وبعدها. تُنشئ هذه الأداة تقريرًا يوضّح الخوادم الوكيلة والتدفقات المشترَكة وملفات JAR للموارد التي تم نشرها والمتأثرة بالتغييرات، وتوفّر إرشادات إلى أدلة واستراتيجيات محدّدة ذات صلة بالخوادم الوكيلة أو التدفقات المشترَكة التي تم تحديدها.
المتطلبات الأساسية
- يلزم توفّر جهاز يستند إلى RHEL أو Rocky Linux لتشغيل هذه الأداة (راجِع متطلبات تثبيت Edge).
- يجب تثبيت JRE 8 أو إصدار أحدث وضبطه بشكلٍ صحيح على الجهاز المضيف للسماح بتشغيل النصوص البرمجية للأداة.
- تتطلّب الأداة الوصول إلى الشبكة لنقطة النهاية (عنوان URL) الخاصة بـ Management Server وبيانات اعتماد إدارية صالحة للمصادقة واسترداد البيانات.
- تتطلّب الأداة الوصول إلى دليل عمل محدّد (مثل
/tmp) يتضمّن مساحة كافية على القرص وأذونات مناسبة للقراءة وإذن التعديل من أجل تنزيل الحِزم وإنشاء السجلات وتخزين الناتج. - (اختياري) عند الترقية من الإصدار 4.53.00، تتطلّب الأداة ملف LDIF تم إنشاؤه باستخدام الأمر
ldapsearchفي قسم تغيير OpenLDAP - استخراج بيانات LDAP لرصد أسماء RDN الطويلة التي تتجاوز 241 حرفًا/بايت.
تشغيل الأداة
بعد استيفاء جميع المتطلبات الأساسية، نزِّل الأداة من مستودع Apigee باستخدام بيانات اعتماد Apigee، واستخرِج الأرشيف الذي تم تنزيله:
curl -u uName:pWord https://software.apigee.com/apigee/change-detector/change-detector-for-4.54.00_1.0.0.zip -o /tmp/change-detector-for-4.54.00_1.0.0.zip
unzip /tmp/change-detector-for-4.54.00_1.0.0.zip
بعد اكتمال التنزيل، يمكنك تشغيل الأمر التالي للاطّلاع على جميع الخيارات المتاحة للأداة:
./change-detector --help
لتشغيل الأداة، استخدِم الأمر التالي واستبدِل العناصر النائبة بمعلوماتك:
export APIGEE_PASSWORD=YOUR_PASSWORD ./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION
حدِّد --source-version 4.53.01 عند الترقية مباشرةً من Edge for Private Cloud 4.53.01 للبحث عن تغييرات Java 21. في حال الترقية من الإصدار 4.53.00، حدِّد --source-version 4.53.00 لإجراء فحص تراكمي يشمل عمليات إيقاف السياسات في الإصدار 4.53.01 وتغييرات Java 21.
تُنشئ الأداة ناتجًا بتنسيق CSV أو JSON يمكن مراجعته مباشرةً أو استيراده إلى تطبيقات جداول البيانات، مثل "جداول بيانات Google".
فهم ناتج الأداة
يحتوي التقرير على الأعمدة التالية:
المؤسسة
اسم المؤسسة التي يتوفّر فيها العنصر. بالنسبة إلى تغييرات OpenLDAP، تكون القيمة None.
البيئة
البيئة المحدّدة (مثل dev أو test أو prod) ضمن المؤسسة. بالنسبة إلى ملفات JAR على مستوى المؤسسة، يكون هذا الحقل N/A. بالنسبة إلى تغييرات OpenLDAP، تكون القيمة None.
اسم الخادم الوكيل
اسم الخادم الوكيل لواجهة برمجة التطبيقات أو التدفق المشترَك. بالنسبة إلى ملفات JAR للموارد على مستوى المؤسسة، يعرض هذا الحقل اسم المؤسسة. بالنسبة إلى ملفات JAR للموارد على مستوى البيئة، يعرض هذا الحقل اسم البيئة. بالنسبة إلى تغييرات OpenLDAP، يعرض هذا الحقل كيان LDAP الخاص باسم RDN.
النطاق
يحدّد نطاق العنصر الذي تم فحصه ومستواه:
proxy-level-jar: ملف JAR للموارد تم تحميله على مستوى الخادم الوكيل (ضمن/resources/java)env-level-jar: ملف JAR للموارد تم تحميله على مستوى البيئة (راجِع ملفات الموارد)org-level-jar: ملف JAR للموارد تم تحميله على مستوى المؤسسةproxy: سياسة أو إعداد ضمن مراجعة خادم وكيل لواجهة برمجة التطبيقاتsharedflow: سياسة أو إعداد ضمن مراجعة تدفق مشترَكldif: ملف OpenLDAP LDIF (لعمليات التحقّق من OpenLDAP)
التغيير
رقم المراجعة المحدّد للخادم الوكيل لواجهة برمجة التطبيقات أو التدفق المشترَك. بالنسبة إلى ملفات JAR على مستوى البيئة أو المؤسسة، يكون هذا الحقل N/A. بالنسبة إلى تغييرات OpenLDAP، تكون القيمة None.
اسم السياسة
اسم السياسة المحدّدة التي تم رصدها كمشكلة محتملة (مثل JavaCallout-ValidateAccount أو OASValidation-1). بالنسبة إلى الموارد على مستوى المؤسسة، يعرض هذا الحقل N/A (Organization Resource). بالنسبة إلى الموارد على مستوى البيئة، يعرض هذا الحقل N/A (Environment Resource). بالنسبة إلى تغييرات OpenLDAP، تكون القيمة None.
نوع السياسة
نوع السياسة (مثل java-callout أو OASValidation). بالنسبة إلى تغييرات OpenLDAP، تكون القيمة None.
الإصدار المصدر
إصدار OPDK المصدر الذي تم ضبطه للفحص (4.53.00 أو 4.53.01)
المورد المتأثر
يصف المورد أو المكتبة المحدّدة التي تم رصدها:
- بالنسبة إلى عمليات رصد الاستدعاء إلى Java 21: الاسم الدقيق لملف JAR المتأثر (مثل
order-transform.jarأوcorba-callout.jar) - بالنسبة إلى عمليات إيقاف الإصدار 4.53 القديم:
deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR - بالنسبة إلى عمليات رصد OAS أو JSONPath أو OpenLDAP: عنصر السياسة أو المورد المحدّد (مثل
oas content type handlingأوwildcard expressionأوLDAP RDN exceeds 241 characters)
سبب الرصد
توفّر معلومات تشخيصية مفصّلة حول سبب وضع علامة على العنصر:
- بالنسبة إلى عمليات رصد الاستدعاء إلى Java 21: الفئة المحدّدة ومكتبة الاستبدال المستهدَفة (إن أمكن) والسبب الأساسي (مثل
Class: javax.xml.bind.JAXBContext | Target Library: jakarta.xml.bind-api-2.3.3.jar | Root Cause: ClassNotFoundException: JAXB API was removed from Java SE in Java 11 (JEP 320)). إذا تم رصد مشاكل متعددة ضمن ملف JAR نفسه، يتم دمجها مع الفصل بينها باستخدام الرمز;. - بالنسبة إلى عمليات إيقاف الإصدار 4.53 القديم: قائمة بالفئات التي تتم الإشارة إليها من المكتبات التي تم إيقافها (مثل
['Detected use of class CLASS_NAME from JAR_NAME']) - بالنسبة إلى عمليات التحقّق من صحة OAS: المتغيّر المحدّد في العلامة
Source(مثلSource=response) - بالنسبة إلى JSONPath: التعبير الدقيق الذي تم وضع علامة عليه
- بالنسبة إلى OpenLDAP: اسم RDN الخاص بكيان LDAP المحدّد الذي تجاوز 241 بايت أو حرفًا
مدى التأثير
يشير هذا الحقل إلى درجة الثقة التي حدّدت بها الأداة مانعًا للترقية. يتم توحيد القيم بأحرف كبيرة:
HIGH: رصدت الأداة تغييرًا غير متوافق (مثل استدعاء فئة تمت إزالتها نهائيًا، مثلjavax.xml.bind.JAXBContextأوsun.misc.BASE64Encoder، أو اسم RDN في OpenLDAP يتجاوز 241 بايت). هناك احتمال كبير جدًا لحدوث خطأ في وقت التشغيل (ClassNotFoundExceptionأوNoClassDefFoundError) ما لم يتم إصلاحه.MEDIUM: رصدت الأداة نمطًا يتطلب فحص المطوّر والتحقّق من الوظائف:- بالنسبة إلى عمليات الاستدعاء إلى Java: تم وضع علامة عليها ضمن
METHOD_SIGNATURE_MODIFICATION(مثلorg.w3c.dom.Document)، حيث تتوفّر الفئة في Java 21 ولكن قد تم تغيير طرق معيّنة أو إيقافها. - بالنسبة إلى سياسات OASValidation: تم وضع علامة عليها عند استخدام متغيّرات وقت التشغيل الديناميكية في العنصر
<Source>(مثلSource=response)، ما يتطلب تسجيل عملية التتبُّع لمراقبة المتغيّرات التي تم حلّها أثناء تنفيذ الخادم الوكيل.
- بالنسبة إلى عمليات الاستدعاء إلى Java: تم وضع علامة عليها ضمن
نماذج لتقارير الرصد
تقرير الفحص المستهدَف لـ Java 21 (--source-version 4.53.01)
يوضّح المثال التالي ناتج التقرير لعملية ترقية من OPDK 4.53.01 إلى 4.54.00:
| المؤسسة | البيئة | اسم الخادم الوكيل | النطاق | التغيير | اسم السياسة | نوع السياسة | الإصدار المصدر | المورد المتأثر | سبب الرصد | مدى التأثير |
|---|---|---|---|---|---|---|---|---|---|---|
my-org |
prod |
order-processing |
proxy-level-jar |
12 |
JavaCallout-ParseXml |
java-callout |
4.53.01 |
jaxb-callout.jar |
Class: javax.xml.bind.JAXBContext | Cause: ClassNotFoundException..... |
HIGH |
my-org |
stage |
legacy-corba-bridge |
proxy-level-jar |
1 |
JavaCallout-CorbaClient |
java-callout |
4.53.01 |
corba-callout.jar |
Class: org.omg.CORBA.ORB | Cause: ClassNotFoundException..... |
HIGH |
my-org |
prod |
prod |
env-level-jar |
N/A |
N/A (Environment Resource) |
java-callout |
4.53.01 |
env-security-utils.jar |
Class: sun.misc.BASE64Encoder | Cause: ClassNotFoundException..... |
HIGH |
my-org |
N/A |
my-org |
org-level-jar |
N/A |
N/A (Organization Resource) |
java-callout |
4.53.01 |
cglib-nodep-2.2.jar |
Class: net.sf.cglib.proxy.Enhancer | Cause: IllegalArgumentException..... |
HIGH |
my-org |
prod |
invoice-parser |
proxy-level-jar |
5 |
JavaCallout-ParseInvoice |
java-callout |
4.53.01 |
invoice-dom.jar |
Class: org.w3c.dom.Document | Cause: Modified methods in Java 21..... |
MEDIUM |
my-org |
prod |
payment-gateway |
proxy-level-jar |
3 |
JavaCallout-SignToken |
java-callout |
4.53.01 |
payment-lib.jar |
Class: com.mycompany.crypto.OldProvider | Target: custom-crypto-3.0.jar..... |
HIGH |
تقرير الفحص التراكمي (--source-version 4.53.00)
يوضّح المثال التالي ناتج التقرير لعملية ترقية من OPDK 4.53.00 إلى 4.54.00:
| المؤسسة | البيئة | اسم الخادم الوكيل | النطاق | التغيير | اسم السياسة | نوع السياسة | الإصدار المصدر | المورد المتأثر | سبب الرصد | مدى التأثير |
|---|---|---|---|---|---|---|---|---|---|---|
my-org |
prod |
customer-portal |
proxy |
3 |
ValidateOpenAPISpec |
OASValidation |
4.53.00 |
oas content type handling |
Source=response |
MEDIUM |
my-org |
prod |
accounts-api |
proxy-level-jar |
4 |
JavaCallout-ValidateAccount |
java-callout |
4.53.00 |
deprecated: custom-validator.jar..... |
['Detected use of class org.apache.commons.beanutils.....'] |
HIGH |
my-org |
prod |
order-processing |
proxy-level-jar |
12 |
JavaCallout-ParseXml |
java-callout |
4.53.00 |
jaxb-callout.jar |
Class: javax.xml.bind.JAXBContext | Cause: ClassNotFoundException..... |
HIGH |
my-org |
None |
None |
ldif |
None |
None |
None |
4.53.00 |
LDAP RDN exceeds 241 characters |
cn=very-long-rdn-name-exceeding-limit..... |
HIGH |
للحصول على إرشادات حول إصلاح المشاكل التي تم تحديدها، راجِع استراتيجيات الإصلاح.