Criar e executar um trabalho do Batch com a biblioteca de cliente .NET
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.
- Adicionar o pacote NuGet
Microsoft.Azure.Storage.Blob
- Com as credenciais do Armazenamento do Azure, ligar à conta de armazenamento
- Criar um blob na conta de armazenamento
- Criar dois contentores para os ficheiros de entrada e saída com o cliente de blobs
- Carregue arquivos de vídeo MP4 locais usando o contêiner de entrada e armazene uma lista de arquivos para o trabalho em lote
- Depois que os vídeos forem convertidos, o contêiner de entrada poderá ser excluído, removendo todos os vídeos carregados do Azure