.NET クライアント ライブラリを使用して Batch ジョブを作成し、実行する

完了

これで、Azure Batch サービスに接続できる .NET Core アプリが用意されました。また、3 つのノードでプールが作成されました。 このモジュールの残りの演習では、次の一覧にある残りの機能を実装します。

  • 動画ファイルをアップロードし、Azure Batch サービスで利用できるようにする
  • これらのノードで実行されるジョブを作成する
  • 動画を変換するタスクをジョブに追加する
  • アップロードした動画を変換するジョブを実行する
  • 変換タスクの状態を監視する
  • Batch サービス リソースをクリーンアップし、余計な利用料金を避ける (一日の処理が完了している場合、プールを削除するオプションを利用する)

バッチ管理

Batch クライアント API を利用し、次のメソッドを使ってアプリのコンポーネントを作成、削除、監視します。


  • batchClient.PoolOperations.CreatePool: 前の演習でこれをアプリに追加しました
  • batchClient.PoolOperations.DeletePoolAsync

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

  • batchClient.Utilities.CreateTaskStateMonitor

ファイルの管理

先ほどコンテナーの作成のために作成したストレージ アカウントを使用して、BLOB ストレージに入出力ファイルを格納します。 Azure Storage Blob クライアント ライブラリから、次のクラスとメソッドを使用します。


  • CloudStorageAccount: 作成された Storage アカウントにアクセスします
  • CloudStorageAccount.Parse(storageConnectionString): Storage アカウントに接続します
  • storageAccount.CreateCloudBlobClient: CloudBlobClient を作成します

  • CloudBlobClient: コンテナーを作成します
  • blobClient.GetContainerReference(containerName): コンテナーの作成を可能にします

  • CloudBlobContainer: BLOB ストレージを作成します
  • container.GetBlockBlobReference(blobName): CloudBlockBlob が作成されます
  • container.CreateIfNotExistsAsync: 存在しない場合、コンテナーが作成されます
  • container.DeleteIfExistsAsync: 存在する場合、コンテナーが削除されます

  • CloudBlockBlob: BLOB ストレージにファイルを追加または削除します
  • blobData.UploadFromFileAsync(filePath): 指定されたローカル ファイルを Azure Storage にアップロードします
  • blobData.GetSharedAccessSignature(sasConstraints): アップロードされた動画へのアクセスに使われる共有アクセス署名 URI を取得します

  • ResourceFile.FromUrl(blobSasUri, blobName): Azure Storage の動画へのファイルパスを提供します

アプリで Azure Storage にファイルを転送できるようにするには、いくつかの手順を実行する必要があります。 また、コンソール アプリで Batch タスクがその出力を Blob Storage に書き込めるようにする必要があります。

  1. Microsoft.Azure.Storage.Blob NuGet パッケージを追加する
  2. Azure Storage の資格情報を使用し、ストレージ アカウントに接続する
  3. Storage アカウントで BLOB を作成する
  4. BLOB クライアントを使用し、入力ファイルと出力ファイルのために 2 つのコンテナーを作成する
  5. 入力コンテナーを使ってローカル MP4 動画ファイルをアップロードし、Batch ジョブのためにファイルの一覧を保存する
  6. 動画が変換されたら、入力コンテナーを削除して、アップロードされたすべての動画を Azure から削除できる