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 CloudTrail Lake 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 usando 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 a seguir.

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.

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.