Edge for Private Cloud 4.54.00 變更偵測工具

變更偵測工具

我們建構了異動偵測工具,可找出在轉換至 Edge for Private Cloud 4.54.00 期間和之後,可能受到影響的 Apigee Proxy、政策、共用流程和資源 JAR (在 Proxy、環境或組織層級)。這項工具會產生報表,詳細列出受變更影響的已部署 Proxy、共用流程和資源 JAR,並提供與這些 Proxy 或共用流程相關的特定指南和策略。

必要條件

  1. 您必須使用 RHEL 或 Rocky Linux 機器,才能執行這項工具 (請參閱 Edge 安裝需求)。
  2. 主機必須安裝 JRE 8 以上版本並正確設定,才能執行工具的指令碼。
  3. 這項工具需要網路存取權,才能連線至管理伺服器的端點 (網址),並需要有效的管理員憑證,才能進行驗證及擷取資料。
  4. 這項工具需要存取指定的目前使用的目錄 (例如 /tmp),且該目錄必須有足夠的磁碟空間,以及下載套件、產生記錄和儲存輸出內容的適當讀取/寫入權限。
  5. (選用) 從 4.53.00 版升級時,工具需要使用「OpenLDAP 變更 - 擷取 LDAP 資料」一節中的 ldapsearch 指令產生的 LDIF 檔案,偵測超過 241 個字元/位元組的長 RDN。

執行工具

符合所有必要條件後,請使用 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

直接從 Edge for Private Cloud 4.53.01 升級時,請指定 --source-version 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。

Proxy 名稱

API Proxy 或共用流程的名稱。如果是機構層級的 JAR 資源,則會顯示機構名稱。如果是環境層級的 JAR 資源,則會顯示環境名稱。如果是 OpenLDAP 變更,這個欄位會顯示 RDN 的 LDAP 實體。

範圍

指定掃描構件的範圍和層級:

  • proxy-level-jar:在 Proxy 層級上傳的 JAR 資源檔案 (位於 /resources/java 下方)。
  • env-level-jar:在環境層級上傳的 JAR 資源檔案 (請參閱「資源檔案」)。
  • org-level-jar:在組織層級上傳的 JAR 資源檔案。
  • proxy:API Proxy 修訂版本中的政策或設定。
  • sharedflow:共用流程修訂版本中的政策或設定。
  • ldif:OpenLDAP LDIF 檔案 (用於 OpenLDAP 檢查)。

修訂版本

API Proxy 或共用流程的特定修訂版本號碼。如果是環境或組織層級的 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:超過 241 個位元組或字元的特定 LDAP 實體 RDN。

影響確定度

這個欄位會指出工具識別出升級阻礙因素的可信度。值會標準化為大寫:

  • HIGH:工具偵測到不相容的變更 (例如呼叫已永久移除的類別,如 javax.xml.bind.JAXBContext 或 sun.misc.BASE64Encoder,或 OpenLDAP RDN 超過 241 個位元組)。除非經過修復,否則幾乎可以確定會發生執行階段失敗 (ClassNotFoundException 或 NoClassDefFoundError)。
  • MEDIUM:這項工具偵測到需要開發人員檢查和功能驗證的模式:
    • Java 呼叫:標記為 METHOD_SIGNATURE_MODIFICATION (例如 org.w3c.dom.Document),其中類別存在於 Java 21,但特定方法可能已變更或淘汰。
    • OASValidation 政策:在 <Source> 元素中使用動態執行階段變數 (例如 Source=response) 時會標示為違規,這需要擷取追蹤記錄,才能在 Proxy 執行期間觀察已解析的變數。

範例偵測報告

Java 21 掃描目標報告 (--source-version 4.53.01)

以下範例說明從 OPDK 4.53.01 升級至 4.54.00 時的報表輸出內容:

組織 環境 Proxy 名稱 範圍 修訂版本 政策名稱 政策類型 來源版本 受影響的資源 偵測原因 影響確定度
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 的報表輸出內容:

組織 環境 Proxy 名稱 範圍 修訂版本 政策名稱 政策類型 來源版本 受影響的資源 偵測原因 影響確定度
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

如需有關修正已識別問題的指引,請參閱「改善策略」。