Создание и запуск пакетного задания с помощью клиентской библиотеки .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 необходимо выполнить ряд действий. Консольному приложению также необходимо включить пакетные задачи для записи их выходных данных в хранилище объектов.
- Добавьте пакет NuGet
Microsoft.Azure.Storage.Blob
- С помощью учетных данных службы хранилища Azure подключитесь к учетной записи хранения.
- Создание объекта BLOB в учетной записи хранения
- Создайте два контейнера для входных и выходных файлов с помощью клиента объектов BLOB
- Загрузка локальных видеофайлов MP4, используя контейнер ввода, и хранение списка файлов для пакетного задания.
- После преобразования видео можно удалить входной контейнер, удалив все отправленные видео из Azure.