Создание и запуск пакетного задания с помощью клиентской библиотеки .NET

Завершено

Теперь у вас есть приложение .NET Core, которое может подключаться к пакетной службе Azure и создало пул с тремя узлами. В оставшихся упражнениях этого модуля мы реализуем следующий список оставшихся функций:

  • Отправка видеофайлов и их доступность для пакетной службы Azure
  • Создайте задание для выполнения на этих узлах
  • Добавить задачу для преобразования видео в рамках задания.
  • Запустите задание, чтобы преобразовать отправленные видео
  • Мониторинг состояния задач преобразования
  • Очистите все ресурсы пакетной службы, чтобы избежать дополнительных расходов на использование (с возможностью удаления пула ресурсов, если обработка в течение дня завершена)

Пакетное управление

Используя API клиента пакетной службы, вы будете использовать следующие методы для создания, удаления и мониторинга компонентов приложения:


  • batchClient.PoolOperations.CreatePool: вы добавили это в приложение в предыдущем упражнении.
  • batchClient.PoolOperations.DeletePoolAsync

  • batchClient.JobOperations.CreateJob
  • batchClient.JobOperations.AddTaskAsync
  • batchClient.JobOperations.DeleteJobAsync

  • batchClient.Utilities.CreateTaskStateMonitor

Управление файлами

Вы будете использовать учетную запись хранения, созданную ранее, для создания контейнеров для хранения входных и выходных файлов в хранилище BLOB-объектов. Из клиентской библиотеки BLOB-объектов службы хранилища Azure вы будете использовать следующие классы и методы:


  • CloudStorageAccount: получает доступ к созданной учетной записи хранения.
  • CloudStorageAccount.Parse(storageConnectionString): подключается к учетной записи хранения
  • storageAccount.CreateCloudBlobClient: создает CloudBlobClient

  • CloudBlobClient: создает контейнер
  • blobClient.GetContainerReference(containerName): включает создание контейнеров

  • CloudBlobContainer: создает хранилище BLOB-объектов.
  • контейнер . GetBlockBlobReference(blobName): создает CloudBlockBlob
  • контейнер . CreateIfNotExistsAsync: создает контейнер, если он не существует
  • контейнер . DeleteIfExistsAsync: удаляет контейнер, если он существует.

  • CloudBlockBlob: добавляет или удаляет файлы в хранилище BLOB-объектов.
  • blobData.UploadFromFileAsync(filePath): отправляет указанный локальный файл в службу хранилища Azure.
  • blobData.GetSharedAccessSignature(sasConstraints): получает URI с общим доступом для доступа к загруженному видео

  • ResourceFile.FromUrl(blobSasUri, blobName): предоставляет путь к видео в Azure Storage.

Для передачи файлов в службу хранилища Azure необходимо выполнить ряд действий. Консольному приложению также необходимо включить пакетные задачи для записи их выходных данных в хранилище объектов.

  1. Добавьте пакет NuGet Microsoft.Azure.Storage.Blob
  2. С помощью учетных данных службы хранилища Azure подключитесь к учетной записи хранения.
  3. Создание объекта BLOB в учетной записи хранения
  4. Создайте два контейнера для входных и выходных файлов с помощью клиента объектов BLOB
  5. Загрузка локальных видеофайлов MP4, используя контейнер ввода, и хранение списка файлов для пакетного задания.
  6. После преобразования видео можно удалить входной контейнер, удалив все отправленные видео из Azure.