AWS SDK for Java 1.x와 2.x의 차이점 - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SDK for Java 1.x와 2.x의 차이점

이 섹션에서는 버전 1.x를 사용하여 애플리케이션을 에서 AWS SDK for Java 버전 2.x로 변환할 때 알아야 할 주요 변경 사항에 대해 설명합니다.

패키지 이름 변경 사항

Java 1.xSDK용 에서 Java 2.xSDK용 로 눈에 띄게 변경된 것은 패키지 이름 변경입니다. 패키지 이름은 SDK 2.xsoftware.amazon.awssdk에서 로 시작하는 반면, SDK 1.x는 를 사용합니다com.amazonaws.

이러한 동일한 이름은 Maven 아티팩트를 SDK 1.x에서 SDK 2.x로 구분합니다. SDK 2.x용 Maven 아티팩트는 software.amazon.awssdk 를 사용하는 반면groupId, SDK 1.x는 com.amazonaws 를 사용합니다groupId.

코드에 2.x 아티팩트만 사용하는 프로젝트에 대한 com.amazonaws 종속성이 필요한 경우가 몇 SDK 번 있습니다. 이에 대한 한 가지 예는 서버 측에서 작업하는 경우입니다. AWS Lambda이 내용은 이 가이드 앞부분의 Apache Maven 프로젝트 설정 단원에 나와 있습니다.

참고

SDK 1.x의 여러 패키지 이름에는 이 포함되어 있습니다v2. 이 v2 경우에 를 사용한다는 것은 일반적으로 패키지의 코드가 서비스 버전 2에서 작동하도록 타겟팅되었음을 의미합니다.

전체 패키지 이름은 로 시작되므로 com.amazonaws SDK 1.x 구성 요소입니다. SDK 1.x에서 이러한 패키지 이름의 예는 다음과 같습니다.

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

프로젝트에 버전 2.x 추가

Maven은 AWS SDK for Java 2.x를 사용할 때 종속성을 관리하는 권장 방법입니다. 프로젝트에 버전 2.x 구성 요소를 추가하려면 에 따라 pom.xml 파일을 업데이트합니다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>

프로젝트를 버전 2.x로 마이그레이션할 때 버전 1.x 및 2.x를 사용할 side-by-side 수도 있습니다.

변경할 수 없음 POJOs

클라이언트와 작업 요청 및 응답 객체는 이제 변경할 수 없으며 생성 후에는 변경할 수 없습니다. 요청 또는 응답 변수를 재사용하려면 새 객체를 만들어 해당 변수에 할당해야 합니다.

예 1.x의 요청 객체 업데이트
DescribeAlarmsRequest request = new DescribeAlarmsRequest(); DescribeAlarmsResult response = cw.describeAlarms(request); request.setNextToken(response.getNextToken());
예 2.x의 요청 객체 업데이트
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); DescribeAlarmsResponse response = cw.describeAlarms(request); request = DescribeAlarmsRequest.builder() .nextToken(response.nextToken()) .build();

설정자 및 획득자 메서드

AWS SDK for Java 2.x에서 설정자 메서드 이름에는 set 또는 with 접두사가 포함되지 않습니다. 예를 들어 *.withEndpoint()*.endpoint()입니다.

Getter 메서드 이름은 get 접두사를 사용하지 않습니다.

예 1.x에서 세터 메서드 사용
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
예 2.x에서 세터 메서드 사용
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
예 1.x에서 getter 메서드 사용
String token = request.getNextToken();
예 2.x에서 getter 메서드 사용
String token = request.nextToken();

모델 클래스 이름

서비스 응답을 나타내는 모델 클래스 이름은 v1에서 사용하는 대신 Result v2Response로 끝납니다.

예 v1에서 응답을 나타내는 클래스 이름의
CreateApiKeyResult AllocateAddressResult
예 v2에서 응답을 나타내는 클래스 이름의
CreateApiKeyResponse AllocateAddressResponse

라이브러리 및 유틸리티의 마이그레이션 상태

SDK Java 라이브러리 및 유틸리티용

다음 표에는 JavaSDK용 라이브러리 및 유틸리티의 마이그레이션 상태가 나열되어 있습니다.

버전 1.12.x 이름 버전 2.x 이름 버전 2.x 이상
DynamoDBMapper DynamoDbEnhancedClient 2.12.0
Waiters Waiters 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2.18.33
TransferManager S3TransferManager 2.19.0
EC2 메타데이터 클라이언트 EC2 메타데이터 클라이언트 2.19.29
S3 URI 파서 S3 URI 파서 2.20.41
IAM 정책 빌더 IAM 정책 빌더 2.20.126
S3 이벤트 알림 S3 이벤트 알림 2.25.11
Amazon SQS Client 측 버퍼링 AmazonAPI용 자동 배치 요청 SQS 2.28.0
진행 상황 리스너 진행 상황 리스너 아직 릴리스되지 않음

관련 라이브러리

다음 표에는 별도로 릴리스되지만 Java 2.xSDK용 에서 작동하는 라이브러리가 나열되어 있습니다.

JavaSDK용 의 버전 2.x에 사용된 이름 버전 이후
Amazon S3 암호화 클라이언트 3.0.01
AWS DynamoDB용 데이터베이스 암호화 클라이언트 3.0.02

1Amazon S3용 암호화 클라이언트는 다음 Maven 종속성을 사용하여 사용할 수 있습니다.

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

2DDynamoDB용 AWS 데이터베이스 암호화 클라이언트는 다음 Maven 종속성을 사용하여 사용할 수 있습니다.

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

라이브러리 및 유틸리티에 대한 마이그레이션 세부 정보