Criar e executar um trabalho do Lote usando a biblioteca de clientes .NET

Concluído

Agora você tem um aplicativo do .NET Core que pode se conectar ao serviço de Lote do Azure e criou um pool com três nós. Nos exercícios restantes desse módulo, implementaremos a lista de recursos restantes a seguir:

  • Fazer upload de arquivos de vídeo e disponibilizá-los ao serviço de Lote do Azure
  • Criar um trabalho para executar nesses nós
  • Adicionar uma tarefa para converter o vídeo para o trabalho
  • Executar o trabalho para converter os vídeos carregados
  • Monitorar o estado das tarefas de conversão
  • Limpar os recursos do serviço de Lote para evitar encargos de uso adicionais (com a opção de excluir o pool se o processamento para o dia foi concluído)

Gerenciamento do Lote

Usando a API de cliente do Lote, você usará os métodos a seguir para criar, excluir e monitorar os componentes do aplicativo:


  • batchClient.PoolOperations.CreatePool: você adicionou isto ao aplicativo no exercício anterior
  • batchClient.PoolOperations.DeletePoolAsync

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

  • batchClient.Utilities.CreateTaskStateMonitor

Gerenciamento de Arquivos

Você usará a conta de armazenamento que você criou anteriormente para criar contêineres para armazenar os arquivos de entrada e de saída no armazenamento de blobs. Da biblioteca de clientes do Azure Storage Blob, você usará as classes e métodos a seguir:


  • CloudStorageAccount: obtém acesso à Conta de Armazenamento criada
  • CloudStorageAccount.Parse(storageConnectionString): conecta-se à conta do Armazenamento
  • storageAccount.CreateCloudBlobClient: cria um CloudBlobClient

  • CloudBlobClient: cria um contêiner
  • blobClient.GetContainerReference(containerName): permite a criação de contêineres

  • CloudBlobContainer: cria o armazenamento de blobs
  • container.GetBlockBlobReference(blobName): cria um CloudBlockBlob
  • container.CreateIfNotExistsAsync: cria o contêiner se ele não existe
  • container.DeleteIfExistsAsync: exclui o contêiner se ele existe

  • CloudBlockBlob: adiciona ou remove arquivos ao armazenamento de blobs
  • blobData.UploadFromFileAsync(filePath): faz o upload do arquivo local especificado no Armazenamento do Azure
  • blobData.GetSharedAccessSignature(sasConstraints): obtém um URI de assinatura de acesso compartilhado a ser usado para acessar o vídeo carregado

  • ResourceFile.FromUrl(blobSasUri, blobName): fornece um caminho de arquivo para o vídeo no Armazenamento do Azure

Uma série de etapas precisam ser tomadas para que um aplicativo seja habilitado para transferir arquivos ao Armazenamento do Azure. O aplicativo de console também precisará habilitar as tarefas do Lote para gravar sua saída para o Armazenamento de Blobs.

  1. Adicionar o pacote NuGet Microsoft.Azure.Storage.Blob
  2. Usando as credenciais do Armazenamento do Azure, conectar-se à conta de Armazenamento
  3. Criar um blob na conta de armazenamento
  4. Criar dois contêineres para os arquivos de entrada e saída usando o cliente de blob
  5. Faça o upload de arquivos de vídeo MP4 locais usando o contêiner de entrada e armazenar uma lista de arquivos para o trabalho do Lote
  6. Depois que os vídeos forem convertidos, o contêiner de entrada pode ser excluído, removendo todos os vídeos carregados do Azure