Я пытаюсь определить коннектор источника Camel S3 в нашей конфлюэнтной среде.
Это конфигурация, которую я использую
{
"name": "CamelAWSS3SourceConnector",
"config": {
"connector.class": "org.apache.camel.kafkaconnector.awss3.CamelAwss3SourceConnector",
"key.converter": "org.apache.kafka.connect.storage.StringConverter",
"value.converter": "org.apache.camel.kafkaconnector.awss3.converters.S3ObjectConverter",
"camel.source.maxPollDuration": "10000",
"topics": "TEST-S3-SOURCE-POC",
"camel.source.path.bucketNameOrArn": "json-poc",
"camel.component.aws-s3.region": "us-east-1",
"tasks.max": "2",
"camel.source.endpoint.autocloseBody": "true"
}
}
И это ошибка, которую я получаю, когда пытаюсь определить коннектор
{
"error_code": 405,
"message": "HTTP 405 Method Not Allowed"
} {
"name": "CamelAWSS3SourceConnector",
"connector": {
"state": "RUNNING",
"worker_id": "confluent-connect-server2:8083"
},
"tasks": [{
"id": 0,
"state": "FAILED",
"worker_id": "confluent-connect-server2",
"trace": "org.apache.kafka.connect.errors.ConnectException: Failed to create and start Camel context
at org.apache.camel.kafkaconnector.CamelSourceTask.start(CamelSourceTask.java:118)
at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:215)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:184)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:234)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Option bucketNameOrArn is required when creating endpoint uri with syntax aws-s3://bucketNameOrArn
at org.apache.camel.support.component.EndpointUriFactorySupport.buildPathParameter(EndpointUriFactorySupport.java:53)
at org.apache.camel.component.aws.s3.S3EndpointUriFactory.buildUri(S3EndpointUriFactory.java:103)
at org.apache.camel.kafkaconnector.utils.TaskHelper.buildUrl(TaskHelper.java:68)
at org.apache.camel.kafkaconnector.CamelSourceTask.start(CamelSourceTask.java:98)
... 8 more"
}],
"type": "source"
}
Что может быть причиной вышеуказанной ошибки?
Мне сказали, что, поскольку сервер подключения является экземпляром ec2, мне не нужно определять здесь параметры AWS. Это верно?
Спасибо
Примечание. Хотел добавить, что есть два сервера подключения, и ошибка отображается только для одного из них в выходных данных.
Просто хотел опубликовать ответ здесь на случай, если кто-то еще столкнется с этим.
Проблема заключалась в том, что при использовании PUT для добавления или обновления соединителя формат URL-адреса запроса curl должен быть http(s)://<serverurl>/<connectorName>/config
. Мой json содержал ключ «имя:», а URL-адрес был просто http(s)://. Первоначально я создал коннектор с помощью POST, а затем пытался обновить с помощью PUT, чтобы обновить (фактически, добавить) ключ BucketNameOrArn, который в действительности не обновлялся.
Есть ли у кого-нибудь предложения, где я должен искать, чтобы решить эту проблему? Спасибо