O que há de diferente entre o AWS SDK for Java 1.x e o 2.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á.

O que há de diferente entre o AWS SDK for Java 1.x e o 2.x

Esta seção descreve as principais mudanças a serem observadas ao converter um aplicativo do uso da AWS SDK for Java versão 1.x para a versão 2.x.

Alteração do nome do pacote

Uma alteração notável do SDK para Java 1.x para o SDK para Java 2.x é a alteração do nome do pacote. Os nomes dos pacotes começam com software.amazon.awssdk no SDK 2.x, enquanto o SDK 1.x usa com.amazonaws.

Esses mesmos nomes diferenciam os artefatos do Maven do SDK 1.x para o SDK 2.x. Os artefatos do Maven para o SDK 2.x usam o groupld software.amazon.awssdk, enquanto o SDK 1.x usa o groupld com.amazonaws.

Algumas vezes, seu código exige uma dependência de com.amazonaws para um projeto que, de outra forma, usa somente artefatos do SDK 2.x. Um exemplo disso é quando você trabalha com o AWS Lambda do lado do servidor. Isso foi mostrado na seção Configurar um projeto do Apache Maven, anteriormente neste guia.

nota

Vários nomes de pacotes no SDK 1.x contêm a v2. O uso da v2 nesse caso geralmente significa que o código no pacote é direcionado para funcionar com a versão 2 do serviço.

Como o nome completo do pacote começa com com.amazonaws, esses são componentes do SDK 1.x. Exemplos desses nomes de pacotes no SDK 1.x:

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

Adicionar a versão 2.x ao seu projeto

O Maven é a forma recomendada de gerenciar dependências ao usar o AWS SDK for Java 2.x. Para adicionar componentes da versão 2.x ao seu projeto, atualize seu pom.xml arquivo com uma dependência do SDK.

<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.16.1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>dynamodb</artifactId> </dependency> </dependencies>

Você também pode usar as versões 1.x e 2.x side-by-side ao migrar seu projeto para a versão 2.x.

POJOs imutáveis

Os clientes e solicitação de operação e objetos de resposta agora são imutáveis e não podem ser alterados após a criação. Para reutilizar uma variável de solicitação ou resposta, você deve criar um novo objeto para atribuir a ela.

exemplo de atualizar um objeto de solicitação na 1.x
DescribeAlarmsRequest request = new DescribeAlarmsRequest(); DescribeAlarmsResult response = cw.describeAlarms(request); request.setNextToken(response.getNextToken());
exemplo de atualizar um objeto de solicitação em 2.x
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); DescribeAlarmsResponse response = cw.describeAlarms(request); request = DescribeAlarmsRequest.builder() .nextToken(response.nextToken()) .build();

Métodos setter e getter

No AWS SDK for Java 2.x, os nomes dos métodos setter não incluem o prefixo set orwith. Por exemplo, *.withEndpoint() é *.endpoint() agora.

Os nomes dos métodos Getter não usam o get prefixo.

exemplo de usar métodos setter em 1.x
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
exemplo de usar métodos setter em 2.x
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
exemplo de usar métodos getter em 1.x
String token = request.getNextToken();
exemplo de usar métodos getter em 2.x
String token = request.nextToken();

Nomes de classes de modelo

Os nomes das classes de modelo que representam as respostas do serviço terminam Response em v2 em vez dos Result que a v1 usa.

exemplo de nomes de classes que representam uma resposta na v1
CreateApiKeyResult AllocateAddressResult
exemplo de nomes de classes que representam uma resposta na v2
CreateApiKeyResponse AllocateAddressResponse

Status da migração de bibliotecas e utilitários

Bibliotecas e utilitários do SDK para Java

A tabela a seguir lista o status da migração de bibliotecas e utilitários para o SDK for Java.

Nome da versão 1.12.x Nome da versão 2.x Desde a versão em 2.x
DynamoDBMapper DynamoDbEnhancedClient 2.12.0
Waiters Waiters 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2.18.33
TransferManager S3 TransferManager 2.19.0
Cliente de metadados do EC2 Cliente de metadados do EC2 2.19.29
Analisador de URI do S3 Analisador de URI do S3 2.20.41
Criador de política do IAM Criador de política do IAM 2.20.126
Buffer do lado do cliente do Amazon SQS Processamento em lotes automático de solicitações ainda não lançado
Listeners de progresso Listeners de progresso ainda não lançado

Bibliotecas relacionadas

A tabela a seguir lista as bibliotecas lançadas separadamente, mas que funcionam com o SDK para Java 2.x.

Nome usado com a versão 2.x do SDK para Java Desde a versão
Cliente de criptografia do Amazon S3 3.0.0 1
AWS Cliente de criptografia de banco de dados para DynamoDB 3.0.0 2

1 O cliente de criptografia para o Amazon S3 está disponível usando a dependência do Maven a seguir.

<dependency> <groupId>software.amazon.encryption.s3</groupId> <artifactId>amazon-s3-encryption-client-java</artifactId> <version>3.x</version> </dependency>

2 O AWS Database Encryption Client para DynamoDB está disponível usando a seguinte dependência do Maven.

<dependency> <groupId>software.amazon.cryptography</groupId> <artifactId>aws-database-encryption-sdk-dynamodb</artifactId> <version>3.x</version> </dependency>

Detalhes da migração para bibliotecas e utilitários