เครื่องมือตรวจหาการเปลี่ยนแปลงของ Edge สำหรับ Private Cloud 4.54.00

เครื่องมือตรวจจับการเปลี่ยนแปลง

เราได้สร้างเครื่องมือตรวจจับการเปลี่ยนแปลงเพื่อระบุพร็อกซี นโยบาย โฟลว์ที่ใช้ร่วมกัน และ JAR ของทรัพยากร Apigee (ที่ระดับพร็อกซี สภาพแวดล้อม หรือองค์กร) ที่อาจได้รับผลกระทบระหว่างและหลังการเปลี่ยนไปใช้ Edge for Private Cloud 4.54.00 เครื่องมือนี้จะสร้างรายงานที่แสดงรายละเอียดพร็อกซี โฟลว์ที่ใช้ร่วมกัน และ JAR ของทรัพยากรที่ใช้งานจริงซึ่งได้รับผลกระทบจากการเปลี่ยนแปลง รวมถึงให้คำแนะนำไปยังคำแนะนำและกลยุทธ์เฉพาะที่เกี่ยวข้องกับพร็อกซีหรือโฟลว์ที่ใช้ร่วมกันที่ระบุ

ข้อกำหนดเบื้องต้น

  1. คุณต้องมีเครื่องที่ใช้ RHEL หรือ Rocky Linux เพื่อเรียกใช้เครื่องมือนี้ (ดู ข้อกำหนดในการติดตั้ง Edge)
  2. คุณต้องติดตั้งและกำหนดค่า JRE 8 ขึ้นไปอย่างถูกต้องในเครื่องโฮสต์เพื่อให้สคริปต์ของเครื่องมือทำงานได้
  3. เครื่องมือนี้ต้องมีการเข้าถึงเครือข่ายไปยังปลายทาง (URL) ของเซิร์ฟเวอร์การจัดการและข้อมูลเข้าสู่ระบบของผู้ดูแลระบบที่ถูกต้องสำหรับการตรวจสอบสิทธิ์และการดึงข้อมูล
  4. เครื่องมือนี้ต้องเข้าถึงไดเรกทอรีการทำงานที่กำหนด (เช่น /tmp) ที่มีพื้นที่ในดิสก์เพียงพอและสิทธิ์อ่าน/สิทธิ์เขียนที่เหมาะสมสำหรับการดาวน์โหลดบันเดิล การสร้างบันทึก และการจัดเก็บเอาต์พุต
  5. (ไม่บังคับ) เมื่ออัปเกรดจากเวอร์ชัน 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

ชื่อพร็อกซี

ชื่อพร็อกซี API หรือโฟลว์ที่ใช้ร่วมกัน สำหรับทรัพยากร JAR ระดับองค์กร ช่องนี้จะแสดงชื่อองค์กร สำหรับทรัพยากร JAR ระดับสภาพแวดล้อม ช่องนี้จะแสดงชื่อสภาพแวดล้อม สำหรับการเปลี่ยนแปลง OpenLDAP ช่องนี้จะแสดงเอนทิตี LDAP ของ RDN

ขอบเขต

ระบุขอบเขตและระดับของอาร์ติแฟกต์ที่สแกน

  • proxy-level-jar: ไฟล์ทรัพยากร JAR ที่อัปโหลดที่ระดับพร็อกซี (ใต้ /resources/java)
  • env-level-jar: ไฟล์ทรัพยากร JAR ที่อัปโหลดที่ระดับสภาพแวดล้อม (ดูไฟล์ทรัพยากร)
  • org-level-jar: ไฟล์ทรัพยากร JAR ที่อัปโหลดที่ระดับองค์กร
  • proxy: นโยบายหรือการกำหนดค่าภายในเวอร์ชันพร็อกซี API
  • sharedflow: นโยบายหรือการกำหนดค่าภายในเวอร์ชันโฟลว์ที่ใช้ร่วมกัน
  • ldif: ไฟล์ LDIF ของ OpenLDAP (สำหรับการตรวจสอบ OpenLDAP)

การแก้ไข

หมายเลขการแก้ไขที่เฉพาะเจาะจงของพร็อกซี API หรือโฟลว์ที่ใช้ร่วมกัน สำหรับ 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 Callout: ชื่อที่แน่นอนของไฟล์ 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 Callout: คลาสที่เฉพาะเจาะจง ไลบรารีการแทนที่เป้าหมาย (หากมี) และสาเหตุของปัญหา (เช่น 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 Callout: ระบบจะแจ้งภายใต้ METHOD_SIGNATURE_MODIFICATION (เช่น org.w3c.dom.Document) ซึ่งคลาสมีอยู่ใน Java 21 แต่เมธอดที่เฉพาะเจาะจงอาจมีการเปลี่ยนแปลงหรือเลิกใช้งานแล้ว
    • สำหรับนโยบาย OASValidation: ระบบจะแจ้งเมื่อมีการใช้ตัวแปรแบบไดนามิกขณะรันไทม์ในองค์ประกอบ <Source> (เช่น Source=response) ซึ่งต้องมีการบันทึกการติดตามเพื่อสังเกตตัวแปรที่แก้ไขแล้วระหว่างการดำเนินการพร็อกซี

รายงานการตรวจจับตัวอย่าง

รายงานการสแกน 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

ดูคำแนะนำในการแก้ไขปัญหาที่ระบุได้ที่ กลยุทธ์การแก้ไข