Руководство по активации пакетного задания с использованием Функций Azure

В этом руководстве описано, как активировать пакетное задание с помощью Функции Azure. В этой статье показано, как документы, добавленные в контейнер больших двоичных объектов службы хранилища Azure, применяют оптическое распознавание символов (OCR) с помощью пакетная служба Azure. Чтобы упростить обработку OCR, в этом примере настраивается функция Azure, которая запускает задание OCR пакетной службы при каждом добавлении файла в контейнер BLOB-объектов. Вы узнаете, как выполнять следующие задачи:

  • Используйте портал Azure для создания пулов и заданий.
  • Создание контейнеров BLOB-объектов и подписанного URL-адреса (SAS).
  • Создайте функцию Azure, активированную большим двоичным объектом.
  • Отправка входных файлов в хранилище.
  • Мониторинг выполнения задач.
  • Получение выходных файлов.

Предварительные требования

Вход в Azure

Войдите на портал Azure.

Создание пула пакетной службы и пакетного задания с помощью портал Azure

В этом разделе вы используете портал Azure для создания пула пакетной службы и пакетного задания, выполняющего задачи OCR.

Создание пула

  1. Войдите в портал Azure, используя свои учетные данные Azure.

  2. Создайте пул, выбрав Пулы в области навигации слева, а затем нажмите кнопку Добавить над формой поиска.

    Снимок экрана: страница

    1. Введите идентификатор пула. В этом примере пулу ocr-poolприсваивают имя .
    2. Выберите канонический в качестве издателя.
    3. Выберите 0001-com-ubuntu-server-jammy в качестве предложения.
    4. Выберите 22_04-lts в качестве номера SKU.
    5. Выберите Standard_F2s_v2 - 2 vCPUs, 2 GB Memory в качестве размера виртуальной машины в разделе Размер узла .
    6. Задайте для параметра Режим в разделе Масштабирование значение Фиксированное и введите 3 в поле Целевые выделенные узлы.
    7. Задайте для параметра Начальная задачазначение Включить задачу запуска и введите команду /bin/bash -c "sudo update-locale LC_ALL=C.UTF-8 LANG=C.UTF-8; sudo apt-get update; sudo apt-get -y install ocrmypdf" в командной строке. Не забудьте задать для параметра Уровень повышения прававтоматическийпользователь пула, Администратор, что позволяет запускать задачи для включения команд с sudo.
    8. Щелкните ОК.

Создание задания

  1. Создайте задание в пуле, выбрав Задания в области навигации слева, а затем нажмите кнопку Добавить над формой поиска.
    1. Введите идентификатор задания. В этом примере используется ocr-job.
    2. Выберите ocr-poolтекущий пул или любое имя, выбранное для пула.
    3. Щелкните ОК.

Создание контейнеров больших двоичных объектов

Здесь вы создадите контейнеры BLOB-объектов, в которые хранятся входные и выходные файлы для пакетного задания OCR. В этом примере входной контейнер называется input. Сюда изначально загружаются для обработки все документы без распознавания текста. Выходной контейнер называется output. Именно туда пакетное задание записывает документы, обработанные с помощью распознавания текста.

  1. Найдите и выберите Учетные записи хранения в портал Azure.

  2. Выберите учетную запись хранения, связанную с учетной записью пакетной службы.

  3. Выберите Контейнеры в области навигации слева и создайте два контейнера BLOB-объектов (один для входных файлов, другой для выходных файлов), выполнив действия, описанные в разделе Создание контейнера BLOB-объектов.

  4. Создайте подписанный URL-адрес для выходного контейнера, выбрав выходной контейнер, а затем на странице Маркеры общего доступа выберите Запись в раскрывающемся списке Разрешения . Никаких других разрешений не требуется.

  5. Выберите Generate SAS token and URL (Создать маркер SAS и URL-адрес) и скопируйте URL-адрес SAS BLOB-объекта , чтобы использовать его позже для функции.

    Снимок экрана: страница

Создание функции Azure

В этом разделе вы создадите функцию Azure, которая активирует пакетное задание OCR при отправке файла во входной контейнер.

  1. Для создания функции выполните действия, описанные в статье Создание функции, активируемой хранилищем BLOB-объектов Azure.

    1. Для стека среды выполнения выберите .NET. В этом примере функции используется C#, чтобы воспользоваться преимуществами пакетного пакета SDK для .NET.
    2. На странице Хранилище используйте ту же учетную запись хранения, которую вы связали с учетной записью пакетной службы.
    3. Выберите Просмотр и создание > создать.

    Следующий снимок экрана: страница "Создание приложения-функции " на вкладке "Основные" с примерами сведений.

    Снимок экрана: страница

  2. В функции выберите Функции в области навигации слева и щелкните Создать.

  3. В области Создание функции выберите Хранилище BLOB-объектов Azure триггер.

  4. Введите имя функции в поле Создать функцию. В этом примере имя — OcrTrigger. Введите путь как input/{name}, где введите имя контейнера BLOB-объектов.

  5. Нажмите кнопку создания.

    Снимок экрана: панель

  6. После создания функции, запускаемой BLOB-объектами, выберите Код и тестирование. Используйте файлы run.csx и function.proj, размещенные в GitHub, в функции. По умолчанию function.proj не существует, поэтому нажмите кнопку Отправить, чтобы отправить этот файл в рабочую область разработки.

    • run.csx запускается, когда новый большой двоичный объект добавляется в ваш входной контейнер больших двоичных объектов.
    • function.proj перечисляет внешние библиотеки в коде вашей функции, например, пакет SDK пакетной службы для .NET.
  7. Измените значения заполнителей переменных в функции Run() файла run.csx, чтобы они соответствовали вашим учетным данным для пакетной службы и хранилища. Учетные данные пакетной службы и учетной записи хранения можно найти в портал Azure в разделе Ключи учетной записи пакетной службы и хранения.

Активация функции и получение результатов

Передайте любой или все отсканированные файлы из каталога input_files на сайте GitHub в свой входной контейнер.

Функцию можно протестировать из портал Azure на странице Код и тестирование функции.

  1. Выберите Тест и запуск на странице Код и тестирование .
  2. Введите путь к контейнеру входных данных в поле Текст на вкладке Входные данные .
  3. Выберите Запуск.

Через несколько секунд файл с примененным распознаванием текста добавляется в выходной контейнер. Сведения о журнале выводятся в нижнее окно. После этого файл будет отображаться в Обозревателе службы хранилища, и его можно будет извлечь оттуда.

Кроме того, сведения о журнале можно найти на странице Мониторинг :

2019-05-29T19:45:25.846 [Information] Creating job...
2019-05-29T19:45:25.847 [Information] Accessing input container <inputContainer>...
2019-05-29T19:45:25.847 [Information] Adding <fileName> as a resource file...
2019-05-29T19:45:25.848 [Information] Name of output text file: <outputTxtFile>
2019-05-29T19:45:25.848 [Information] Name of output PDF file: <outputPdfFile>
2019-05-29T19:45:26.200 [Information] Adding OCR task <taskID> for <fileName> <size of fileName>...

Чтобы скачать выходные файлы на локальный компьютер, перейдите к контейнеру выходных данных в учетной записи хранения. Выберите дополнительные параметры для нужного файла и нажмите кнопку Скачать.

Совет

Скачанные файлы доступны для поиска в программе для чтения PDF-файлов.

Очистка ресурсов

Плата за пул взимается во время работы узлов, даже если задания не запланированы. Если вы больше не будете использовать пул, удалите его, выполнив следующие действия.

  1. На странице Пулы учетной записи пакетной службы выберите дополнительные параметры в пуле.
  2. Выберите команду Удалить.

При удалении пула удаляются все выходные данные задачи на узлах. Но выходные файлы сохраняются в учетной записи хранения. Если учетная запись пакетной службы и учетная запись хранения вам больше не нужны, можно их удалить.

Дальнейшие действия

Дополнительные примеры использования программного интерфейса .NET для планирования и обработки рабочих нагрузок пакетной службы см. в примерах на сайте GitHub.