Amazon Textract Начать анализ документа - все сообщения из SQS пусты,

Привет, я разрабатываю приложение на Java, которое анализирует документы с помощью AWS Textract. Для многостраничного синтаксического анализа я использую метод startDocumentAnalysis, доступный в клиенте textract. Затем этот клиент отвечает с помощью jobId, и jobId помещается в очередь sqs вместе со статусом завершения. Раньше у меня была личная учетная запись, и мне удалось заставить ее работать, поэтому процесс считывает сообщения из очереди, а затем получает результат синтаксического анализа, используя:

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

Теперь мне нужно сделать это в учетной записи AWS моей компании, и я повторил свои шаги, и все работает, за исключением того, что теперь, когда я иду забрать сообщения из очереди, все сообщения возвращаются как [], то есть пустой массив. Я использую этот код:

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

Итак, я знаю, что ошибка не может быть в java-коде, потому что раньше она работала. Я также знаю, что могу загружать в новую корзину, а также выполнять парсинг отдельных страниц, поэтому я знаю, что мои учетные данные верны. Я создал тему по sns и зарегистрировал в ней свои sqs, но где-то здесь должно быть разрешение или другая ошибка конфигурации. Может быть, соцсети и SQS не разговаривают друг с другом?

Интересно, есть ли у кого-нибудь идеи, которые могли бы мне помочь. Спасибо


person Amir    schedule 09.02.2021    source источник
comment
Есть ли у вашей новой роли IAM, которую вы используете, для использования SQS? Вы правы - если ваша Java работала с другой учетной записью, ваша логика Java не является проблемой.   -  person smac2020    schedule 09.02.2021
comment
Я начал с пользователя I AM с этими разрешениями: AmazonTextractFullAccess AmazonS3ReadOnlyAccess AmazonSNSFullAccess AmazonSQSFullAccess, но не смог загрузить в корзину, поэтому теперь я пытаюсь использовать пользователя IAM с ролью администратора, но теперь я собираюсь вернуться к первой роли и найти способ добавить S3 для чтения и записи, если есть такая штука.   -  person Amir    schedule 09.02.2021
comment
Хорошо, я протестировал с первой учетной записью, и мне не удалось загрузить в корзину, как раньше, поэтому я добавил пользователя в группу администраторов, а также в группу выше, и я вернулся к сценарию, в котором все сообщения пусты. Похоже, что sns и sqs не разговаривают друг с другом.   -  person Amir    schedule 09.02.2021
comment
Догадаться. Все было в этом пункте из документации. Добавьте имя с помощью AmazonTextraxt! Создайте тему Amazon SNS. Добавьте название темы с помощью AmazonTextract. Обратите внимание на тему Amazon Resource Name (ARN). Убедитесь, что тема находится в том же регионе, что и конечная точка AWS, которую вы используете.   -  person Amir    schedule 09.02.2021


Ответы (1)


Я нашел ответ. Все дело в соглашении об именах в теме SNS. Объясняется в документации:

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

Шаг 3 - Создайте тему Amazon SNS. Добавьте название темы с помощью AmazonTextract. Обратите внимание на тему Amazon Resource Name (ARN). Убедитесь, что тема находится в том же регионе, что и конечная точка AWS, которую вы используете.

person Amir    schedule 09.02.2021