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
- Per eseguire questo strumento è necessaria una macchina basata su RHEL o Rocky Linux (vedi Requisiti di installazione di Edge).
- JRE 8 o versioni successive deve essere installato e configurato correttamente sulla macchina host per consentire l'esecuzione degli script dello strumento.
- 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.
- 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. - (Facoltativo) Quando esegui l'upgrade dalla versione 4.53.00, lo strumento richiede un file LDIF generato utilizzando il comando
ldapsearchnella 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.jarocorba-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 expressionoLDAP 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 comejavax.xml.bind.JAXBContextosun.misc.BASE64Encodero un RDN OpenLDAP che supera i 241 byte). Esiste una probabilità quasi certa di errore di runtime (ClassNotFoundExceptionoNoClassDefFoundError) 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.
- Per i callout Java: contrassegnati in
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.