Strumento di rilevamento delle modifiche di Edge for Private Cloud 4.54.00

Strumento di rilevamento delle modifiche

È stato creato uno strumento di rilevamento delle modifiche per identificare i proxy Apigee, le policy, i flussi condivisi e i file JAR delle risorse (a livello di proxy, ambiente o organizzazione) che potrebbero essere interessati durante e dopo la transizione a Edge per Private Cloud 4.54.00. Questo strumento genera un report che descrive in dettaglio i proxy, i flussi condivisi e i file JAR delle risorse di cui è stato eseguito il deployment interessati dalle modifiche e fornisce indicazioni su guide e strategie specifiche pertinenti per i proxy o i flussi condivisi identificati.

Prerequisiti

  1. Per eseguire questo strumento è necessaria una macchina basata su RHEL o Rocky Linux (vedi Requisiti di installazione di Edge).
  2. JRE 8 o versioni successive deve essere installato e configurato correttamente sulla macchina host per consentire l'esecuzione degli script dello strumento.
  3. Lo strumento richiede l'accesso di rete all'endpoint (URL) del server di gestione e credenziali amministrative valide per l'autenticazione e il recupero dei dati.
  4. Lo strumento richiede l'accesso a una directory di lavoro designata (ad esempio /tmp) con spazio su disco sufficiente e autorizzazioni di lettura/scrittura appropriate per il download dei bundle, la generazione dei log e l'archiviazione dell'output.
  5. (Facoltativo) Quando esegui l'upgrade dalla versione 4.53.00, lo strumento richiede un file LDIF generato utilizzando il comando ldapsearch nella sezione Modifica di OpenLDAP - Estrai dati LDAP per rilevare RDN lunghi che superano i 241 caratteri/byte.

Eseguire lo strumento

Dopo aver soddisfatto tutti i prerequisiti, scarica lo strumento dal repository Apigee utilizzando le tue credenziali Apigee ed estrai l'archivio scaricato:

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

Una volta completato il download, puoi eseguire il seguente comando per visualizzare tutte le opzioni disponibili per lo strumento:

./change-detector --help

Per eseguire lo strumento, utilizza il seguente comando e sostituisci i segnaposto con le tue informazioni:

export APIGEE_PASSWORD=YOUR_PASSWORD
./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION

Specifica --source-version 4.53.01 quando esegui l'upgrade direttamente da Edge per Private Cloud 4.53.01 per cercare le modifiche di Java 21. Se esegui l'upgrade dalla versione 4.53.00, specifica --source-version 4.53.00 per eseguire una scansione cumulativa che copra sia le deprecazioni delle policy della versione 4.53.01 sia le modifiche di Java 21.

Lo strumento genera output in formato CSV o JSON che può essere esaminato direttamente o importato in applicazioni per fogli di lavoro come Fogli Google.

Comprendere l'output dello strumento

Il report contiene le seguenti colonne:

Organizzazione

Il nome dell'organizzazione in cui si trova l'artefatto. Per le modifiche di OpenLDAP, questo valore è None.

Ambiente

L'ambiente specifico (ad esempio, dev, test, prod) all'interno dell'organizzazione. Per i file JAR a livello di organizzazione, questo campo è N/A. Per le modifiche di OpenLDAP, questo valore è None.

Nome proxy

Il nome del proxy API o del flusso condiviso. Per le risorse JAR a livello di organizzazione, viene visualizzato il nome dell'organizzazione. Per le risorse JAR a livello di ambiente, viene visualizzato il nome dell'ambiente. Per le modifiche di OpenLDAP, questo campo mostra l'entità LDAP dell'RDN.

Ambito

Specifica l'ambito e il livello dell'artefatto sottoposto a scansione:

  • proxy-level-jar: file di risorse JAR caricato a livello di proxy (in /resources/java).
  • env-level-jar: file di risorse JAR caricato a livello di ambiente (vedi File di risorse).
  • org-level-jar: file di risorse JAR caricato a livello di organizzazione.
  • proxy: policy o configurazione all'interno di una revisione del proxy API.
  • sharedflow: policy o configurazione all'interno di una revisione del flusso condiviso.
  • ldif: file LDIF di OpenLDAP (per i controlli di OpenLDAP).

Revisione

Il numero di revisione specifico del proxy API o del flusso condiviso. Per i file JAR a livello di ambiente o organizzazione, questo campo è N/A. Per le modifiche di OpenLDAP, questo valore è None.

Nome della policy

Il nome della policy specifica identificata come un potenziale problema (ad esempio, JavaCallout-ValidateAccount o OASValidation-1). Per le risorse a livello di organizzazione, questo campo mostra N/A (Organization Resource). Per le risorse a livello di ambiente, questo campo mostra N/A (Environment Resource). Per le modifiche di OpenLDAP, questo valore è None.

Tipo di policy

Il tipo di policy (ad esempio, java-callout o OASValidation). Per le modifiche di OpenLDAP, questo valore è None.

Versione di origine

La versione OPDK di origine configurata per la scansione (4.53.00 o 4.53.01).

Risorsa interessata

Descrive la risorsa o la libreria specifica rilevata:

  • Per i rilevamenti di callout Java 21: il nome esatto del file JAR interessato (ad esempio, order-transform.jar o corba-callout.jar).
  • Per le deprecazioni legacy 4.53: deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR.
  • Per i rilevamenti OAS, JSONPath o OpenLDAP: l'elemento o la risorsa della policy specifica (ad esempio, oas content type handling, wildcard expression o LDAP RDN exceeds 241 characters).

Motivo del rilevamento

Fornisce informazioni diagnostiche dettagliate sul motivo per cui l'elemento è stato contrassegnato:

  • Per i rilevamenti di callout Java 21: la classe specifica, la libreria di sostituzione di destinazione (se applicabile) e la causa principale (ad esempio, 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)). Se vengono rilevati più problemi all'interno dello stesso file JAR, vengono consolidati separati da ;.
  • Per le deprecazioni legacy 4.53: un elenco di classi a cui viene fatto riferimento dalle librerie obsolete (ad esempio, ['Detected use of class CLASS_NAME from JAR_NAME']).
  • Per le convalide OAS: la variabile specificata nel tag Source (ad esempio, Source=response).
  • Per JSONPath: l'espressione esatta contrassegnata.
  • Per OpenLDAP: l'RDN dell'entità LDAP specifica che ha superato i 241 byte o caratteri.

Certezza dell'impatto

Questo campo indica il grado di certezza con cui lo strumento ha identificato un blocco dell'upgrade. I valori sono standardizzati in maiuscolo:

  • HIGH: lo strumento ha rilevato una modifica incompatibile (ad esempio, una chiamata a una classe rimossa in modo permanente come javax.xml.bind.JAXBContext o sun.misc.BASE64Encoder o un RDN OpenLDAP che supera i 241 byte). Esiste una probabilità quasi certa di errore di runtime (ClassNotFoundException o NoClassDefFoundError) a meno che non venga risolto.
  • MEDIUM: lo strumento ha rilevato un pattern che richiede l'ispezione dello sviluppatore e la verifica funzionale:
    • Per i callout Java: contrassegnati in METHOD_SIGNATURE_MODIFICATION (ad esempio, org.w3c.dom.Document), dove la classe esiste in Java 21, ma metodi specifici potrebbero essere stati modificati o deprecati.
    • Per le policy OASValidation: contrassegnate quando le variabili di runtime dinamiche vengono utilizzate nell'elemento <Source> (ad esempio, Source=response), che richiede l'acquisizione di Trace per osservare le variabili risolte durante l'esecuzione del proxy.

Report di rilevamento di esempio

Report di scansione mirata di Java 21 (--source-version 4.53.01)

L'esempio seguente illustra l'output del report per un upgrade da OPDK 4.53.01 a 4.54.00:

Organizzazione Ambiente Nome proxy Ambito Revisione Nome della policy Tipo di policy Versione di origine Risorsa interessata Motivo del rilevamento Certezza dell'impatto
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

Report di scansione cumulativa (--source-version 4.53.00)

L'esempio seguente illustra l'output del report per un upgrade da OPDK 4.53.00 a 4.54.00:

Organizzazione Ambiente Nome proxy Ambito Revisione Nome della policy Tipo di policy Versione di origine Risorsa interessata Motivo del rilevamento Certezza dell'impatto
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

Per indicazioni su come risolvere i problemi identificati, vedi Strategie di correzione.