Используйте клиентскую библиотеку .NET для доступа к вашей учетной записи Batch.
В предыдущем уроке вы создали учетные записи пакетной службы Azure и службы хранилища Azure. Затем вы загрузили ffmpeg в качестве приложения, чтобы пакетные задания могли использовать его для своих задач. Давайте еще раз рассмотрим наш сценарий.
Вы хотите автоматизировать процесс преобразования видеофайлов MP4 в анимированные GIF-файлы. Для этого вы создадите приложение, которое может отправлять видеофайлы для преобразования, запускать преобразование параллельно во всех отправленных файлах, отслеживать ход выполнения и, наконец, скачать результаты.
В этом уроке мы рассмотрим клиентские библиотеки пакетной службы Azure, которые можно использовать для доступа к учетным записям пакетной службы и хранения, созданным в предыдущем упражнении.
Клиентские библиотеки Azure
Существует два пакета NuGet, которые необходимо импортировать в приложение. Первым является клиентская библиотека пакетной службы Azure, Microsoft.Azure.Batch
. Эта библиотека будет использоваться для создания и удаления пулов пакетной службы Azure, создания и удаления заданий рабочей нагрузки, создания и удаления задач, а также мониторинга выполнения задач.
Следующая библиотека, которую мы будем использовать в решении, — это клиентская библиотека службы хранилища Azure, Microsoft.Azure.Storage.Blob
, которая позволяет подключаться к файлам и управлять ими в учетной записи хранения Azure. Эта библиотека будет использоваться для управления файлами в контейнере хранилища Blob. Приложение сканирует папку на наличие всех загруженных видео и предоставляет задаче доступ для сохранения конвертированных видео задачи.
Библиотека управления пакетной службой Azure, Microsoft.Azure.Management.Batch
, является третьей библиотекой, которую не требуется для приложения, так как вы вручную создали учетные записи пакетной службы и хранения.
Мы добавим пакеты NuGet, необходимые в следующем уроке, с помощью команды dotnet add package
.
Типичный шаблон использования
Используя предыдущие библиотеки, типичный подход к настройке пакетного процесса:
- Создание учетной записи пакетной службы (API управления пакетной службой).
- Создание учетной записи хранения (API хранилища).
- Создайте клиент Blob для управления обработкой файлов (API хранилища).
- Загрузите файлы для обработки (API хранилища).
- Создайте пул вычислительных узлов (Batch API).
- Создайте задание для выполнения на этих узлах (API пакетной службы).
- Добавьте задачу в задание на выполнение с использованием пакетного API ().
- Отслеживайте выполнение задачи (пакетный API).
- Скачивание обработанных файлов по завершении (API хранилища).
- Удалите контейнер для хранения входных данных, удалите пул и удалите задание (Batch API & Storage API).
Пулы для пакетной обработки в Azure
Мощная функция пакетной службы Azure — это управление вычислительными ресурсами. Определяя пулы ресурсов, сервис пакетной обработки Azure предоставляет гибкость в настройке определенного количества узлов. Это хороший вариант, если размер обработки хорошо определен, и есть требование иметь известные фиксированные затраты. Другой вариант — разрешить пулу автоматически увеличивать или уменьшать масштаб на основе определенной формулы. Этот подход может учитывать колебания спроса и позволит приложению масштабироваться в соответствии с этим спросом. Этот подход также обладает дополнительным преимуществом поддержания затрат как можно ниже.
При создании пулов пакетной службы Azure укажите следующие атрибуты:
- Целевое число узлов (ограничение по умолчанию — 100)
- Операционная система узла и версия (доступны различные образы Windows и Linux)
- Тип узла, выделенного или низкоприоритетного (выделенные узлы являются более дорогими, но не будут упрещены; узлы с низким приоритетом дешевле, так как они используют излишную емкость в регионе, но могут приостановить свои задачи, если ресурсы требуются в другом месте).
- Производительность узла в качестве размера ЦП, памяти и хранилища
- Политика автоматического масштабирования (масштабирование управляется указанной формулой; например, на основе процента использования ЦП)
- Политика планирования задач (управление максимальным количеством задач, которые узел может выполняться параллельно, и выберите способ распределения задач между узлами).
- Задачи запуска, выполняемые при загрузке узлов (используется для настройки узла для выполнения задач, таких как установка необходимых приложений)
- Конфигурация сети (параметры подсети и виртуальной сети)
- Пакеты приложений (позволяют приложениям легко развертываться на каждом узле в пуле)