プール ノードへのアプリケーションとデータのコピー

Azure Batch は、データとアプリケーションをタスクで使用できるように、それらを計算ノードに取り込む方法をいくつかサポートしています。

選択する方法は、お使いのファイルまたはアプリケーションのスコープによって異なる場合があります。 データとアプリケーションは、ジョブ全体を実行するために必要になることがあるため、すべてのノードにインストールする必要があります。 一部のファイルまたはアプリケーションは、特定のタスクにのみ必要になる場合があります。 それ以外もジョブのためにインストールする必要があるかもしれませんが、すべてのノードに存在する必要はありません。 Batch には、これらのシナリオごとにツールが用意されています。

ファイルに必要なスコープを決定する

ファイルのスコープ (プール、ジョブ、タスク) を決定する必要があります。 プールにスコープが設定されているファイルでは、プール アプリケーション パッケージまたは開始タスクを使用する必要があります。 ジョブにスコープが設定されているファイルは、ジョブ準備タスクを使用する必要があります。 プールまたはジョブ レベルでスコープが設定されているファイルの例としては、アプリケーションが挙げられます。 タスクにスコープが設定されているファイルでは、タスク リソース ファイルを使用する必要があります。

プールの開始タスク リソース ファイル

プール内のすべてのノードにインストールする必要があるアプリケーションまたはデータには、プールの開始タスク リソース ファイルを使用します。 この方法は、インストール コマンドを実行するために、アプリケーション パッケージまたは開始タスクのリソース ファイル コレクションのいずれかと共に使用します。

たとえば、開始タスクのコマンド ラインを使用してアプリケーションを移動またはインストールできます。 Azure ストレージ アカウント内のファイルまたはコンテナーの一覧を指定することもできます。 詳細については、REST ドキュメントの Add#ResourceFile を参照してください。

プールで実行されるすべてのジョブが、最初に .msi ファイルを使用してインストールする必要があるアプリケーション (.exe) を実行する場合は、開始タスクの成功を待機プロパティを true に設定する必要があります。 詳細については、REST ドキュメントの Add#StartTask を参照してください。

アプリケーション パッケージの参照

プール内のすべてのノードにインストールする必要があるアプリケーションまたはデータについては、アプリケーション パッケージの使用を検討してください。 アプリケーション パッケージに関連付けられているインストール コマンドはありませんが、開始タスクを使用して任意のインストール コマンドを実行できます。 アプリケーションのインストールが必要ない場合、または多数のファイルで構成されている場合は、この方法を使用できます。

アプリケーション パッケージは、多くのファイル参照を小さなペイロードに結合できるため、多数のファイルがある場合に役立ちます。 100 を超える個別のリソース ファイルを 1 つのタスクに追加しようとすると、1 つのタスクの内部システム制限に対して Batch サービスが発生する可能性があります。 また、アプリケーション パッケージは、同じアプリケーションの異なるバージョンが多数存在し、それらの中から選択する必要がある場合にも役立ちます。

拡張機能

拡張機能は、プロビジョニング後の構成と Batch 計算ノードでのセットアップを容易にする小さなアプリケーションです。 プールを作成するときに、サポートされている拡張機能を選択できます。これは、計算ノードがプロビジョニングされる際に、それらにインストールされます。 その後、拡張機能はその目的の操作を実行できます。

ジョブの準備タスク リソース ファイル

ジョブを実行するためにインストールする必要があるが、プール全体にインストールする必要がないアプリケーションまたはデータについては、ジョブの準備タスク リソース ファイルの使用を検討してください。

たとえば、プールにさまざまな種類のジョブが多数あり、実行するために .msi ファイルが必要なジョブの種類が 1 つしかない場合は、ジョブの準備タスクにそのインストール ステップを配置するのが理にかなっています。

タスク リソース ファイル

タスク リソース ファイルは、アプリケーションまたはデータが個々のタスクにのみ関連する場合に適しています。

たとえば、5 つのタスクがあり、それぞれが別のファイルを処理してから、出力を BLOB ストレージに書き込む場合、タスク リソース ファイル コレクションに入力ファイルを指定する必要があります。これは、各タスクに独自の入力ファイルがあるためです。

ノードにデータを取り込むその他の方法

Azure Batch ノードを制御し、カスタム実行可能ファイルを実行できるため、任意の数のカスタム ソースからデータをプルできます。 Batch ノードがターゲットに接続されていること、およびノード上のそのソースに対する資格情報があることを確認してください。

Batch ノードにデータを転送する方法の例をいくつか次に示します。

  • SQL からのデータのダウンロード
  • 他の Web サービス/カスタムの場所からのデータのダウンロード
  • ネットワーク共有のマッピング

Azure Storage

BLOB ストレージにはダウンロードのスケーラビリティ ターゲットがあることに注意してください。 Azure Storage のファイル共有のスケーラビリティ ターゲットは、1 つの BLOB の場合と同じです。 サイズは、必要なノードとプールの数に影響します。

次のステップ