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