使用 .NET 用戶端程式庫建立並執行 Batch 作業

已完成

您現在擁有的 .NET Core 應用程式可以連線至 Azure Batch 服務,而且已經建立一個具有三個節點的集區。 在本課程模組的其餘練習中,我們將實作下列其餘功能的清單:

  • 上傳影片檔,並將其提供給 Azure Batch 服務使用
  • 建立要在這些節點上執行的作業
  • 新增要將影片轉換成作業的工作
  • 執行轉換已上傳影片的作業
  • 監視轉換工作的狀態
  • 清除 Batch 服務資源,以避免任何額外的使用費用 (如果當天的處理已完成,則使用刪除集區的選項)

Batch 管理

您將透過 Batch 用戶端 API,使用下列方法建立、刪除及監視應用程式的元件:


  • batchClient.PoolOperations.CreatePool:您已經在上一個練習中,將此物件加入至應用程式
  • batchClient.PoolOperations.DeletePoolAsync

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

  • batchClient.Utilities.CreateTaskStateMonitor

檔案管理

您將使用您稍早建立的儲存體帳戶來建立容器,以在 Blob 儲存體中儲存輸入與輸出檔案。 從 Azure 儲存體 Blob 用戶端程式庫,您將使用下列類別與方法:


  • CloudStorageAccount:取得所建立儲存體帳戶的存取權
  • CloudStorageAccount.Parse(storageConnectionString):連線至儲存體帳戶
  • storageAccount.CreateCloudBlobClient:建立 CloudBlobClient

  • CloudBlobClient:建立容器
  • blobClient.GetContainerReference(containerName):可讓您建立容器

  • CloudBlobContainer:建立 Blob 記憶體
  • container.GetBlockBlobReference(blobName):建立 CloudBlockBlob
  • container.CreateIfNotExistsAsync:建立容器 (如果不存在)
  • container.DeleteIfExistsAsync:刪除容器 (如果存在)

  • CloudBlockBlob:在 Blob 儲存體中新增或移除檔案
  • blobData.UploadFromFileAsync(filePath):將指定的本機檔案上傳至 Azure 儲存體
  • blobData.GetSharedAccessSignature(sasConstraints):取得存取已上傳影片所使用的共用存取簽章 URI

  • ResourceFile.FromUrl(blobSasUri, blobName):提供 Azure 儲存體中影片的檔案路徑

您必須採取幾個步驟才能讓應用程式將檔案傳輸到 Azure 儲存體。 主控台應用程式也必須讓 Batch 工作將其輸出寫入至 Blob 儲存體。

  1. 新增 Microsoft.Azure.Storage.Blob NuGet 套件
  2. 使用 Azure 儲存體認證連線到儲存體帳戶
  3. 在儲存體帳戶中建立 Blob
  4. 使用 Blob 用戶端建立兩個容器,以供輸入和輸出檔案使用
  5. 使用輸入容器上傳本機 MP4 影片檔,並儲存檔案清單以供 Batch 作業使用
  6. 影片一旦轉換之後,就可以刪除輸入容器,並移除 Azure 中所有已上傳的影片