KPL 0.x から KPL 1.x に移行する - Amazon Kinesis Data Streams

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

KPL 0.x から KPL 1.x に移行する

このトピックでは、コンシューマーを KPL 0.x から KPL 1.x に移行する方法について、段階的に説明します。KPL 1.x では、以前のバージョンとのインターフェイス互換性を維持しながら、 AWS SDK for Java 2.x のサポートが導入されています。KPL 1.x へ移行する際、データ処理の中核となるロジックを更新する必要はありません。

  1. 次の前提条件を満たしていることを確認する

    • Java Development Kit (JDK) 8 以降

    • AWS SDK for Java 2.x

    • 依存関係管理用の Maven または Gradle

  2. 依存関係を追加する

    Maven を使用している場合は、以下の依存関係を pom.xml ファイルに追加します。必ず groupId を com.amazonaws から software.amazon.kinesis に更新し、バージョンを 1.x.x から最新の KPL バージョンに更新してください。

    <dependency> <groupId>software.amazon.kinesis</groupId> <artifactId>amazon-kinesis-producer</artifactId> <version>1.x.x</version> <!-- Use the latest version --> </dependency>

    Gradle を使用している場合は、以下を build.gradle ファイルに追加します。必ず 1.x.x を最新の KPCL バージョンに置き換えてください。

    implementation 'software.amazon.kinesis:amazon-kinesis-producer:1.x.x'

    最新の KPL バージョンは、Maven Central Repository で確認できます。

  3. KPL の import ステートメントを更新する

    KPL 1.x は AWS SDK for Java 2.x を使用しsoftware.amazon.kinesis、 で始まる更新されたパッケージ名を使用します。前の KPL のパッケージ名は で始まりますcom.amazonaws.services.kinesis

    com.amazonaws.services.kinesis の import ステートメントを software.amazon.kinesis に置き換えます。次の表に、置き換える必要がある import ステートメントを示します。

    Import の置き換え
    置き換え前: 次と置き換えます。

    import com.amazonaws.services.kinesis.producer.Attempt;

    import software.amazon.kinesis.producer.Attempt;

    import com.amazonaws.services.kinesis.producer.BinaryToHexConverter;

    import software.amazon.kinesis.producer.BinaryToHexConverter;

    import com.amazonaws.services.kinesis.producer.CertificateExtractor;

    import software.amazon.kinesis.producer.CertificateExtractor;

    import com.amazonaws.services.kinesis.producer.Daemon;

    import software.amazon.kinesis.producer.Daemon;

    import com.amazonaws.services.kinesis.producer.DaemonException;

    import software.amazon.kinesis.producer.DaemonException;

    import com.amazonaws.services.kinesis.producer.FileAgeManager;

    import software.amazon.kinesis.producer.FileAgeManager;

    import com.amazonaws.services.kinesis.producer.FutureTimedOutException;

    import software.amazon.kinesis.producer.FutureTimedOutException;

    import com.amazonaws.services.kinesis.producer.GlueSchemaRegistrySerializerInstance;

    import software.amazon.kinesis.producer.GlueSchemaRegistrySerializerInstance;

    import com.amazonaws.services.kinesis.producer.HashedFileCopier;

    import software.amazon.kinesis.producer.HashedFileCopier;

    import com.amazonaws.services.kinesis.producer.IKinesisProducer;

    import software.amazon.kinesis.producer.IKinesisProducer;

    import com.amazonaws.services.kinesis.producer.IrrecoverableError;

    import software.amazon.kinesis.producer.IrrecoverableError;

    import com.amazonaws.services.kinesis.producer.KinesisProducer;

    import software.amazon.kinesis.producer.KinesisProducer;

    import com.amazonaws.services.kinesis.producer.KinesisProducerConfiguration;

    import software.amazon.kinesis.producer.KinesisProducerConfiguration;

    import com.amazonaws.services.kinesis.producer.LogInputStreamReader;

    import software.amazon.kinesis.producer.LogInputStreamReader;

    import com.amazonaws.services.kinesis.producer.Metric;

    import software.amazon.kinesis.producer.Metric;

    import com.amazonaws.services.kinesis.producer.ProcessFailureBehavior;

    import software.amazon.kinesis.producer.ProcessFailureBehavior;

    import com.amazonaws.services.kinesis.producer.UnexpectedMessageException;

    import software.amazon.kinesis.producer.UnexpectedMessageException;

    import com.amazonaws.services.kinesis.producer.UserRecord;

    import software.amazon.kinesis.producer.UserRecord;

    import com.amazonaws.services.kinesis.producer.UserRecordFailedException;

    import software.amazon.kinesis.producer.UserRecordFailedException;

    import com.amazonaws.services.kinesis.producer.UserRecordResult;

    import software.amazon.kinesis.producer.UserRecordResult;

    import com.amazonaws.services.kinesis.producer.protobuf.Messages;

    import software.amazon.kinesis.producer.protobuf.Messages;

    import com.amazonaws.services.kinesis.producer.protobuf.Config;

    import software.amazon.kinesis.producer.protobuf.Config;

  4. AWS 認証情報プロバイダークラスのインポートステートメントを更新する

    KPL 1.x に移行するときは、 AWS SDK for Java 1.x に基づく KPL アプリケーションコードのインポートのパッケージとクラスを、 AWS SDK for Java 2.x に基づく対応するパッケージとクラスに更新する必要があります。KPL アプリケーションでよく使用される import ステートメントは、認証情報プロバイダークラスにあります。認証情報プロバイダーの変更の完全なリストについては、2.x 移行ガイドのドキュメントの「認証情報プロバイダーの変更」を参照してください。 AWS SDK for Java 以下は、KPL アプリケーションで一般的に必要となる import ステートメントの変更例です。

    KPL 0.x の import ステートメント

    import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;

    KPL 1.x の import ステートメント

    import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

    AWS SDK for Java 1.x に基づいて他の認証情報プロバイダーをインポートする場合は、それらを AWS SDK for Java 2.x に相当するものに更新する必要があります。 AWS SDK for Java 1.x からクラス/パッケージをインポートしなかった場合は、このステップを無視できます。

  5. KPL 設定内の認証情報プロバイダー設定を更新する

    KPL 1.x の認証情報プロバイダー設定には、 AWS SDK for Java 2.x の認証情報プロバイダーが必要です。デフォルトの認証情報プロバイダーを上書きKinesisProducerConfigurationして の AWS SDK for Java 1.x の認証情報プロバイダーを渡す場合は、 AWS SDK for Java 2.x 認証情報プロバイダーで更新する必要があります。認証情報プロバイダーの変更の完全なリストについては、2.x 移行ガイドのドキュメントの「認証情報プロバイダーの変更」を参照してください。 AWS SDK for Java KPL 設定でデフォルトの認証情報プロバイダーを上書きしていない場合は、この手順は無視できます。

    たとえば、KPL のデフォルト認証情報プロバイダーを次のコードで上書きしている場合です。

    KinesisProducerConfiguration config = new KinesisProducerConfiguration(); // SDK v1 default credentials provider config.setCredentialsProvider(new DefaultAWSCredentialsProviderChain());

    AWS SDK for Java 2.x の認証情報プロバイダーを使用するためには、これらを次のコードに更新する必要があります。

    KinesisProducerConfiguration config = new KinesisProducerConfiguration(); // New SDK v2 default credentials provider config.setCredentialsProvider(DefaultCredentialsProvider.create());