버전 API 1에서 버전 2로 S3 이벤트 알림 변경 - AWS SDK for Java 2.x

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

버전 API 1에서 버전 2로 S3 이벤트 알림 변경

이 주제에서는 버전 1.x (v1) API 에서 버전 2.x (v2) 로의 S3 이벤트 알림 변경 사항에 대해 자세히 설명합니다. AWS SDK for Java

높은 수준의 변경 사항

구조적 변경

V1은 EventNotificationRecord 형식과 속성에 정적 내부 클래스를 사용하는 반면, v2는 EventNotificationRecord 형식에 대해 별도의 공개 클래스를 사용합니다.

명명 규칙 변경

v1에서는 속성 클래스 이름에 접미사 Entity가 포함되지만 v2에서는 간단한 이름 지정을 위해 이 접미사를 생략합니다 (예: 대신). eventDataeventDataEntity

종속성, 패키지 및 클래스 이름의 변경

v1에서는 S3 이벤트 알림 API 클래스를 S3 모듈 () 과 함께 전이적으로 가져옵니다. artifactId aws-java-sdk-s3 하지만 v2에서는 아티팩트에 대한 종속성을 추가해야 합니다. s3-event-notifications

변경 사항 v1 v2

Maven 종속성

<dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-bom</artifactId> <version>1.X.X</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> </dependency> </dependencies>
<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.X.X1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3-event-notifications</artifactId> </dependency> </dependencies>
패키지 이름 com.amazonaws.services.s3.event software.amazon.awssdk.eventnotifications.s3.model
클래스 이름

S3 EventNotification

S3EventNotification. S3. EventNotificationRecord

S3EventNotification. GlacierEventDataEntity

S3EventNotification. IntelligentTieringEventDataEntity

S3EventNotification. LifecycleEventDataEntity

S3EventNotification. ReplicationEventDataEntity

S3EventNotification. RequestParametersEntity

S3EventNotification. ResponseElementsEntity

S3EventNotification. RestoreEventDataEntity

S3 EventNotification .S3 BucketEntity

S3. S3 엔티티 EventNotification

S3EventNotification. S3 ObjectEntity

S3EventNotification. TransitionEventDataEntity

S3EventNotification. UserIdentityEntity

S3 EventNotification

S3 EventNotificationRecord

GlacierEventData

IntelligentTieringEventData

LifecycleEventData

ReplicationEventData

RequestParameters

ResponseElements

RestoreEventData

S3Bucket

S3

S3 오브젝트

TransitionEventData

UserIdentity

1 최신 버전.

API변경

JSON왕복 S3EventNotification 및 역방향

사용 사례 v1 v2
S3EventNotificationJSON문자열에서 만들기
S3EventNotification notification = S3EventNotification.parseJson(message.body());
S3EventNotification notification = S3EventNotification.fromJson(message.body());
S3EventNotificationJSON문자열로 변환
String json = notification.toJson();
String json = notification.toJson();

액세스 속성 S3EventNotification

사용 사례 v1 v2
알림에서 레코드 검색
List<S3EventNotification.S3EventNotificationRecord> records = notifcation.getRecords();
List<S3EventNotificationRecord> records = notification.getRecords();
레코드 목록에서 레코드 검색
S3EventNotification.S3EventNotificationRecord record = records.stream().findAny().get();
S3EventNotificationRecord record = records.stream().findAny().get();
Glacier 이벤트 데이터 검색
S3EventNotification.GlacierEventDataEntity glacierEventData = record.getGlacierEventData();
GlacierEventData glacierEventData = record.getGlacierEventData();
Glacier 이벤트에서 복원 이벤트 데이터 검색
S3EventNotification.RestoreEventDataEntity restoreEventData = glacierEventData.getRestoreEventDataEntity();
RestoreEventData restoreEventData = glacierEventData.getRestoreEventData();
요청 파라미터 검색
S3EventNotification.RequestParametersEntity requestParameters = record.getRequestParameters();
RequestParameters requestParameters = record.getRequestParameters();
지능형 계층화 이벤트 데이터 검색
S3EventNotification.IntelligentTieringEventDataEntity tieringEventData = record.getIntelligentTieringEventData();
IntelligentTieringEventData intelligentTieringEventData = record.getIntelligentTieringEventData();
라이프사이클 이벤트 데이터 검색
S3EventNotification.LifecycleEventDataEntity lifecycleEventData = record.getLifecycleEventData();
LifecycleEventData lifecycleEventData = record.getLifecycleEventData();
이벤트 이름을 열거형으로 검색
S3Event eventNameAsEnum = record.getEventNameAsEnum();
//getEventNameAsEnum does not exist; use 'getEventName()' String eventName = record.getEventName();
복제 이벤트 데이터 검색
S3EventNotification.ReplicationEventDataEntity replicationEntity = record.getReplicationEventDataEntity();
ReplicationEventData replicationEventData = record.getReplicationEventData();
S3 버킷 및 객체 정보를 검색합니다.
S3EventNotification.S3Entity s3 = record.getS3();
S3 s3 = record.getS3();
사용자 ID 정보 검색
S3EventNotification.UserIdentityEntity userIdentity = record.getUserIdentity();
UserIdentity userIdentity = record.getUserIdentity();
응답 요소 검색
S3EventNotification.ResponseElementsEntity responseElements = record.getResponseElements();
ResponseElements responseElements = record.getResponseElements();

aws-lambda-java-events라이브러리를 S3EventNotification 사용하여 마이그레이션하세요.

Lambda 함수 내에서 S3 알림 이벤트를 처리하는 aws-lambda-java-events데 사용하는 경우 최신 3.x.x 버전으로 업그레이드하는 것이 좋습니다. 최신 버전은 S3 이벤트 알림에서 AWS SDK for Java 1.x에 대한 모든 종속성을 제거합니다. API