MSK Connect を使用してコネクタを作成しようとしていますが、エラーが発生します。この解決方法を教えてください。

最終更新日: 2021 年 12 月 7 日

Amazon Managed Streaming for Apache Kafka (Amazon MSK) Connect を使用して、コネクタを作成しようとしています。しかし、エラーメッセージが表示されてしまいます。このエラーを解決するにはどうすればよいですか?

解決方法

MSK Connect を使用してコネクタを作成すると、次のいずれかのエラーメッセージが表示されることがあります。

  • 「Invalid parameter connectorConfiguration: The following required field is missing or has invalid value: tasks.max」
  • 「org.apache.kafka.connect.errors.ConnectException: Failed to find any class that implements Connector and which name matches...」
  • 「org.apache.kafka.common.errors.TimeoutException: Timed out waiting to send the call.Call: fetchMetadata」
  • 「org.apache.kafka.common.errors.SaslAuthenticationException: Too many connects」

「Invalid parameter connectorConfiguration: The following required field is missing or has invalid value: tasks.max」

設定の最後にキャリッジリターン (/r) 文字を使用すると、次のエラーが表示されます。

Invalid parameter connectorConfiguration: The following required field is missing or has invalid value: tasks.max

このエラーを解決するには、次の操作をお試しください。

  • [Connector Configuration] (コネクタ設定) ダイアログボックスに構成情報を、ドキュメントなどの別のソースからコピーして貼り付けるのではなく、手動で入力します。
  • Windows オペレーティングシステムを使用している場合は、テキストエディタ (Notepad++ など) を使用します。テキストエディタを使用して、キャリッジリターン (CRLF) 文字や行末 (EOL) 文字を確認したり削除したりできます。キャリッジリターンを削除するには、設定をコピーしてテキストエディターに貼り付けます。テキストエディタで、[View] (表示) [Show Symbol] (記号の表示) を選択します。次に、[Show All Characters] (すべての文字を表示) を選択して、設定に CRLF 文字または EOL 文字があるかどうかを確認します。すべての CRLF 文字 (「\ r\ n」) を LF 文字 (「\ n」) に置き換えます。

「org.apache.kafka.connect.errors.ConnectException: Failed to find any class that implements Connector and which name matches...」

このエラーを解決するには、次の操作をお試しください。

  • コネクタ設定に存在するキャリッジリターン (/r) 文字をすべて削除します。
  • コネクタプラグインに複数のファイルが必要な場合は、これらのファイルが圧縮ファイルに含まれるようにしてください。(圧縮ファイルは、コネクタプラグインの作成時に使用されます)。 圧縮ファイル内の JAR ファイルも、そのプラグイン用に文書化された想定されるファイル構造を持っている必要があります。MSK Connect のログを確認して有効化することで、ファイル構造が正しく設定されていることを確認するのがベストプラクティスです。

「org.apache.kafka.common.errors.TimeoutException: Timed out waiting to send the call.Call: fetchMetadata」

コネクタが Amazon MSK クラスターに到達できない場合は、TimeOutException エラーが発生します。このエラーを解決するには、Amazon MSK クラスターのセキュリティグループを確認しますセキュリティグループは、クライアントのセキュリティグループ (Amazon MSK Connect に関連付けられている) からのインバウンドトラフィックを許可する必要があります。Amazon MSK クラスターを使用している場合は、そのクラスターからのインバウンドトラフィックを許可するルールを必ず追加してください。これらのルールの設定について詳しくは、「セキュリティグループのルール」を参照してください。

「org.apache.kafka.common.errors.SaslAuthenticationException: Too many connects」

MSK クラスターが AWS Identity Access Management (IAM) アクセスコントロールを持つ kafka.t3.small ブローカータイプで実行されている場合は、接続制限に注意してくださいkafka.t3.small インスタンスタイプは、ブローカーごとに 1 秒あたり 1 つの TCP 接続しか受け付けません。この接続制限を超えると、作成テストは失敗します。その結果、認証情報が無効であることを示す SaslAuthenticationException エラーを受け取ります。Amazon MSK クラスターと IAM アクセスコントロールの詳細については、「Amazon MSK で IAM を使用する方法」を参照してください。

SaslAuthenticationException エラーを解決するには、次の方法を検討してください。

  • Amazon MSK Connect ワーカー設定で、reconnect.backoff.ms およびreconnect.backoff.max.ms の値を「1000」以上に更新します。
  • より大きなブローカーインスタンスタイプ (kafka.m5.large 以上など) にアップグレードします。Amazon MSK ブローカータイプと適切なブローカータイプの選択について詳しくは、「ブローカータイプ」および「クラスターの適切なサイズ」を参照してください。