Руководство по активации пакетного задания с использованием Функций Azure
В этом руководстве описано, как активировать пакетное задание с помощью Функции Azure. В этой статье показано, как документы, добавленные в контейнер больших двоичных объектов службы хранилища Azure, применяют оптическое распознавание символов (OCR) с помощью пакетная служба Azure. Чтобы упростить обработку OCR, в этом примере настраивается функция Azure, которая запускает задание OCR пакетной службы при каждом добавлении файла в контейнер BLOB-объектов. Вы узнаете, как выполнять следующие задачи:
- Используйте портал Azure для создания пулов и заданий.
- Создание контейнеров BLOB-объектов и подписанного URL-адреса (SAS).
- Создайте функцию Azure, активированную большим двоичным объектом.
- Отправка входных файлов в хранилище.
- Мониторинг выполнения задач.
- Получение выходных файлов.
Предварительные требования
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
- учетная запись пакетной службы Azure и связанная учетная запись службы хранилища Azure. Дополнительные сведения о создании и связывании учетных записей см. в статье Создание учетной записи пакетной службы.
Вход в Azure
Войдите на портал Azure.
Создание пула пакетной службы и пакетного задания с помощью портал Azure
В этом разделе вы используете портал Azure для создания пула пакетной службы и пакетного задания, выполняющего задачи OCR.
Создание пула
Войдите в портал Azure, используя свои учетные данные Azure.
Создайте пул, выбрав Пулы в области навигации слева, а затем нажмите кнопку Добавить над формой поиска.
- Введите идентификатор пула. В этом примере пулу
ocr-pool
присваивают имя . - Выберите канонический в качестве издателя.
- Выберите 0001-com-ubuntu-server-jammy в качестве предложения.
- Выберите 22_04-lts в качестве номера SKU.
- Выберите
Standard_F2s_v2 - 2 vCPUs, 2 GB Memory
в качестве размера виртуальной машины в разделе Размер узла . - Задайте для параметра Режим в разделе Масштабирование значение Фиксированное и введите 3 в поле Целевые выделенные узлы.
- Задайте для параметра Начальная задачазначение Включить задачу запуска и введите команду
/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
. - Щелкните ОК.
- Введите идентификатор пула. В этом примере пулу
Создание задания
- Создайте задание в пуле, выбрав Задания в области навигации слева, а затем нажмите кнопку Добавить над формой поиска.
- Введите идентификатор задания. В этом примере используется
ocr-job
. - Выберите
ocr-pool
текущий пул или любое имя, выбранное для пула. - Щелкните ОК.
- Введите идентификатор задания. В этом примере используется
Создание контейнеров больших двоичных объектов
Здесь вы создадите контейнеры BLOB-объектов, в которые хранятся входные и выходные файлы для пакетного задания OCR. В этом примере входной контейнер называется input
. Сюда изначально загружаются для обработки все документы без распознавания текста. Выходной контейнер называется output
. Именно туда пакетное задание записывает документы, обработанные с помощью распознавания текста.
Найдите и выберите Учетные записи хранения в портал Azure.
Выберите учетную запись хранения, связанную с учетной записью пакетной службы.
Выберите Контейнеры в области навигации слева и создайте два контейнера BLOB-объектов (один для входных файлов, другой для выходных файлов), выполнив действия, описанные в разделе Создание контейнера BLOB-объектов.
Создайте подписанный URL-адрес для выходного контейнера, выбрав выходной контейнер, а затем на странице Маркеры общего доступа выберите Запись в раскрывающемся списке Разрешения . Никаких других разрешений не требуется.
Выберите Generate SAS token and URL (Создать маркер SAS и URL-адрес) и скопируйте URL-адрес SAS BLOB-объекта , чтобы использовать его позже для функции.
Создание функции Azure
В этом разделе вы создадите функцию Azure, которая активирует пакетное задание OCR при отправке файла во входной контейнер.
Для создания функции выполните действия, описанные в статье Создание функции, активируемой хранилищем BLOB-объектов Azure.
- Для стека среды выполнения выберите .NET. В этом примере функции используется C#, чтобы воспользоваться преимуществами пакетного пакета SDK для .NET.
- На странице Хранилище используйте ту же учетную запись хранения, которую вы связали с учетной записью пакетной службы.
- Выберите Просмотр и создание > создать.
Следующий снимок экрана: страница "Создание приложения-функции " на вкладке "Основные" с примерами сведений.
В функции выберите Функции в области навигации слева и щелкните Создать.
В области Создание функции выберите Хранилище BLOB-объектов Azure триггер.
Введите имя функции в поле Создать функцию. В этом примере имя — OcrTrigger. Введите путь как
input/{name}
, где введите имя контейнера BLOB-объектов.Нажмите кнопку создания.
После создания функции, запускаемой BLOB-объектами, выберите Код и тестирование. Используйте файлы
run.csx
иfunction.proj
, размещенные в GitHub, в функции. По умолчаниюfunction.proj
не существует, поэтому нажмите кнопку Отправить, чтобы отправить этот файл в рабочую область разработки.-
run.csx
запускается, когда новый большой двоичный объект добавляется в ваш входной контейнер больших двоичных объектов. -
function.proj
перечисляет внешние библиотеки в коде вашей функции, например, пакет SDK пакетной службы для .NET.
-
Измените значения заполнителей переменных в функции
Run()
файлаrun.csx
, чтобы они соответствовали вашим учетным данным для пакетной службы и хранилища. Учетные данные пакетной службы и учетной записи хранения можно найти в портал Azure в разделе Ключи учетной записи пакетной службы и хранения.
Активация функции и получение результатов
Передайте любой или все отсканированные файлы из каталога input_files
на сайте GitHub в свой входной контейнер.
Функцию можно протестировать из портал Azure на странице Код и тестирование функции.
- Выберите Тест и запуск на странице Код и тестирование .
- Введите путь к контейнеру входных данных в поле Текст на вкладке Входные данные .
- Выберите Запуск.
Через несколько секунд файл с примененным распознаванием текста добавляется в выходной контейнер. Сведения о журнале выводятся в нижнее окно. После этого файл будет отображаться в Обозревателе службы хранилища, и его можно будет извлечь оттуда.
Кроме того, сведения о журнале можно найти на странице Мониторинг :
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-файлов.
Очистка ресурсов
Плата за пул взимается во время работы узлов, даже если задания не запланированы. Если вы больше не будете использовать пул, удалите его, выполнив следующие действия.
- На странице Пулы учетной записи пакетной службы выберите дополнительные параметры в пуле.
- Выберите команду Удалить.
При удалении пула удаляются все выходные данные задачи на узлах. Но выходные файлы сохраняются в учетной записи хранения. Если учетная запись пакетной службы и учетная запись хранения вам больше не нужны, можно их удалить.
Дальнейшие действия
Дополнительные примеры использования программного интерфейса .NET для планирования и обработки рабочих нагрузок пакетной службы см. в примерах на сайте GitHub.