Creare ed eseguire un processo di Batch usando la libreria client .NET

Completato

A questo punto è disponibile un'app .NET Core che può connettersi al servizio Azure Batch ed è stato creato un pool con tre nodi. Negli esercizi rimanenti di questo modulo saranno implementate le funzionalità elencate di seguito:

  • Caricare file video e renderli disponibili per il servizio Azure Batch
  • Creare un processo da eseguire in tali nodi
  • Aggiungere al processo un'attività per convertire il video
  • Eseguire il processo per convertire i video caricati
  • Monitorare lo stato delle attività di conversione
  • Eseguire la pulizia delle risorse del servizio Batch per evitare eventuali costi aggiuntivi per l'uso. Usare l'opzione di eliminazione del pool se l'elaborazione giornaliera è terminata

Gestione di Batch

L'API client di Batch userà i metodi seguenti per creare, eliminare e monitorare i componenti dell'app:


  • batchClient.PoolOperations.CreatePool: è stato aggiunto all'app nell'esercizio precedente
  • batchClient.PoolOperations.DeletePoolAsync

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

  • batchClient.Utilities.CreateTaskStateMonitor

Gestione dei file

Si userà l'account di archiviazione creato in precedenza per creare contenitori in cui archiviare i file di input e output nell'archiviazione BLOB. Dalla libreria client del BLOB del servizio di archiviazione di Azure si useranno le classi e i metodi seguenti:


  • CloudStorageAccount: ottiene l'accesso all'account di archiviazione creato
  • CloudStorageAccount.Parse(storageConnectionString): crea il collegamento all'account Archiviazione
  • storageAccount.CreateCloudBlobClient: crea un oggetto CloudBlobClient

  • CloudBlobClient: crea un contenitore
  • blobClient.GetContainerReference(containerName): abilita la creazione di contenitori

  • CloudBlobContainer: crea la risorsa di archiviazione BLOB
  • container.GetBlockBlobReference(blobName): crea un oggetto CloudBlockBlob
  • container.CreateIfNotExistsAsync: crea il contenitore se non esiste
  • container.DeleteIfExistsAsync: elimina il contenitore se esiste

  • CloudBlockBlob: aggiunge o rimuove i file nell'archiviazione BLOB
  • blobData.UploadFromFileAsync(filePath): carica il file locale specificato in Archiviazione di Azure
  • blobData.GetSharedAccessSignature(sasConstraints): ottiene un URI di firma di accesso condiviso necessario per accedere al video caricato

  • ResourceFile.FromUrl (blobSasUri, blobName): specifica un percorso file al video in Archiviazione di Azure

È necessario eseguire alcuni passaggi per consentire a un'app di trasferire file in Archiviazione di Azure. L'app console dovrà anche consentire alle attività di Batch di scrivere l'output nell'archiviazione BLOB.

  1. Aggiungere il pacchetto NuGet Microsoft.Azure.Storage.Blob
  2. Connettersi all'account Archiviazione, usando le credenziali di Archiviazione di Azure
  3. Creare un BLOB nell'account di archiviazione
  4. Creare due contenitori per i file di input e output usando il client BLOB
  5. Usare il contenitore di input per caricare i file video MP4 locali e archiviare un elenco dei file per il processo di Batch
  6. Quando i video sono stati convertiti, il contenitore di input può essere eliminato, rimuovendo da Azure tutti i video caricati