O que é diferente entre o AWS SDK para Java 1.x e o 2.x
Esta seção descreve as principais alterações a serem observadas ao converter um aplicativo usando o AWS SDK para 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
Maven é o modo recomendado de gerenciar as dependências ao usar o AWS SDK para Java 2.x. Para adicionar os componentes da versão 2.x ao projeto, basta atualizar o arquivo pom.xml com uma dependência no SDK.
<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.27.21</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 a versão 1.x e 2.x lado a lado 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 para Java 2.x, os nomes do método de configuração não incluem o prefixo set ou with. Por exemplo, *.withEndpoint() é *.endpoint() agora.
Os nomes dos métodos getter não usam o prefixo get.
exemplo de usar métodos setter na 1.x
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
exemplo de usar métodos setter na 2.x
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
exemplo de usar métodos getter na 1.x
String token = request.getNextToken();
exemplo de usar métodos getter na 2.x
String token = request.nextToken();
Nomes da classe do modelo
Os nomes das classes de modelo que representam as respostas do serviço terminam com Response na v2, em vez de 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 do SDK para 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 | S3TransferManager | 2.19.0 |
| Cliente de metadados do EC2 | Cliente de metadados do EC | 2.19.29 |
| Analisador de URI do S3 | Analisador de URI do S |
2.20.41 |
| Criador de política do IAM | Criador de política do IAM | 2.20.126 |
| Notificações de eventos do S3 | Notificações de eventos do S | 2.25.11 |
| Buffer do lado do cliente do Amazon SQS | API de agrupamento em lote de automático de solicitações para Amazon SQS | 2.28.0 |
| 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 S | 3.0.01 |
| AWS SDK de criptografia de banco de dados da para DynamoDB | 3.0.02 |
1Cliente de criptografia do Amazon S3
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 SDK de criptografia de banco de dados da AWS para DynamoDB
O SDK de criptografia de banco de dados da AWS para DynamoDB está disponível para V2 usando a dependência do Maven a seguir.
<dependency> <groupId>software.amazon.cryptography</groupId> <artifactId>aws-database-encryption-sdk-dynamodb</artifactId> <version>3.x</version> </dependency>
As informações sobre a biblioteca de criptografia do DynamoDB que funciona com a versão 1 do Java SDK estão disponíveis no Guia do desenvolvedor do SDK de criptografia de banco de dados da AWS (chamado Amazon DynamoDB Encryption Client para Java) e no GitHub
Consulte mais informações sobre a biblioteca de criptografia do DynamoDB que é compatível com a V2 do Java SDK, no Guia do desenvolvedor do SDK de criptografia de banco de dados da AWS e a fonte do GitHub
As informações de migração sobre a biblioteca de criptografia estão disponíveis no Guia do desenvolvedor do SDK de criptografia de banco de dados da AWS.