Criar e executar um trabalho do Lote usando a biblioteca de clientes .NET
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.
- Adicionar o pacote NuGet
Microsoft.Azure.Storage.Blob
- Usando as credenciais do Armazenamento do Azure, conectar-se à conta de Armazenamento
- Criar um blob na conta de armazenamento
- Criar dois contêineres para os arquivos de entrada e saída usando o cliente de blob
- 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
- Depois que os vídeos forem convertidos, o contêiner de entrada pode ser excluído, removendo todos os vídeos carregados do Azure