S3 イベント通知のバージョン 1 APIからバージョン 2 への変更 - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

S3 イベント通知のバージョン 1 APIからバージョン 2 への変更

このトピックでは、 のバージョン 1.x (v1) APIからバージョン 2 .x (v2) への S3 イベント通知の変更について詳しく説明します AWS SDK for Java。

高レベル変更

構造の変更

V1 はEventNotificationRecordタイプとその属性に静的な内部クラスを使用しますが、v2 はEventNotificationRecordタイプに個別のパブリッククラスを使用します。

命名規則の変更

v1 では、属性クラス名にはサフィックスエンティティ が含まれますが、v2 では、より単純な命名のためにこのサフィックスを省略します。例えば、 eventDataではなく ですeventDataEntity

依存関係、パッケージ、クラス名の変更

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
クラス名

S3EventNotification

S3EventNotification.S3EventNotificationRecord

S3EventNotification。GlacierEventDataEntity

S3EventNotification。IntelligentTieringEventDataEntity

S3EventNotification。LifecycleEventDataEntity

S3EventNotification。ReplicationEventDataEntity

S3EventNotification。RequestParametersEntity

S3EventNotification。ResponseElementsEntity

S3EventNotification。RestoreEventDataEntity

S3EventNotification.S3BucketEntity

S3EventNotification.S3Entity

S3EventNotification.S3ObjectEntity

S3EventNotification。TransitionEventDataEntity

S3EventNotification。UserIdentityEntity

S3EventNotification

S3EventNotificationRecord

GlacierEventData

IntelligentTieringEventData

LifecycleEventData

ReplicationEventData

RequestParameters

ResponseElements

RestoreEventData

S3 バケット

S3

S3Object

TransitionEventData

UserIdentity

1 最新バージョン

API 変更

JSON から へS3EventNotification、または逆へ

ユースケース v1 v2
JSON 文字列S3EventNotificationから を作成する
S3EventNotification notification = S3EventNotification.parseJson(message.body());
S3EventNotification notification = S3EventNotification.fromJson(message.body());
JSON 文字列S3EventNotificationに変換する
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を使用して移行します。

aws-lambda-java-events を使用して Lambda 関数内で S3 通知イベントを操作する場合は、最新の 3.x.x バージョンにアップグレードすることをお勧めします。最新バージョンでは、S3 イベント通知 から AWS SDK for Java 1.x へのすべての依存関係が削除されますAPI。