Лямбда и Textract: start_document_text_detection неизвестный параметр «OutputConfig»

#python #python-3.x #amazon-web-services #aws-lambda #amazon-textract

#python #python-3.x #amazon-веб-сервисы #aws-lambda #amazon-textract

Вопрос:

Я пытаюсь извлечь текст из PDF с помощью функции Lambda и Textract.

Мой вопрос: как я могу вызвать «start_document_text_detection», чтобы Textract автоматически отправлял свой ответ на S3?

Я получаю сообщение об ошибке:

[ОШИБКА] Ошибка проверки параметра: ошибка проверки параметра: неизвестный параметр во входных данных: «OutputConfig», должен быть одним из: DocumentLocation, ClientRequestToken, JobTag, NotificationChannel

Мой код:

     textract = boto3.client('textract')
    textract.start_document_text_detection(
      DocumentLocation={
          'S3Object': {
              'Bucket': origin_bucket,
              'Name': key
          }
      },
      JobTag=key   '_Job',
      OutputConfig={
        "S3Bucket": destination_bucket,
        "S3Prefix": key
      })
  

Документация Boto3 показывает, что я могу передать параметр с именем «OutputConfig»:
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/textract.html#Textract .Клиент.start_document_text_detection

 response = client.start_document_text_detection(
    DocumentLocation={
        'S3Object': {
            'Bucket': 'string',
            'Name': 'string',
            'Version': 'string'
        }
    },
    ClientRequestToken='string',
    JobTag='string',
    NotificationChannel={
        'SNSTopicArn': 'string',
        'RoleArn': 'string'
    },
    OutputConfig={
        'S3Bucket': 'string',
        'S3Prefix': 'string'
    }
)
  

В официальной документации AWS Textract также говорится, что это допустимый параметр:

Доступен еще один необязательный параметр OutputConfig, который позволяет вам настроить, где будут размещены ваши выходные данные. По умолчанию Amazon Textract будет хранить результаты внутри, и доступ к ним возможен только с помощью операций Get API. При включенном OutputConfig вы можете задать имя корзины, в которую будут отправляться выходные данные, и его префикс файла, куда вы можете загрузить свои результаты в формате JSON. Это позволяет использовать созданный пользователем блок для хранения результатов.

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

Ответ №1:

Похоже, вы используете более старую версию boto3. Обновление до последней версии (> 1.16.36) должно решить вашу проблему.

Комментарии:

1. Я использую boto3 от AWS (я имею в виду, что я не устанавливаю какую-либо версию boto3, поскольку она доступна в лямбда-среде «environment»). Я попробую вашу идею и посмотрю, работает ли она.