O que há de diferente entre AWS SDK for Java 1.x e 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 AWS SDK for Java 1.x e 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 mudança notável do SDK para Java 1.x SDK para o Java 2.x é a alteração do nome do pacote. Os nomes dos pacotes começam com software.amazon.awssdk em SDK 2.x, enquanto o SDK 1.x usa. com.amazonaws

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

Algumas vezes, seu código exige uma com.amazonaws dependência para um projeto que, de outra forma, usa apenas artefatos 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êmv2. 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 comcom.amazonaws, esses são componentes SDK 1.x. Exemplos desses nomes de pacotes na SDK versão 1.x são:

  • 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.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 as versões 1.x e 2.x side-by-side ao migrar seu projeto para a versão 2.x.

Imutável POJOs

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

SDKpara bibliotecas e utilitários Java

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

Nome da versão 1.12.x Nome da versão 2.x Desde a versão em 2.x
D ynamoDBMapper DynamoDbEnhancedClient 2.12.0
Waiters Waiters 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2.18.33
TransferManager S3 TransferManager 2.19.0
EC2Cliente de metadados EC2Cliente de metadados 2.19.29
Analisador S3 URI Analisador S3 URI 2.20.41
IAMCriador de políticas IAMCriador de políticas 2.20.126
Notificações de eventos do S3 Notificações de eventos do S3 2.25.11
Buffering do SQS lado do cliente da Amazon Envio automático de solicitações API para a 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 que são lançadas separadamente, mas funcionam com o SDK para Java 2.x.

Nome usado com a versão 2.x do SDK for 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