Используйте клиентскую библиотеку .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.

Типичный шаблон использования

Используя предыдущие библиотеки, типичный подход к настройке пакетного процесса:

  1. Создание учетной записи пакетной службы (API управления пакетной службой).
  2. Создание учетной записи хранения (API хранилища).
  3. Создайте клиент Blob для управления обработкой файлов (API хранилища).
  4. Загрузите файлы для обработки (API хранилища).
  5. Создайте пул вычислительных узлов (Batch API).
  6. Создайте задание для выполнения на этих узлах (API пакетной службы).
  7. Добавьте задачу в задание на выполнение с использованием пакетного API ().
  8. Отслеживайте выполнение задачи (пакетный API).
  9. Скачивание обработанных файлов по завершении (API хранилища).
  10. Удалите контейнер для хранения входных данных, удалите пул и удалите задание (Batch API & Storage API).

Пулы для пакетной обработки в Azure

Мощная функция пакетной службы Azure — это управление вычислительными ресурсами. Определяя пулы ресурсов, сервис пакетной обработки Azure предоставляет гибкость в настройке определенного количества узлов. Это хороший вариант, если размер обработки хорошо определен, и есть требование иметь известные фиксированные затраты. Другой вариант — разрешить пулу автоматически увеличивать или уменьшать масштаб на основе определенной формулы. Этот подход может учитывать колебания спроса и позволит приложению масштабироваться в соответствии с этим спросом. Этот подход также обладает дополнительным преимуществом поддержания затрат как можно ниже.

При создании пулов пакетной службы Azure укажите следующие атрибуты:

  • Целевое число узлов (ограничение по умолчанию — 100)
  • Операционная система узла и версия (доступны различные образы Windows и Linux)
  • Тип узла, выделенного или низкоприоритетного (выделенные узлы являются более дорогими, но не будут упрещены; узлы с низким приоритетом дешевле, так как они используют излишную емкость в регионе, но могут приостановить свои задачи, если ресурсы требуются в другом месте).
  • Производительность узла в качестве размера ЦП, памяти и хранилища
  • Политика автоматического масштабирования (масштабирование управляется указанной формулой; например, на основе процента использования ЦП)
  • Политика планирования задач (управление максимальным количеством задач, которые узел может выполняться параллельно, и выберите способ распределения задач между узлами).
  • Задачи запуска, выполняемые при загрузке узлов (используется для настройки узла для выполнения задач, таких как установка необходимых приложений)
  • Конфигурация сети (параметры подсети и виртуальной сети)
  • Пакеты приложений (позволяют приложениям легко развертываться на каждом узле в пуле)