0
낙타의 잘못된 액세스/비밀 키는 어떻게 처리해야합니까?apache camel - aws s3의 자격 증명이 잘못되었습니다.
나는 낙타의 errorHandler
을 사용해 보았지만 메시지 교환에 실패하여 오류가 발생했다. 교환 전에도이 문제가 발생했다.
나는 pollingStrategy
도 시도했으며, rollback()
에서 오류를 잡을 수있는 것 같습니다. 이 문제는 내 메소드가 false를 리턴하더라도 여전히 재 시도 중이다. 재시도 사이의 지연을 지정해야 할 필요가 있습니다.이 클래스를 구현할 때 PollingConsumerPollStrategy
을 구현해야합니까?
@Override
public boolean rollback(Consumer consumer, Endpoint endpoint, int retryCounter, Exception e) throws Exception {
System.out.println("retryCounter " + retryCounter);
if (retryCounter < 3) {
// return true to tell Camel that it should retry the poll immediately
return true;
}
// okay we give up do not retry anymore
return false;
}
14:20:26.406 WARN o.a.c.component.aws.s3.S3Consumer [Camel (camelContext) thread #0 - aws-s3://thebucket] - log:224 - Consumer S3Consumer[aws-s3://thebucket?amazonS3Client=%23s3Client] failed polling endpoint: Endpoint[aws-s3://thebucket?amazonS3Client=%23s3Client]. Will try again at next poll. Caused by: [com.amazonaws.services.s3.model.AmazonS3Exception - The AWS Access Key Id you provided does not exist in our records.]
com.amazonaws.services.s3.model.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records.
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:659) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:347) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:199) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2994) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2965) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:481) ~[aws-java-sdk-1.5.1.jar:na]
at org.apache.camel.component.aws.s3.S3Consumer.poll(S3Consumer.java:69) ~[camel-aws-2.12.1.jar:2.12.1]
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187) [camel-core-2.12.1.jar:2.12.1]
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114) [camel-core-2.12.1.jar:2.12.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_45]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
14:20:27.927 WARN o.a.c.component.aws.s3.S3Consumer [Camel (camelContext) thread #0 - aws-s3://thebucket] - log:224 - Consumer S3Consumer[aws-s3://thebucket?amazonS3Client=%23s3Client] failed polling endpoint: Endpoint[aws-s3://thebucket?amazonS3Client=%23s3Client]. Will try again at next poll. Caused by: [com.amazonaws.services.s3.model.AmazonS3Exception - The AWS Access Key Id you provided does not exist in our records.]
com.amazonaws.services.s3.model.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records.
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:659) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:347) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:199) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2994) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2965) ~[aws-java-sdk-1.5.1.jar:na]
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:481) ~[aws-java-sdk-1.5.1.jar:na]
at org.apache.camel.component.aws.s3.S3Consumer.poll(S3Consumer.java:69) ~[camel-aws-2.12.1.jar:2.12.1]
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187) [camel-core-2.12.1.jar:2.12.1]
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114) [camel-core-2.12.1.jar:2.12.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_45]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
많은 감사!