Criar e executar um trabalho do Batch com a biblioteca de cliente .NET

Concluído

Agora tem uma aplicação .NET Core que pode ligar ao serviço Azure Batch e criou um conjunto com três nós. Nos restantes exercícios deste módulo, implementaremos a seguinte lista de funcionalidades restantes:

  • Carregar ficheiros de vídeo e disponibilizá-los no serviço Azure Batch
  • Criar um trabalho para executar nesses nós
  • Adicionar uma tarefa para converter o vídeo no trabalho
  • Executar o trabalho para converter os vídeos carregados
  • Monitorizar o estado das tarefas de conversão
  • Limpar os recursos do serviço Batch para evitar custos de utilização adicionais (com a opção de eliminar o conjunto se tiver terminado o processamento)

Gestão do Batch

Usando a API do cliente em lote, você usará os seguintes métodos para criar, excluir e monitorar os componentes do seu aplicativo:


  • batchClient.PoolOperations.CreatePool: adicionou isto à aplicação no exercício anterior
  • batchClient.PoolOperations.DeletePoolAsync

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

  • batchClient.Utilities.CreateTaskStateMonitor

Gestão de Ficheiros

Poderá utilizar a conta de armazenamento criada anteriormente para criar contentores que armazenem os ficheiros de entrada e saída no armazenamento de blobs. Na biblioteca de cliente do Azure Storage Blob, poderá utilizar as seguintes classes e métodos:


  • CloudStorageAccount: obtém acesso à conta de armazenamento criada
  • CloudStorageAccount.Parse(storageConnectionString): liga à conta de armazenamento
  • storageAccount.CreateCloudBlobClient: cria um CloudBlobClient

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

  • CloudBlobContainer: cria armazenamento de blob
  • container.GetBlockBlobReference(blobName): cria um CloudBlockBlob
  • container.CreateIfNotExistsAsync: cria o contentor, se não existir
  • container.DeleteIfExistsAsync: elimina o contentor, se existir

  • CloudBlockBlob: adiciona ou remove arquivos para o armazenamento de blob
  • blobData.UploadFromFileAsync(filePath): carrega o 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 ficheiro para o vídeo no Armazenamento do Azure

Você precisa executar várias etapas para permitir que um aplicativo transfira arquivos para o Armazenamento do Azure. A aplicação de consola também terá de ativar as tarefas do Batch para escrever a sua saída no armazenamento de blobs.

  1. Adicionar o pacote NuGet Microsoft.Azure.Storage.Blob
  2. Com as credenciais do Armazenamento do Azure, ligar à conta de armazenamento
  3. Criar um blob na conta de armazenamento
  4. Criar dois contentores para os ficheiros de entrada e saída com o cliente de blobs
  5. Carregue arquivos de vídeo MP4 locais usando o contêiner de entrada e armazene uma lista de arquivos para o trabalho em lote
  6. Depois que os vídeos forem convertidos, o contêiner de entrada poderá ser excluído, removendo todos os vídeos carregados do Azure