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