Java 在检测上传到Amazon s3的视频中的人脸时,SQSMessageSuccess没有响应

Java 在检测上传到Amazon s3的视频中的人脸时,SQSMessageSuccess没有响应,java,amazon-web-services,amazon-s3,amazon-sqs,Java,Amazon Web Services,Amazon S3,Amazon Sqs,我一直在尝试从AmazonS3上存储的视频中检测人脸,这些人脸必须与包含要在视频中搜索的人脸的集合相匹配。 我用过亚马逊视频检测。 我的代码如下: CreateCollection createCollection = new CreateCollection(collection); createCollection.makeCollection(); AddFacesToCollection addFacesToCollection = new AddFacesToCollection(co

我一直在尝试从AmazonS3上存储的视频中检测人脸,这些人脸必须与包含要在视频中搜索的人脸的集合相匹配。 我用过亚马逊视频检测。 我的代码如下:

CreateCollection createCollection = new CreateCollection(collection);
createCollection.makeCollection();
AddFacesToCollection addFacesToCollection = new AddFacesToCollection(collection, bucketName, image);
addFacesToCollection.addFaces();
VideoDetect videoDetect = new VideoDetect(video, bucketName, collection);
videoDetect.CreateTopicandQueue();
try {
  videoDetect.StartFaceSearchCollection(bucketName, video, collection);
  if (videoDetect.GetSQSMessageSuccess())
    videoDetect.GetFaceSearchCollectionResults();
} catch (Exception e) {
  e.printStackTrace();
  return false;
}
videoDetect.DeleteTopicandQueue();
return true;
在开始FaceSearchCollection之前,一切似乎都很顺利,我得到了一个jobId,还有一个队列。但是,当它试图四处传播以获得GetSQSMessageSuccess时,它从不给我回任何消息。 试图获取消息的代码是:

   ReceiveMessageRequest.Builder receiveMessageRequest = ReceiveMessageRequest.builder().queueUrl(sqsQueueUrl);
   messages = sqs.receiveMessage(receiveMessageRequest.build()).messages();
它具有正确的sqsqueurl。但我没有得到任何信息。
超时时,它会给我以下异常:

software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: sqs.region.amazonaws.com
    at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)   

Caused by: java.net.UnknownHostException: sqs.region.amazonaws.com

那么,除了SQSMessage之外,我们是否可以用其他方式跟踪/轮询jobId??或者我错过了任何东西???

用有效的sqsqueurl接收SQS消息的简单工作代码片段

ReceiveMessageRequest ReceiveMessageRequest=new ReceiveMessageRequest(sqsqsqueurl);
最终列表消息=sqs.receiveMessage(receiveMessageRequest).getMessages();
用于(最终消息:消息){
System.out.println(“消息”);
System.out.println(“MessageId:+message.getMessageId());
System.out.println(“ReceiptHandle:+message.getReceiptHandle());
System.out.println(“MD5OfBody:+message.getMD5OfBody());
System.out.println(“Body:+message.getBody());
for(最终条目:message.getAttributes().entrySet()){
System.out.println(“属性”);
System.out.println(“Name:+entry.getKey());
System.out.println(“Value:+entry.getValue());
}
}
System.out.println();

Hi,代码ReceiveMessageRequest ReceiveMessageRequest的第一行=new ReceiveMessageRequest(sqsqueurl);没有返回任何值,因此消息也不可用,尽管我有队列和作业ID,并且指定的sqsqueurl是正确的。@Preksha,您检查过Amazon管理控制台吗?在SQS部分->选择您的主题->详细信息->消息可用(可见)并检查消息是否存在。因为如果sqsqueurl是正确的,并且区域值是正确的,那么在管道通信中,显示可用(可见)消息为0的任何中断都不会发生变化。这些消息为0的原因可能是什么?超时时,它会给我以下异常:software.amazon.awssdk.core.exception.SdkClientException:无法执行HTTP请求:sqs..amazonaws.com位于software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)原因:java.net.UnknownHostException:sqs..amazonaws.com您可以将Amazon sqs消息保留期配置为1分钟到14天的值。默认值为4天。一旦达到邮件保留限制,您的邮件将自动删除。这就是为什么出现“0”消息的原因。您确定要使用.{region}.amazonaws.com/{account id}/{QueueName}吗?因为错误消息清楚地说明URL不可访问。您可以通过访问SQS部分->选择您的主题->详细信息->URL(您的sqsQueueUrl)来确定URL
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(sqsQueueUrl);
final List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (final Message message : messages) {
    System.out.println("Message");
    System.out.println("  MessageId:     " + message.getMessageId());
    System.out.println("  ReceiptHandle: " + message.getReceiptHandle());
    System.out.println("  MD5OfBody:     " + message.getMD5OfBody());
    System.out.println("  Body:          " + message.getBody());
    for (final Entry<String, String> entry : message.getAttributes().entrySet()) {
        System.out.println("Attribute");
        System.out.println("  Name:  " + entry.getKey());
        System.out.println("  Value: " + entry.getValue());
    }
}
System.out.println();