Ferramenta de detecção de mudanças
Criamos uma ferramenta de detecção de mudanças para identificar proxies, políticas, fluxos compartilhados e JARs de recursos da Apigee (no nível do proxy, do ambiente ou da organização) que podem ser afetados durante e após a transição para o Edge para nuvem privada 4.54.00. Essa ferramenta gera um relatório detalhando proxies implantados, fluxos compartilhados e JARs de recursos afetados pelas mudanças e fornece instruções para guias e estratégias específicos relevantes para esses proxies ou fluxos compartilhados identificados.
Pré-requisitos
- Uma máquina baseada em RHEL ou Rocky Linux é necessária para executar essa ferramenta (consulte Requisitos de instalação do Edge).
- O JRE 8 ou mais recente precisa estar instalado e configurado corretamente na máquina host para permitir que os scripts da ferramenta sejam executados.
- A ferramenta exige acesso de rede ao endpoint (URL) do servidor de gerenciamento e credenciais administrativas válidas para autenticação e recuperação de dados.
- A ferramenta exige acesso a um diretório de trabalho designado (por exemplo,
/tmp) com espaço em disco suficiente e permissões de leitura/gravação adequadas para fazer o download de pacotes, gerar registros e armazenar a saída. - (Opcional) Ao fazer upgrade da versão 4.53.00, a ferramenta exige um arquivo LDIF gerado usando o comando
ldapsearchna seção Extrair dados LDAP de mudança do OpenLDAP para detectar RDNs longos que excedam 241 caracteres/bytes.
Como executar a ferramenta
Depois que todos os pré-requisitos forem atendidos, faça o download da ferramenta do repositório da Apigee usando suas credenciais da Apigee e extraia o arquivo baixado:
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
Quando o download for concluído, execute o comando a seguir para conferir todas as opções disponíveis para a ferramenta:
./change-detector --help
Para executar a ferramenta, use o comando a seguir e substitua os marcadores pelas suas informações:
export APIGEE_PASSWORD=YOUR_PASSWORD ./change-detector --username YOUR_USERNAME --mgmt-url MGMT_URL --source-version SOURCE_VERSION
Especifique --source-version 4.53.01 ao fazer upgrade diretamente do Edge para nuvem privada 4.53.01 para verificar as mudanças do Java 21. Se você estiver fazendo upgrade da versão 4.53.00, especifique --source-version 4.53.00 para realizar uma verificação cumulativa que abranja as descontinuações de políticas da versão 4.53.01 e as mudanças do Java 21.
A ferramenta gera saída no formato CSV ou JSON que pode ser revisada diretamente ou importada para aplicativos de planilha, como o Google Planilhas.
Entender a saída da ferramenta
O relatório contém as seguintes colunas:
Organização
O nome da organização em que o artefato está localizado. Para mudanças do OpenLDAP, esse é None.
Ambiente
O ambiente específico (por exemplo, dev, test, prod) dentro da organização. Para JARs no nível da organização, esse campo é N/A. Para mudanças do OpenLDAP, esse é None.
Nome do proxy
O nome do proxy de API ou do fluxo compartilhado. Para recursos JAR no nível da organização, esse campo mostra o nome da organização. Para recursos JAR no nível do ambiente, esse campo mostra o nome do ambiente. Para mudanças do OpenLDAP, esse campo mostra a entidade LDAP do RDN.
Escopo
Especifica o escopo e o nível do artefato verificado:
proxy-level-jar: arquivo de recurso JAR enviado por upload no nível do proxy (em/resources/java).env-level-jar: arquivo de recurso JAR enviado por upload no nível do ambiente (consulte Arquivos de recursos).org-level-jar: arquivo de recurso JAR enviado por upload no nível da organização.proxy: política ou configuração em uma revisão de proxy de API.sharedflow: política ou configuração em uma revisão de fluxo compartilhado.ldif: arquivo LDIF do OpenLDAP (para verificações do OpenLDAP).
Revisão
O número de revisão específico do proxy de API ou do fluxo compartilhado. Para JARs no nível do ambiente ou da organização, esse campo é N/A. Para mudanças do OpenLDAP, esse é None.
Nome da política
O nome da política específica que foi identificada como um possível problema (por exemplo, JavaCallout-ValidateAccount ou OASValidation-1). Para recursos no nível da organização, esse campo mostra N/A (Organization Resource). Para recursos no nível do ambiente, esse campo mostra N/A (Environment Resource). Para mudanças do OpenLDAP, esse é None.
Tipo de política
O tipo de política (por exemplo, java-callout ou OASValidation). Para mudanças do OpenLDAP, esse é None.
Versão de origem
A versão de origem do OPDK configurada para a verificação (4.53.00 ou 4.53.01).
Recurso afetado
Descreve o recurso ou a biblioteca específica detectada:
- Para detecções de callout Java 21: o nome exato do arquivo JAR afetado (por exemplo,
order-transform.jaroucorba-callout.jar). - Para descontinuações legadas da versão 4.53:
deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR. - Para detecções de OAS, JSONPath ou OpenLDAP: o elemento ou recurso de política específico (por exemplo,
oas content type handling,wildcard expressionouLDAP RDN exceeds 241 characters).
Motivo da detecção
Fornece informações de diagnóstico detalhadas sobre o motivo pelo qual o item foi sinalizado:
- Para detecções de callout Java 21: a classe específica, a biblioteca de substituição de destino (se aplicável) e a causa raiz (por exemplo,
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 vários problemas forem detectados no mesmo JAR, eles serão consolidados separados por;. - Para descontinuações legadas da versão 4.53: uma lista de classes referenciadas de bibliotecas descontinuadas (por exemplo,
['Detected use of class CLASS_NAME from JAR_NAME']). - Para validações de OAS: a variável especificada na tag
Source(por exemplo,Source=response). - Para JSONPath: a expressão exata sinalizada.
- Para OpenLDAP: o RDN da entidade LDAP específica que excedeu 241 bytes ou caracteres.
Certeza do impacto
Esse campo indica o grau de confiança com que a ferramenta identificou um bloqueador de upgrade. Os valores são padronizados em letras maiúsculas:
HIGH:a ferramenta detectou uma mudança incompatível (como uma chamada para uma classe removida permanentemente, comojavax.xml.bind.JAXBContextousun.misc.BASE64Encoder, ou um RDN do OpenLDAP que excedeu 241 bytes). Há uma probabilidade quase certa de falha de execução (ClassNotFoundExceptionouNoClassDefFoundError), a menos que seja corrigida.MEDIUM: **MÉDIO** : a ferramenta detectou um padrão que exige inspeção do desenvolvedor e verificação funcional:- Para chamadas de Java: sinalizado em
METHOD_SIGNATURE_MODIFICATION(por exemplo,org.w3c.dom.Document), em que a classe existe no Java 21, mas métodos específicos podem ter sido alterados ou descontinuados. - Para políticas OASValidation: sinalizado quando variáveis de execução dinâmicas são usadas no
<Source>(por exemplo,Source=response), o que exige a captura do trace para observar as variáveis resolvidas durante a execução do proxy.
- Para chamadas de Java: sinalizado em
Exemplos de relatórios de detecção
Relatório de verificação direcionada do Java 21 (--source-version 4.53.01)
O exemplo a seguir ilustra a saída do relatório para um upgrade do OPDK 4.53.01 para 4.54.00:
| Organização | Ambiente | Nome do proxy | Escopo | Revisão | Nome da política | Tipo de política | Versão de origem | Recurso afetado | Motivo da detecção | Certeza do impacto |
|---|---|---|---|---|---|---|---|---|---|---|
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 |
Relatório de verificação cumulativa (--source-version 4.53.00)
O exemplo a seguir ilustra a saída do relatório para um upgrade do OPDK 4.53.00 para 4.54.00:
| Organização | Ambiente | Nome do proxy | Escopo | Revisão | Nome da política | Tipo de política | Versão de origem | Recurso afetado | Motivo da detecção | Certeza do impacto |
|---|---|---|---|---|---|---|---|---|---|---|
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 |
Para orientações sobre como corrigir problemas identificados, consulte Estratégias de correção.