0

您好我正在开发一个使用 AWS Textract 解析文档的 Java 应用程序。对于多页解析,我使用 textract 客户端上可用的 startDocumentAnalysis 方法。然后,该客户端以一个 jobId 进行响应,并且 jobId 连同它的完成状态一起被放置在 sqs 队列中。我以前有一个个人帐户并设法让所有这些都正常工作,因此一个进程从队列中读取消息,然后使用以下方法获取解析结果:

GetDocumentAnalysisRequest documentAnalysisRequest = GetDocumentAnalysisRequest.builder().jobId(jobId)
                    .maxResults(maxResults).nextToken(paginationToken).build();

现在我必须在我公司的 AWS 帐户上执行此操作,并且我已经追溯了我的步骤并且一切正常,除了现在当我从队列中提取消息时,所有消息都以 [] 即空数组返回。我使用这段代码:

messages = sqsClient.receiveMessage(receiveMessageRequest).messages();

所以我知道错误不能出现在java代码中,因为以前它有效。我也知道我可以上传到新存储桶并进行单页解析,所以我知道我的凭据是正确的。我在 sns 上创建了一个主题并将我的 sqs 注册到它,但是这里的某个地方必须存在权限或其他配置错误。也许 SNS 和 SQS 没有互相交谈?

想知道是否有人有任何可以帮助我的见解。谢谢

4

1 回答 1

1

我找到了答案。这与 SNS 主题的命名约定有关。在文档中解释:

https://docs.aws.amazon.com/textract/latest/dg/api-async-roles.html

第 3 步 - 创建一个 Amazon SNS 主题。在主题名称前加上 AmazonTexttract。请注意主题 Amazon 资源名称 (ARN)。确保主题与您使用的 AWS 终端节点位于同一区域。

于 2021-02-09T16:38:51.103 回答