我正在从某些来源获取数据,现在想将其提供给Kinesis Firehose交付流。我在amazonKinesisFirehoseClient.putRecord(putRecordRequest)处收到“状态代码:400;错误代码:UnknownOperationException”;

我的密码

while (data != null) {
      PutRecordRequest putRecordRequest = new PutRecordRequest();
      putRecordRequest.setDeliveryStreamName("xxxxxxxxxx");
      String line = data + "\n";
      System.out.println("Data ---------> " + line);
      com.amazonaws.services.kinesisfirehose.model.Record recordData = createRecord(line);
      putRecordRequest.setRecord(recordData);
      System.out.println("Inside single row transfer 2222222222 --------------------");

      // Put record into the DeliveryStream
      amazonKinesisFirehoseClient.putRecord(putRecordRequest);
      System.out.println("Endddddd single row transfer --------------------");
}


输出量

Inside single row transfer 111111111 --------------------

Data --------->{"name":"xxxxxxxx","id":xxx,"address":xxxxxxxx,"phoneNumber":"xxxxxxxxxx","age":xx}

Inside single row transfer 2222222222 --------------------

com.amazonaws.services.kinesisfirehose.model.AmazonKinesisFirehoseException:null (Service: AmazonKinesisFirehose; Status Code: 400; Error Code: UnknownOperationException; Request ID: a084lc4-a0ed-7f9a-a14a-867sdw23wr68)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1588)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1258)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1030)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:742)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:716)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
at com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehoseClient.doInvoke(AmazonKinesisFirehoseClient.java:895)
at com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehoseClient.invoke(AmazonKinesisFirehoseClient.java:871)
at com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehoseClient.executePutRecord(AmazonKinesisFirehoseClient.java:640)
at com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehoseClient.putRecord(AmazonKinesisFirehoseClient.java:616)
at com.cloudwick.capstone.project.PersonDetailsRecordProcessor.processRecord(PersonDetailsRecordProcessor.java:142)
at com.cloudwick.capstone.project.PersonDetailsRecordProcessor.processRecords(PersonDetailsRecordProcessor.java:57)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.V1ToV2RecordProcessorAdapter.processRecords(V1ToV2RecordProcessorAdapter.java:42)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.ProcessTask.callProcessRecords(ProcessTask.java:215)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.ProcessTask.call(ProcessTask.java:170)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.MetricsCollectingTaskDecorator.call(MetricsCollectingTaskDecorator.java:49)
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.MetricsCollectingTaskDecorator.call(MetricsCollectingTaskDecorator.java:24)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)


我非常确定我与Kinesis Firehose连接的所有凭据均正确。我在Kinesis Firehose中很好地映射了S3和RedShift)

提前致谢 :)

最佳答案

在将端点配置为使用https://kinesis.us-east-1.amazonaws.com而不是https://firehose.us-east-1.amazonaws.com时,我已经看到类似的错误。尝试设置该值以查看是否有帮助。

另外,如果您使用的是支持该版本的SDK,则可以使用AmazonKinesisFirehoseClientBuilder并设置区域字符串以避免使用错误的终端节点:

AmazonKinesisFirehose firehoseClient = AmazonKinesisFirehoseClientBuilder
  .standard()
  .withRegion("us-west-2")
  .build()

09-29 22:17