View a markdown version of this page

Encontre aplicativos usando clientes AWS SDK para Java 1.x - AWS SDK for Java 2.x

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Encontre aplicativos usando clientes AWS SDK para Java 1.x

Antes de migrar para o AWS SDK for Java 2.x, você precisa identificar quais aplicativos em seu ambiente usam clientes SDK for Java 1.x. Você pode usar CloudTrail registros para rastrear o uso do SDK, pesquisar avisos de depreciação nos registros de aplicativos, inspecionar seu código-fonte e criar configurações ou examinar seus artefatos Java implantáveis. Use os métodos disponíveis em seu ambiente.

Use o CloudWatch Logs Insights para encontrar aplicativos com clientes 1.x

O Amazon CloudWatch Logs Insights permite que você consulte CloudTrail eventos entregues a um grupo de CloudWatch registros de registros. Use esse método para identificar as versões do SDK no campo userAgent nos CloudTrail registros. Você precisa de uma CloudTrail trilha com CloudWatch os registros ativados. Se você não tiver uma, consulte Criação de uma trilha com o CloudTrail console e Envio de eventos para o CloudWatch Logs.

No CloudWatch console, navegue até Logs Insights em Logs. Selecione seu grupo de CloudTrail registros e defina o intervalo de tempo para cobrir o período que você deseja analisar. Para obter detalhes sobre como usar o Logs Insights, consulte Análise de dados de registro com o CloudWatch Logs Insights.

Os exemplos de consultas a seguir encontram todas as solicitações de aplicativos de usuário e ferramentas de terceiros feitas com o SDK for Java 1.x. O Logs Insights é compatível com o Logs Insights QL e o SQL. A consulta QL usa o grupo de registros selecionado no console. A consulta SQL exige que você especifique o nome do grupo de registros na FROM cláusula.

Consulta de SQL do Logs Insights:

fields userIdentity.type, userIdentity.arn, eventSource, awsRegion, eventName, eventType, eventTime, userAgent, sourceIPAddress | filter userAgent like /aws-sdk-java\/1\./ | filter userAgent not like /aws-internal\// | sort eventTime desc

Consulta SQL:

SELECT `userIdentity.type`, `userIdentity.arn`, eventSource, awsRegion, eventName, eventType, eventTime, userAgent, sourceIPAddress FROM `sample-cloudtrail-log-group` WHERE userAgent LIKE '%aws-sdk-java/1.%' AND userAgent NOT LIKE '%aws-internal/%' ORDER BY eventTime DESC

sample-cloudtrail-log-groupSubstitua pelo nome do seu grupo de CloudTrail registros.

Para exportar os resultados, escolha Exportar resultados. O exemplo a seguir mostra um único evento no formato JSON:

{ "userIdentity.type": "AssumedRole", "userIdentity.arn": "arn:aws:sts::123456789012:assumed-role/Admin/Alice", "eventSource": "dynamodb.amazonaws.com", "awsRegion": "us-east-1", "eventName": "ListTables", "eventType": "AwsApiCall", "eventTime": "2025-07-01T22:02:23Z", "userAgent": "aws-sdk-java/1.12.746 Linux/5.10.240 OpenJDK/11.0.25+9-LTS ...", "sourceIPAddress": "12.345.6.78" }

Neste exemplo, uma solicitação do ListTables DynamoDB foi feita 2025-07-01T22:02:23 (UTC) no 12.345.6.78 endereço IP do DynamoDB com as credenciais da função assumida. Admin/Alice O campo UserAgent mostra que a solicitação foi feita usando a 1.12.746 versão SDK for Java em um sistema Linux com JDK 11.

Para obter uma descrição dos campos no registro do AWS CloudTrail evento, consulte o conteúdo do CloudTrail registro.

Se não CloudTrail estiver habilitado em sua conta, entre em contato com o administrador da AWS conta da sua organização para habilitá-lo ou use um dos métodos alternativos descritos nas seções a seguir.

CloudWatch O Logs Insights cobra por consulta com base na quantidade de dados digitalizados. Se você criou uma trilha especificamente para essa investigação, considere interrompê-la ou excluí-la para evitar cobranças contínuas. Para obter os preços atuais, consulte Amazon CloudWatch Pricing.

Pesquise registros em nível de aviso do aplicativo para depreciação do SDK

A partir da versão 1.12.767 (lançada em 30 de julho de 2024), o AWS SDK para Java 1.x emite um aviso de depreciação na inicialização do aplicativo. Você pode pesquisar esse aviso nos registros do aplicativo para identificar quais aplicativos e hosts estão usando o SDK for Java 1.x.

O texto exato do aviso depende da versão do SDK:

  • Versões 1.12.767 a 1.12.796:

    WARNING: The AWS SDK for Java 1.x entered maintenance mode starting July 31, 2024 and will reach end of support on December 31, 2025...

  • Versões 1.12.797 e superiores:

    WARNING: The AWS SDK for Java 1.x reached end of support on December 31, 2025...

O final ... indica que a mensagem de aviso continua com texto adicional. Você pode pesquisar o prefixo comum The AWS SDK for Java 1.x para encontrar qualquer uma das versões do aviso.

O exemplo a seguir demonstra a busca por esse aviso usandogrep:

grep -r "The AWS SDK for Java 1.x" /path/to/your/application/logs/

Se o aviso for encontrado, o grep comando imprimirá as linhas de registro correspondentes. Se nenhum aviso for encontrado, seu aplicativo não está usando o SDK for Java 1.x ou usa uma versão anterior à 1.12.767. Nesse caso, use um dos outros métodos descritos neste documento.

Pesquisar código-fonte e dependências

Você pode pesquisar sua base de código e criar arquivos de configuração em busca de referências ao AWS SDK para Java 1.x. O identificador de chave é o ID do com.amazonaws grupo, que é usado por todos os artefatos do SDK for Java 1.x.

Os exemplos a seguir demonstram grep o uso para pesquisar com.amazonaws referências em arquivos comuns de projetos Java.

Exemplo: pesquisar nos arquivos de origem Java as importações do SDK for Java 1.x (executar a partir do diretório raiz do projeto)

grep -r "import com.amazonaws" --include="*.java" .

Resultado do exemplo:

src/main/java/com/example/App.java:import com.amazonaws.services.s3.AmazonS3;
nota

O com.amazonaws pacote também é usado por bibliotecas que não fazem parte do SDK for Java 1.x, como. aws-lambda-java-core Para confirmar se uma importação é do SDK for Java 1.x, verifique se o ID do artefato correspondente na pom.xml suabuild.gradle,, ou configuração de gerenciamento de dependências começa com. aws-java-sdk-

Exemplo: pesquise nos pom.xml arquivos Maven as dependências do SDK for Java 1.x (execute a partir do diretório raiz do projeto)

grep -r "com.amazonaws" --include="pom.xml" .

Resultado do exemplo:

pom.xml: <groupId>com.amazonaws</groupId>

Exemplo: pesquise dependências do SDK for Java 1.x nos arquivos de compilação do Gradle (execute a partir do diretório raiz do projeto)

grep -r "com.amazonaws:aws-java-sdk" --include="*.gradle" .

Resultado do exemplo:

build.gradle: implementation 'com.amazonaws:aws-java-sdk-s3:1.12.xxx'

Os grep comandos anteriores identificam as referências do SDK for Java 1.x declaradas diretamente nos seus arquivos de origem e de compilação. No entanto, seu aplicativo também pode depender do SDK for Java 1.x de forma transitiva — por meio de uma biblioteca de terceiros que, por sua vez, depende do SDK. Use a árvore de dependências da sua ferramenta de construção para encontrar dependências diretas e transitivas do SDK for Java 1.x. Escolha o exemplo que corresponda ao seu sistema de compilação.

Exemplo: use o Maven para encontrar todas as dependências transitivas do SDK for Java 1.x (executado a partir do diretório raiz do projeto)

mvn dependency:tree -Dincludes=com.amazonaws

Resultado do exemplo:

[INFO] com.example:my-application:jar:1.0-SNAPSHOT [INFO] +- com.amazonaws:aws-java-sdk-s3:jar:1.12.746:compile [INFO] | \- com.amazonaws:aws-java-sdk-core:jar:1.12.746:compile [INFO] \- some.thirdparty:library:jar:2.3.1:compile [INFO] \- com.amazonaws:aws-java-sdk-dynamodb:jar:1.12.600:compile

O -Dincludes=com.amazonaws sinalizador filtra a árvore para mostrar somente artefatos do SDK for Java 1.x. Neste exemplo, aws-java-sdk-s3 é uma dependência direta, mas aws-java-sdk-dynamodb é uma dependência transitiva trazida por. some.thirdparty:library

Exemplo: use o Gradle para encontrar todas as dependências transitivas do SDK for Java 1.x (executado a partir do diretório raiz do projeto)

gradle dependencies --configuration runtimeClasspath | grep "com.amazonaws"

Resultado do exemplo:

+--- com.amazonaws:aws-java-sdk-s3:1.12.746 | \--- com.amazonaws:aws-java-sdk-core:1.12.746 \--- com.amazonaws:aws-java-sdk-dynamodb:1.12.600

O Gradle não tem um filtro de dependência embutido equivalente ao do Maven-Dincludes, então usar a canalização grep é a abordagem mais simples.

Inspecione artefatos Java implantáveis

Você pode inspecionar seus artefatos Java implantáveis (JARs WARs, ou EARs) para confirmar se o AWS SDK para Java 1.x está empacotado com seu aplicativo. Os arquivos de arquivamento Java são arquivos no formato ZIP. Para determinar se o SDK for Java 1.x está presente, procure o com/amazonaws/sdk/versionInfo.properties arquivo dentro do arquivo. Esse arquivo está incluído no aws-java-sdk-core módulo e contém o número da versão do SDK.

Verificação rápida com o jar comando

Para uber-jars em que todas as classes de dependência são mescladas no nível superior, liste o conteúdo do arquivo e pesquise o arquivo de versão:

Nos exemplos a seguir, myapp.jar substitua pelo caminho para o arquivo JAR do seu aplicativo.

jar -tf myapp.jar | grep 'versionInfo.properties'

Se o SDK estiver presente, a saída será:

com/amazonaws/sdk/versionInfo.properties

Se o jar comando não estiver disponível em seu ambiente (por exemplo, imagens de contêiner mínimas ou somente JRE), você poderá usar unzip -l em vez disso:

unzip -l myapp.jar | grep 'versionInfo.properties'

Para imprimir a versão:

unzip -p myapp.jar com/amazonaws/sdk/versionInfo.properties

Resultado do exemplo:

platform=java version=1.12.xxx
nota

Os comandos anteriores pesquisam somente entradas de nível superior em uber-jars. Eles não encontrarão classes de SDK em thin JARs (onde as dependências são externas) ou aninhadas internamente JARs (como aquelas em WARs, EARs ou pacotes Lambda em ou). lib/ WEB-INF/lib/ Em vez disso JARs, verifique sua configuração de compilação (pom.xml,build.gradle) ou árvore de dependências. Para aninhado JARs, pesquise o pacote JARs usando uma ferramenta que pode ler arquivos ZIP recursivamente sem extrair para o disco.

Use o CloudTrail Lake para encontrar aplicativos com clientes 1.x

Importante

AWS CloudTrail O Lake não está mais aberto para novos clientes a partir de 31 de maio de 2026. Os clientes atuais podem continuar a usar o serviço. Para obter mais informações, consulte Alteração de disponibilidade do CloudTrail Lake. Para uma abordagem alternativa, consulteUse o CloudWatch Logs Insights para encontrar aplicativos com clientes 1.x.

AWS CloudTrail O Lake permite que você consulte eventos registrados por CloudTrail. Siga estas etapas para criar um data lake que identifique as versões do SDK usadas pelas aplicações:

  1. Crie um CloudTrail data lake. Consulte o Guia do usuário para criar um armazenamento de dados de eventos.

  2. Depois de criar o datastore, examine o conteúdo de registros. O corpo do registro contém campos que determinam a ação, o tempo e o local solicitados. Para obter detalhes, consulte o Guia do usuário para ver o conteúdo do CloudTrail registro.

  3. Executar consultas com relação aos dados. Siga o Guia do usuário para consultar e salvar os resultados de consulta.

O campo userAgent em cada registro contém a versão do SDK que fez a solicitação. Use esse campo para identificar aplicativos que usam o SDK for Java 1.x.

O exemplo de consulta a seguir encontra todas as solicitações de aplicativos de usuário e ferramentas de terceiros feitas com o SDK for Java 1.x a partir de 17 de junho de 2025, para EventDatastore um ID: sample-Data-Store-Id

select userIdentity, eventSource, awsRegion, eventName, eventType, eventTime, userAgent, requestParameters, sourceIPAddress from sample-Data-Store-Id where eventTime > '2025-06-17 00:00:00' and userAgent like '%aws-sdk-java/1.%' and userAgent not like '%aws-internal/%' order by eventTime desc

Um exemplo do conteúdo do evento no resultado da consulta fica assim:

{ "userIdentity": "{ "type": "IAMUser", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "", "userName": "Alice" }", "eventSource": "dynamodb.amazonaws.com", "awsRegion": "us-west-2", "eventName": "ListTables", "eventType": "AwsApiCall", "eventTime": "2025-07-01 02:23:52.000", "userAgent": "aws-sdk-java/1.12.746 Linux/5.10.240 OpenJDK/11.0.25+9-LTS ...", "requestParameters": "", "sourceIPAddress": "12.345.6.78" }

É possível usar essas informações para ajudar a determinar quando e onde a solicitação foi feita.

No exemplo, uma solicitação ListTables do DynamoDB foi feita em 2025-07-01 02:23:52 (UTC) pelo endereço IP 12.345.6.78 com as credenciais da usuária do IAM chamada Alice. O valor do campo userAgent mostra que a solicitação foi feita usando a AWS SDK para Java versão 1.12.746 de um sistema Linux com JDK 11.

Para obter uma descrição dos campos no registro do AWS CloudTrail evento, consulte o conteúdo do CloudTrail registro para eventos de gerenciamento, dados e atividades de rede.

Se não CloudTrail estiver habilitado em sua conta, entre em contato com o administrador da AWS conta da sua organização para habilitá-lo ou use um dos métodos alternativos descritos nas seções anteriores.

CloudTrail O Lake cobra pelos dados ingeridos e pelos dados digitalizados por consulta. Para minimizar os custos, filtre as consultas para intervalos de tempo e regiões específicos. Para obter os preços atuais, consulte Definição de preço do AWS CloudTrail.