Alat deteksi perubahan
Alat deteksi perubahan telah dibuat untuk mengidentifikasi proxy, kebijakan, alur bersama, dan JAR resource Apigee (di tingkat proxy, lingkungan, atau organisasi) yang mungkin terpengaruh selama dan setelah transisi ke Edge untuk Private Cloud 4.54.00. Alat ini menghasilkan laporan yang merinci proxy, alur bersama, dan JAR resource yang di-deploy yang terpengaruh oleh perubahan dan memberikan petunjuk ke panduan dan strategi tertentu yang relevan dengan proxy atau alur bersama yang diidentifikasi tersebut.
Prasyarat
- Mesin berbasis RHEL atau Rocky Linux diperlukan untuk menjalankan alat ini (lihat Persyaratan penginstalan Edge).
- JRE 8 atau yang lebih tinggi harus diinstal dan dikonfigurasi dengan benar di mesin host agar skrip alat dapat berjalan.
- Alat ini memerlukan akses jaringan ke endpoint (URL) Server Pengelolaan dan kredensial administratif yang valid untuk autentikasi dan pengambilan data.
- Alat ini memerlukan akses ke direktori kerja yang ditentukan (misalnya,
/tmp) dengan kapasitas disk yang memadai dan izin baca/tulis yang sesuai untuk mendownload paket, membuat log, dan menyimpan output. - (Opsional) Saat mengupgrade dari versi 4.53.00, alat ini memerlukan file LDIF yang dihasilkan menggunakan perintah
ldapsearchdi bagian perubahan OpenLDAP - Mengekstrak data LDAP untuk mendeteksi RDN panjang yang melebihi 241 karakter/byte.
Menjalankan alat
Setelah semua prasyarat terpenuhi, download alat dari repositori Apigee menggunakan kredensial Apigee Anda, dan ekstrak arsip yang didownload:
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
Setelah download selesai, Anda dapat menjalankan perintah berikut untuk melihat semua opsi yang tersedia untuk alat ini:
./change-detector --help
Untuk menjalankan alat, gunakan perintah berikut dan ganti placeholder dengan informasi Anda:
export APIGEE_PASSWORD=YOUR_PASSWORD ./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION
Tentukan --source-version 4.53.01 saat mengupgrade langsung dari Edge untuk Private Cloud 4.53.01 untuk memindai perubahan Java 21. Jika mengupgrade dari versi 4.53.00, tentukan --source-version 4.53.00 untuk melakukan pemindaian kumulatif yang mencakup penghentian kebijakan versi 4.53.01 dan perubahan Java 21.
Alat ini menghasilkan output dalam format CSV atau JSON yang dapat langsung ditinjau atau diimpor ke dalam aplikasi spreadsheet seperti Google Spreadsheet.
Memahami output alat
Laporan berisi kolom berikut:
Organisasi
Nama organisasi tempat artefak berada. Untuk perubahan OpenLDAP, kolom ini adalah None.
Lingkungan
Lingkungan tertentu (misalnya, dev, test, prod) dalam organisasi. Untuk JAR tingkat organisasi, kolom ini adalah N/A. Untuk perubahan OpenLDAP, kolom ini adalah None.
Nama Proxy
Nama proxy API atau alur bersama. Untuk resource JAR tingkat organisasi, kolom ini menampilkan nama organisasi. Untuk resource JAR tingkat lingkungan, kolom ini menampilkan nama lingkungan. Untuk perubahan OpenLDAP, kolom ini menampilkan entity LDAP dari RDN.
Cakupan
Menentukan cakupan dan tingkat artefak yang dipindai:
proxy-level-jar: File resource JAR yang diupload di tingkat proxy (di bawah/resources/java).env-level-jar: File resource JAR yang diupload di tingkat lingkungan (lihat File resource).org-level-jar: File resource JAR yang diupload di tingkat organisasi.proxy: Kebijakan atau konfigurasi dalam revisi proxy API.sharedflow: Kebijakan atau konfigurasi dalam revisi alur bersama.ldif: File LDIF OpenLDAP (untuk pemeriksaan OpenLDAP).
Revisi
Nomor revisi tertentu dari proxy API atau alur bersama. Untuk JAR tingkat lingkungan atau organisasi, kolom ini adalah N/A. Untuk perubahan OpenLDAP, kolom ini adalah None.
Nama Kebijakan
Nama kebijakan tertentu yang telah diidentifikasi sebagai potensi masalah (misalnya, JavaCallout-ValidateAccount atau OASValidation-1). Untuk resource tingkat organisasi, kolom ini menampilkan N/A (Organization Resource). Untuk resource tingkat lingkungan, kolom ini menampilkan N/A (Environment Resource). Untuk perubahan OpenLDAP, kolom ini adalah None.
Jenis Kebijakan
Jenis kebijakan (misalnya, java-callout atau OASValidation). Untuk perubahan OpenLDAP, kolom ini adalah None.
Versi Sumber
Versi OPDK sumber yang dikonfigurasi untuk pemindaian (4.53.00 atau 4.53.01).
Resource Terdampak
Menjelaskan resource atau library tertentu yang terdeteksi:
- Untuk deteksi callout Java 21: Nama persis file JAR yang terpengaruh (misalnya,
order-transform.jarataucorba-callout.jar). - Untuk penghentian 4.53 lama:
deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR. - Untuk deteksi OAS, JSONPath, atau OpenLDAP: Elemen atau resource kebijakan tertentu (misalnya,
oas content type handling,wildcard expression, atauLDAP RDN exceeds 241 characters).
Alasan Deteksi
Memberikan informasi diagnostik mendetail tentang alasan item ditandai:
- Untuk deteksi callout Java 21: Class tertentu, library penggantian target (jika berlaku), dan penyebab utama (misalnya,
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)). Jika beberapa masalah terdeteksi dalam JAR yang sama, masalah tersebut akan digabungkan dan dipisahkan dengan;. - Untuk penghentian 4.53 lama: Daftar class yang direferensikan dari library yang tidak digunakan lagi (misalnya,
['Detected use of class CLASS_NAME from JAR_NAME']). - Untuk validasi OAS: Variabel yang ditentukan dalam tag
Source(misalnya,Source=response). - Untuk JSONPath: Ekspresi persis yang ditandai.
- Untuk OpenLDAP: RDN entity LDAP tertentu yang melebihi 241 byte atau karakter.
Kepastian Dampak
Kolom ini menunjukkan tingkat keyakinan alat dalam mengidentifikasi pemblokir upgrade. Nilai distandardisasi dalam huruf besar:
HIGH: Alat ini telah mendeteksi perubahan yang tidak kompatibel (seperti panggilan ke class yang dihapus secara permanen sepertijavax.xml.bind.JAXBContextatausun.misc.BASE64Encoder, atau RDN OpenLDAP yang melebihi 241 byte). Ada kemungkinan kegagalan runtime yang hampir pasti (ClassNotFoundExceptionatauNoClassDefFoundError) kecuali jika diperbaiki.MEDIUM: Alat ini telah mendeteksi pola yang memerlukan pemeriksaan developer dan verifikasi fungsional:- Untuk Java Callout: Ditandai di bagian
METHOD_SIGNATURE_MODIFICATION(misalnya,org.w3c.dom.Document), dengan class yang ada di Java 21, tetapi metode tertentu mungkin telah diubah atau tidak digunakan lagi. - Untuk kebijakan OASValidation: Ditandai saat variabel runtime dinamis digunakan dalam elemen
<Source>(misalnya,Source=response), yang memerlukan pengambilan Trace untuk mengamati variabel yang di-resolve selama eksekusi proxy.
- Untuk Java Callout: Ditandai di bagian
Contoh laporan deteksi
Laporan pemindaian Java 21 yang ditargetkan (--source-version 4.53.01)
Contoh berikut mengilustrasikan output laporan untuk upgrade dari OPDK 4.53.01 ke 4.54.00:
| Organisasi | Lingkungan | Nama Proxy | Cakupan | Revisi | Nama Kebijakan | Jenis Kebijakan | Versi Sumber | Resource Terdampak | Alasan deteksi | Kepastian Dampak |
|---|---|---|---|---|---|---|---|---|---|---|
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 |
Laporan pemindaian kumulatif (--source-version 4.53.00)
Contoh berikut mengilustrasikan output laporan untuk upgrade dari OPDK 4.53.00 ke 4.54.00:
| Organisasi | Lingkungan | Nama Proxy | Cakupan | Revisi | Nama Kebijakan | Jenis Kebijakan | Versi Sumber | Resource Terdampak | Alasan deteksi | Kepastian Dampak |
|---|---|---|---|---|---|---|---|---|---|---|
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 |
Untuk panduan tentang cara memperbaiki masalah yang teridentifikasi, lihat Strategi perbaikan.