Creación y ejecución de un trabajo de Batch mediante la biblioteca cliente de .NET

Completado

Ahora tiene una aplicación .NET Core que se puede conectar al servicio Azure Batch y ha creado un grupo con tres nodos. En los ejercicios restantes de este módulo, se implementará la siguiente lista de características restantes:

  • Cargar archivos de vídeo y ponerlos a disposición del servicio Azure Batch
  • Crear un trabajo para ejecutarlo en esos nodos
  • Agregar una tarea para convertir el vídeo en el trabajo
  • Ejecutar el trabajo para convertir los vídeos cargados
  • Supervisar el estado de las tareas de conversión
  • Limpiar los recursos del servicio Batch para evitar cargos de uso adicionales (con la opción de eliminar el grupo si ha finalizado el procesamiento del día)

Administración de Batch

Mediante la API cliente de Batch, se usarán los métodos siguientes para crear, eliminar y supervisar los componentes de la aplicación:


  • batchClient.PoolOperations.CreatePool: esto se ha agregado a la aplicación en el ejercicio anterior.
  • batchClient.PoolOperations.DeletePoolAsync

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

  • batchClient.Utilities.CreateTaskStateMonitor

Administración de archivos

Usará la cuenta de almacenamiento creada anteriormente para la creación de contenedores, en los que almacenará los archivos de entrada y salida en el almacenamiento de blobs. Desde la biblioteca cliente de Azure Storage Blob, usará las claves y los métodos siguientes:


  • CloudStorageAccount: obtiene acceso a la cuenta de almacenamiento creada
  • CloudStorageAccount.Parse(storageConnectionString): se conecta a la cuenta de Storage.
  • storageAccount.CreateCloudBlobClient: crea un CloudBlobClient

  • CloudBlobClient: crea un contenedor
  • blobClient.GetContainerReference(nombreDeContenedor): habilita la creación de contenedores.

  • CloudBlobContainer: crea almacenamiento de blobs
  • container.GetBlockBlobReference(nombreDelBlob): crea una instancia de CloudBlockBlob.
  • container.CreateIfNotExistsAsync: crea el contenedor si no existe.
  • container.DeleteIfExistsAsync: elimina el contenedor si existe.

  • CloudBlockBlob: agrega o elimina archivos en el almacenamiento de blobs
  • blobData.UploadFromFileAsync(filePath): carga el archivo local especificado en Azure Storage
  • blobData.GetSharedAccessSignature(sasConstraints): obtiene una URI de firma de acceso compartida que se usará para acceder al vídeo cargado

  • ResourceFile.FromUrl(blobSasUri, nombreDelBlob): proporciona una ruta de archivo al vídeo en Azure Storage.

Debe seguir una serie de pasos para habilitar una aplicación que transfiera archivos a Azure Storage. También será necesario que la aplicación de consola permita a las tareas de Batch escribir sus resultados en el almacenamiento de blobs.

  1. Agregue el paquete NuGet Microsoft.Azure.Storage.Blob.
  2. Con las credenciales de Azure Storage, conéctese a la cuenta de Storage
  3. Cree un blob en la cuenta de almacenamiento.
  4. Cree dos contenedores para los archivos de entrada y salida mediante el cliente de blob.
  5. Cargue archivos de vídeo MP4 locales mediante el contenedor de entrada y almacene una lista de archivos para el trabajo de Batch
  6. Una vez convertidos los vídeos, se puede eliminar el contenedor de entrada, eliminando de Azure todos los vídeos cargados