本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 KPL 0.x 遷移至 KPL 1.x
本主題提供step-by-step說明,將您的消費者從 KPL 0.x 遷移至 KPL 1.x。KPL 1.x 推出對 AWS SDK for Java 2.x 的支援,同時保持與先前版本的介面相容性。您不需要更新核心資料處理邏輯,即可遷移至 KPL 1.x。
-
請確定您有下列先決條件:
-
Java 開發套件 (JDK) 8 或更新版本
-
AWS SDK for Java 2.x
-
Maven 或 Gradle 用於相依性管理
-
-
新增相依性
如果您使用的是 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為最新的 KPL 版本。implementation 'software.amazon.kinesis:amazon-kinesis-producer:1.x.x'您可以在 Maven Central Repository
上檢查最新版本的 KPL。 -
更新 KPL 的匯入陳述式
相較於先前以 開頭之 KPL 中的套件名稱
software.amazon.kinesis,KPL 1.x 使用 AWS SDK for Java 2com.amazonaws.services.kinesis.x,並使用以 開頭的更新套件名稱。將 的匯入取代
com.amazonaws.services.kinesis為software.amazon.kinesis。下表列出您必須取代的匯入。匯入替換項目 取代: 取代為: 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;
-
更新 AWS 登入資料提供者類別的匯入陳述式
遷移至 KPL 1.x 時,您必須在以 AWS SDK for Java 1.x 為基礎的 KPL 應用程式程式碼中,將匯入中的套件和類別更新為以 AWS SDK for Java 2.x 為基礎的對應套件和類別。KPL 應用程式中的常見匯入是登入資料提供者類別。如需登入資料提供者變更的完整清單,請參閱 AWS SDK for Java 2.x 遷移指南文件中的登入資料提供者變更。以下是您可能需要在 KPL 應用程式中進行的常見匯入變更。
在 KPL 0.x 中匯入
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;在 KPL 1.x 中匯入
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 匯入任何類別/套件,您可以忽略此步驟。
-
在 KPL 組態中更新登入資料提供者組態
KPL 1.x 中的登入資料提供者組態需要 AWS SDK for Java 2.x 登入資料提供者。如果您要透過覆寫預設登入資料提供者
KinesisProducerConfiguration,在 中傳遞 AWS SDK for Java 1.x 的登入資料提供者,您必須使用 AWS SDK for Java 2.x 登入資料提供者進行更新。如需登入資料提供者變更的完整清單,請參閱 AWS SDK for Java 2.x 遷移指南文件中的登入資料提供者變更。如果您沒有覆寫 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());