Batch アプリケーション パッケージを使用したコンピューティング ノードへのアプリケーションのデプロイDeploy applications to compute nodes with Batch application packages

Azure Batch のアプリケーション パッケージ機能を使用すると、タスク アプリケーションの管理と、プール内のコンピューティング ノードへのそのアプリケーションのデプロイが簡単になります。The application packages feature of Azure Batch provides easy management of task applications and their deployment to the compute nodes in your pool. アプリケーション パッケージを使用すると、タスクで実行される複数のバージョンのアプリケーション (そのサポート ファイルを含む) をアップロードして管理できます。With application packages, you can upload and manage multiple versions of the applications your tasks run, including their supporting files. また、アップロードしたアプリケーションのうち 1 つ以上をプール内のコンピューティング ノードに自動的にデプロイできます。You can then automatically deploy one or more of these applications to the compute nodes in your pool.

この記事では、Azure Portal でアプリケーション パッケージをアップロードおよび管理する方法を学習します。In this article, you learn how to upload and manage application packages in the Azure portal. その後、Batch .NET ライブラリを使用して、プールのコンピューティング ノードにそれらをインストールする方法を学習します。You then learn how to install them on a pool's compute nodes with the Batch .NET library.

注意

アプリケーション パッケージは、2017 年 7 月 5 日より後に作成されたすべての Batch プールでサポートされます。Application packages are supported on all Batch pools created after 5 July 2017. これらは、プールがクラウド サービス構成を使って作成された場合にのみ、2016 年 3 月 10 日から 2017 年 7 月 5 日までの間に作成された Batch プールでサポートされます。They are supported on Batch pools created between 10 March 2016 and 5 July 2017 only if the pool was created using a Cloud Service configuration. 2016 年 3 月 10 日より前に作成された Batch プールは、アプリケーション パッケージをサポートしていません。Batch pools created prior to 10 March 2016 do not support application packages.

アプリケーション パッケージの作成と管理を行う API は Batch Management .NET ライブラリの一部です。The APIs for creating and managing application packages are part of the Batch Management .NET library. 計算ノードでアプリケーション パッケージをインストールするための API は Batch .NET ライブラリの一部です。The APIs for installing application packages on a compute node are part of the Batch .NET library. 同等の機能は、他の言語の利用可能なバッチ API にあります。Comparable features are in the available Batch APIs for other languages.

ここで説明されているアプリケーション パッケージの機能は、以前のバージョンのサービスで利用できた "Batch Apps" 機能に代わるものです。The application packages feature described here supersedes the Batch Apps feature available in previous versions of the service.

アプリケーション パッケージの要件Application package requirements

アプリケーション パッケージを使うには、Azure Storage アカウントを Batch アカウントにリンクする必要があります。To use application packages, you need to link an Azure Storage account to your Batch account.

アプリケーションとアプリケーション パッケージについてAbout applications and application packages

Azure Batch では、" アプリケーション " という用語は、プール内のコンピューティング ノードに自動でダウンロード可能なバージョン付きバイナリのセットを指します。Within Azure Batch, an application refers to a set of versioned binaries that can be automatically downloaded to the compute nodes in your pool. また、"アプリケーション パッケージ" という用語は、そうしたバイナリの "特定のセット" を指し、アプリケーションの特定の "バージョン" を表します。An application package refers to a specific set of those binaries and represents a given version of the application.

High-level diagram of applications and application packagesHigh-level diagram of applications and application packages

[アプリケーション]Applications

Batch 内のアプリケーションは、1 つ以上のアプリケーション パッケージを含んでおり、アプリケーションの構成オプションを指定します。An application in Batch contains one or more application packages and specifies configuration options for the application. たとえば、アプリケーションは、コンピューティング ノードにインストールする既定のアプリケーション パッケージのバージョンや、そのパッケージを更新または削除できるかどうかを指定します。For example, an application can specify the default application package version to install on compute nodes and whether its packages can be updated or deleted.

アプリケーション パッケージApplication packages

アプリケーション パッケージは、タスクでアプリケーションを実行するために必要なアプリケーション バイナリとサポート ファイルを含む .zip ファイルです。An application package is a .zip file that contains the application binaries and supporting files that are required for your tasks to run the application. 各アプリケーション パッケージは特定のバージョンのアプリケーションを表します。Each application package represents a specific version of the application.

アプリケーション パッケージはプール レベルおよびタスク レベルで指定できます。You can specify application packages at the pool and task levels. プールまたはタスクを作成するときに、これらのパッケージの 1 つ以上と、必要に応じてバージョンを指定できます。You can specify one or more of these packages and (optionally) a version when you create a pool or task.

  • プールのアプリケーション パッケージ は、プール内の " すべて " のノードにデプロイされます。Pool application packages are deployed to every node in the pool. アプリケーションがデプロイされるのは、ノードがプールに参加するときと、ノードが再起動または再イメージ化されるときです。Applications are deployed when a node joins a pool, and when it is rebooted or reimaged.

    プールのアプリケーション パッケージは、プール内のすべてのノードがジョブのタスクを実行するときに適しています。Pool application packages are appropriate when all nodes in a pool execute a job's tasks. プールの作成時に 1 つ以上のアプリケーション パッケージを指定することも、既存のプールのパッケージを追加または更新することもできます。You can specify one or more application packages when you create a pool, and you can add or update an existing pool's packages. 既存のプールのアプリケーション パッケージを更新する場合は、新しいパッケージをインストールするために、そのノードを再起動する必要があります。If you update an existing pool's application packages, you must restart its nodes to install the new package.

  • タスクのアプリケーション パッケージ は、タスクのコマンド ラインを実行する直前に、そのタスクを実行するようにスケジュールされたコンピューティング ノードのみにデプロイされます。Task application packages are deployed only to a compute node scheduled to run a task, just before running the task's command line. 指定されたアプリケーション パッケージとバージョンが既にノードにある場合、それは再デプロイされず、既存のパッケージが使用されます。If the specified application package and version is already on the node, it is not redeployed and the existing package is used.

    タスクのアプリケーション パッケージは、共有プール環境では便利です。この環境では、さまざまなジョブが 1 つのプールで実行され、ジョブが完了してもプールは削除されません。Task application packages are useful in shared-pool environments, where different jobs are run on one pool, and the pool is not deleted when a job is completed. ジョブ内のタスクがプール内のノードよりも少ない場合は、タスクのアプリケーション パッケージによりデータ転送を最小限に抑えることができます。アプリケーションはタスクが実行されるノードにのみデプロイされるためです。If your job has fewer tasks than nodes in the pool, task application packages can minimize data transfer since your application is deployed only to the nodes that run tasks.

    タスクのアプリケーション パッケージによるメリットがあるその他のシナリオとして、ごく少数のタスクを別にすると、大規模なアプリケーションを実行するジョブが挙げられます。Other scenarios that can benefit from task application packages are jobs that run a large application, but for only a few tasks. たとえば、前処理段階またはマージ タスクがあります。この場合、前処理またはマージ アプリケーションは大規模で、タスクのアプリケーション パッケージの使用によるメリットがある可能性があります。For example, a pre-processing stage or a merge task, where the pre-processing or merge application is heavyweight, may benefit from using task application packages.

重要

Batch アカウント内のアプリケーションとアプリケーション パッケージの数と最大アプリケーション パッケージ サイズには制限があります。There are restrictions on the number of applications and application packages within a Batch account and on the maximum application package size. これらの制限の詳細については、「 Azure Batch サービスのクォータと制限 」を参照してください。See Quotas and limits for the Azure Batch service for details about these limits.

アプリケーション パッケージの利点Benefits of application packages

アプリケーション パッケージは、Batch ソリューションのコードを簡略化すると共に、タスクが実行されるアプリケーションの管理に必要なオーバーヘッドを軽減します。Application packages can simplify the code in your Batch solution and lower the overhead required to manage the applications that your tasks run.

アプリケーション パッケージでは、ノードにインストールする多数のリソース ファイルをプールの開始タスクで指定する必要がありません。With application packages, your pool's start task doesn't have to specify a long list of individual resource files to install on the nodes. Azure Storage やノードで、アプリケーション ファイルの複数のバージョンを手動で管理する必要もありません。You don't have to manually manage multiple versions of your application files in Azure Storage, or on your nodes. さらに、ストレージ アカウント内のファイルへのアクセスを提供する SAS URL の生成に苦労することもありません。And, you don't need to worry about generating SAS URLs to provide access to the files in your Storage account. Batch は、バックグラウンドで Azure Storage と連携して、アプリケーション パッケージを保存し、コンピューティング ノードにデプロイします。Batch works in the background with Azure Storage to store application packages and deploy them to compute nodes.

注意

開始タスクの合計サイズは、リソース ファイルと環境変数を含め、32,768 文字以下であることが必要です。The total size of a start task must be less than or equal to 32768 characters, including resource files and environment variables. 開始タスクがこの制限を超える場合は、別のオプションとしてアプリケーション パッケージの使用があります。If your start task exceeds this limit, then using application packages is another option. リソース ファイルを含む zip アーカイブを作成し、Azure Storage に BLOB としてアップロードし、開始タスクのコマンド ラインから解凍することもできます。You can also create a zipped archive containing your resource files, upload it as a blob to Azure Storage, and then unzip it from the command line of your start task.

アプリケーションのアップロードと管理Upload and manage applications

Azure portal または Batch Management API を使用して、Batch アカウントのアプリケーション パッケージを管理できます。You can use the Azure portal or the Batch Management APIs to manage the application packages in your Batch account. 次のいくつかのセクションでは、まずストレージ アカウントのリンク方法を示してから、アプリケーションとパッケージの追加とポータルを使った管理について説明します。In the next few sections, we first show how to link a Storage account, then discuss adding applications and packages and managing them with the portal.

アプリケーション パッケージを使用するには、最初に Azure Storage アカウントを Batch アカウントにリンクする必要があります。To use application packages, you must first link an Azure Storage account to your Batch account. ストレージ アカウントをまだ構成していない場合は、Batch アカウントで初めて [アプリケーション] をクリックしたときに、Azure Portal に警告が表示されます。If you have not yet configured a Storage account, the Azure portal displays a warning the first time you click Applications in your Batch account.

Azure Portal の「構成されているストレージ アカウントがありません」警告'No storage account configured' warning in Azure portal

Batch サービスは関連付けられたストレージ アカウントを使って、アプリケーション パッケージを格納します。The Batch service uses the associated Storage account to store your application packages. 2 つのアカウントをリンクした後、Batch は、リンクされたストレージ アカウントに保存されているパッケージをコンピューティング ノードに自動的にデプロイできるようになります。After you've linked the two accounts, Batch can automatically deploy the packages stored in the linked Storage account to your compute nodes. ストレージ アカウントを Batch アカウントにリンクするには、 [警告] ウィンドウで [ストレージ アカウント] をクリックします。その後、 [ストレージ アカウント] をもう一度クリックします。To link a Storage account to your Batch account, click Storage account on the Warning window, and then click Storage Account again.

Choose storage account blade in Azure portalChoose storage account blade in Azure portal

Batch アカウントで使うストレージ アカウントは "専用" のものを作成することをお勧めします。ここでは、そのようにします。We recommend that you create a Storage account specifically for use with your Batch account, and select it here. ストレージ アカウントを作成したら、 [ストレージ アカウント] ウィンドウを使用して Batch アカウントにリンクすることができます。After you've created a Storage account, you can then link it to your Batch account by using the Storage Account window.

重要

  • 現時点では、ファイアウォール規則で構成されている Azure Storage アカウントでアプリケーション パッケージを使用することはできません。Currently you can't use application packages with an Azure Storage account that is configured with firewall rules.
  • [階層型名前空間][有効] に設定されている Azure Storage アカウントは、アプリケーション パッケージには使用できません。An Azure Storage account with Hierarchical namespace set to Enabled can't be used for application packages.

Batch サービスは、Azure Storage を使ってアプリケーション パッケージをブロック BLOB として格納します。The Batch service uses Azure Storage to store your application packages as block blobs. ブロック BLOB データの通常料金を課金され、各パッケージのサイズは最大ブロック BLOB サイズを超えることはできません。You are charged as normal for the block blob data, and the size of each package can't exceed the maximum block blob size. 詳しくは、「Azure Storage のスケーラビリティおよびストレージ アカウントのパフォーマンスのターゲット」を参照してください。For more information, see Azure Storage scalability and performance targets for storage accounts. アプリケーション パッケージのサイズと数に気を配り、非推奨のパッケージを定期的に削除して、コストを最小限に抑えてください。Be sure to consider the size and number of your application packages, and periodically remove deprecated packages to minimize costs.

現在のアプリケーションの表示View current applications

Batch アカウントに含まれているアプリケーションを表示するには、 [Batch アカウント] の表示中に、左側のメニューにある [アプリケーション] メニュー項目をクリックします。To view the applications in your Batch account, click the Applications menu item in the left menu while viewing your Batch account.

Applications tileApplications tile

このメニュー オプションを選択すると、 [アプリケーション] ウィンドウが開きます。Selecting this menu option opens the Applications window:

List applicationsList applications

このウィンドウには、アカウント内に存在する各アプリケーションの ID と以下のプロパティが表示されます。This window displays the ID of each application in your account and the following properties:

  • [パッケージ] : このアプリケーションに関連するバージョン数。Packages: The number of versions associated with this application.
  • [既定のバージョン] : プールにアプリケーションを指定する際にバージョンを指定しない場合にインストールされるアプリケーション バージョン。Default version: The application version installed if you do not indicate a version when you specify the application for a pool. この設定はオプションです。This setting is optional.
  • [更新を許可する] : パッケージの更新、削除、追加を許可するかどうかを指定する値。Allow updates: The value that specifies whether package updates, deletions, and additions are allowed. [いいえ] に設定されている場合は、アプリケーションのパッケージの更新と削除が無効になります。If this is set to No, package updates and deletions are disabled for the application. 新しいアプリケーション パッケージ バージョンの追加のみが可能です。Only new application package versions can be added. 既定値は [はい] です。The default is Yes.

コンピューティング ノード上のアプリケーション パッケージのファイル構造を確認するには、ポータルで Batch アカウントに移動します。If you'd like to see the file structure of the application package on your compute node, navigate to your Batch account in the portal. Batch アカウントから プールに移動します。From your Batch account, navigate to Pools. 関心があるコンピューティング ノードを格納するプールを選択します。Select the pool that contains the compute node(s) you're interested in.

プール内のノードNodes in pool

プールを選択したら、アプリケーション パッケージがインストールされているコンピューティング ノードに移動します。Once you've selected your pool, navigate to the compute node that the application package is installed on. そこから、アプリケーション パッケージの詳細がアプリケーションフォルダーに配置されます。From there, the details of the application package are located in the applications folder. コンピューティング ノード上の追加のフォルダーには、開始タスク、出力ファイル、エラー出力などの他のファイルが含まれます。Additional folders on the compute node contain other files, such as start tasks, output files, error output, etc.

ノード上のファイルFiles on node

アプリケーションの詳細の表示View application details

アプリケーションの詳細を表示するには、 [アプリケーション] ウィンドウでそのアプリケーションを選択します。To see the details for an application, select the application in the Applications window.

Application detailsApplication details

アプリケーションの詳細では、アプリケーションに関する以下の設定を構成することができます。In the application details, you can configure the following settings for your application.

  • [更新を許可する] : アプリケーション パッケージを更新または削除できるかどうかを指定します。Allow updates: Specify whether its application packages can be updated or deleted. この記事の後半にある「アプリケーション パッケージの更新または削除」を参照してください。See "Update or Delete an application package" later in this article.
  • [既定のバージョン] : コンピューティング ノードにデプロイする既定のアプリケーション パッケージを指定します。Default version: Specify a default application package to deploy to compute nodes.
  • [表示名] : Batch を介して顧客に提供するサービスの UI など、アプリケーションの情報を表示するときに Batch ソリューションが使用できるわかりやすい名前を指定します。Display name: Specify a friendly name that your Batch solution can use when it displays information about the application, for example, in the UI of a service that you provide to your customers through Batch.

新しいアプリケーションの追加Add a new application

新しいアプリケーションを作成するには、アプリケーション パッケージを追加し、新しい一意のアプリケーション ID を指定します。To create a new application, add an application package and specify a new, unique application ID. 新しいアプリケーション ID を使って最初のアプリケーション パッケージを追加すると、新しいアプリケーションも作成されます。The first application package that you add with the new application ID also creates the new application.

[アプリケーション] > [追加] の順にクリックします。Click Applications > Add.

New application blade in Azure portalNew application blade in Azure portal

[新しいアプリケーション] ウィンドウには、新しいアプリケーションとアプリケーション パッケージの設定を指定するための次のフィールドがあります。The New application window provides the following fields to specify the settings of your new application and application package.

アプリケーション IDApplication ID

このフィールドでは、標準の Azure Batch ID 検証ルールに従って、新しいアプリケーションの ID を指定します。This field specifies the ID of your new application, which is subject to the standard Azure Batch ID validation rules. アプリケーション ID を指定するためのルールは次のとおりです。The rules for providing an application ID are as follows:

  • Windows ノードでは、ID には英数字、ハイフン、アンダースコアの任意の組み合わせを使用できる。On Windows nodes, the ID can contain any combination of alphanumeric characters, hyphens, and underscores. Linux ノードでは、英数字とアンダースコアのみ使用できる。On Linux nodes, only alphanumeric characters and underscores are permitted.
  • 64 文字以内にする必要がある。Cannot contain more than 64 characters.
  • Batch アカウント内で一意にする必要がある。Must be unique within the Batch account.
  • 大文字と小文字が維持され、区別はされない。Is case-preserving and case-insensitive.

バージョンVersion

このフィールドでは、アップロードするアプリケーション パッケージのバージョンを指定します。This field specifies the version of the application package you are uploading. バージョン文字列は以下の検証ルールに従うようにします。Version strings are subject to the following validation rules:

  • Windows ノードでは、バージョン文字列には英数字、ハイフン、アンダースコア、ピリオドの任意の組み合わせを使用できる。On Windows nodes, the version string can contain any combination of alphanumeric characters, hyphens, underscores, and periods. Linux ノードでは、バージョン文字列には英数字とアンダースコアのみ使用できる。On Linux nodes, the version string can contain only alphanumeric characters and underscores.
  • 64 文字以内にする必要がある。Cannot contain more than 64 characters.
  • アプリケーション内で一意にする必要がある。Must be unique within the application.
  • 大文字と小文字が維持され、区別はされない。Are case-preserving and case-insensitive.

[Application package (アプリケーション パッケージ)]Application package

このフィールドは、アプリケーションの実行に必要なアプリケーション バイナリとサポート ファイルを含む .zip ファイルを指定します。This field specifies the .zip file that contains the application binaries and supporting files that are required to execute the application. [ファイルの選択] ボックスかフォルダー アイコンをクリックして、アプリケーションのファイルが格納されている .zip ファイルを参照して選択します。Click the Select a file box or the folder icon to browse to and select a .zip file that contains your application's files.

ファイルを選択したら、 [OK] をクリックして Azure Storage へのアップロードを開始します。After you've selected a file, click OK to begin the upload to Azure Storage. アップロード操作が完了すると、ポータルに通知が表示されます。When the upload operation is complete, the portal displays a notification. アップロードするファイルのサイズやネットワーク接続の速度によっては、アップロードに時間がかかることもあります。Depending on the size of the file that you are uploading and the speed of your network connection, this operation may take some time.

警告

アップロード操作が完了するまで、 [新しいアプリケーション] ウィンドウを閉じないでください。Do not close the New application window before the upload operation is complete. 途中で閉じると、アップロード プロセスが停止します。Doing so stops the upload process.

新しいアプリケーション パッケージの追加Add a new application package

既存のアプリケーションに対してアプリケーション パッケージ バージョンを追加するには、 [アプリケーション] ウィンドウでアプリケーションを選択し、 [パッケージ] > [追加] の順にクリックします。To add an application package version for an existing application, select an application in the Applications windows, and click Packages > Add.

Add application package blade in Azure portalAdd application package blade in Azure portal

ご覧のように、フィールドは [新しいアプリケーション] ウィンドウのそれに一致しますが、 [アプリケーション ID] は無効になっています。As you can see, the fields match those of the New application window, but the Application ID box is disabled. 新しいアプリケーションの場合と同様に、新しいパッケージのバージョンを指定して、アプリケーション パッケージの .zip ファイルを参照し、 [OK] をクリックしてパッケージをアップロードします。As you did for the new application, specify the Version for your new package, browse to your Application package .zip file, then click OK to upload the package.

アプリケーション パッケージの更新または削除Update or delete an application package

既存のアプリケーション パッケージを更新または削除するには、対象アプリケーションの詳細を開き、 [パッケージ] をクリックします。次に、変更するアプリケーション パッケージの行の省略記号をクリックして、実行する操作を選択します。To update or delete an existing application package, open the details for the application, click Packages, click the ellipsis in the row of the application package that you want to modify, and select the action that you want to perform.

Update or delete package in Azure portalUpdate or delete package in Azure portal

アップデートUpdate

[更新] をクリックすると、 [パッケージの更新] ウィンドウが表示されます。When you click Update, the Update package windows is displayed. このウィンドウは新しいアプリケーション パッケージのウィンドウと似ていますが、パッケージ選択フィールドのみが有効になっていて、アップロードする新しい ZIP ファイルを指定できます。This window is similar to the New application package window, however only the package selection field is enabled, allowing you to specify a new ZIP file to upload.

Update package blade in Azure portalUpdate package blade in Azure portal

削除Delete

[削除] をクリックすると、当該パッケージ バージョンを削除するかどうかを確認するメッセージが表示され、承諾すると Batch がそのパッケージを Azure Storage から削除します。When you click Delete, you are asked to confirm the deletion of the package version, and Batch deletes the package from Azure Storage. アプリケーションの既定のバージョンを削除すると、そのアプリケーションの 既定のバージョン の設定も削除されます。If you delete the default version of an application, the Default version setting is removed for the application.

Delete application Delete application

コンピューティング ノードへのアプリケーションのインストールInstall applications on compute nodes

Azure Portal でアプリケーション パッケージを管理する方法を確認したので、これらのパッケージをコンピューティング ノードにデプロイし、Batch タスクを使って実行する方法を説明します。Now that you've learned how to manage application packages with the Azure portal, we can discuss how to deploy them to compute nodes and run them with Batch tasks.

プールのアプリケーション パッケージのインストールInstall pool application packages

プール内のすべてのコンピューティング ノードにアプリケーション パッケージをインストールするには、対象のプールに対してアプリケーション パッケージへの " 参照 " を 1 つ以上指定します。To install an application package on all compute nodes in a pool, specify one or more application package references for the pool. プールに指定したアプリケーション パッケージは、コンピューティング ノードがプールに参加したときや再起動されたとき、再イメージ化されたときに各ノードにインストールされます。The application packages that you specify for a pool are installed on each compute node when that node joins the pool, and when the node is rebooted or reimaged.

Batch .NET では、新しいプールの作成時に、または既存のプールに対して、1 つ以上の CloudPool.ApplicationPackageReferences を追加します。In Batch .NET, specify one or more CloudPool.ApplicationPackageReferences when you create a new pool, or for an existing pool. ApplicationPackageReference クラスは、プールの計算ノードにインストールするアプリケーション ID とバージョンを指定します。The ApplicationPackageReference class specifies an application ID and version to install on a pool's compute nodes.

// Create the unbound CloudPool
CloudPool myCloudPool =
    batchClient.PoolOperations.CreatePool(
        poolId: "myPool",
        targetDedicatedComputeNodes: 1,
        virtualMachineSize: "standard_d1_v2",
        cloudServiceConfiguration: new CloudServiceConfiguration(osFamily: "5"));

// Specify the application and version to install on the compute nodes
myCloudPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "litware",
        Version = "1.1001.2b" }
};

// Commit the pool so that it's created in the Batch service. As the nodes join
// the pool, the specified application package is installed on each.
await myCloudPool.CommitAsync();

重要

アプリケーション パッケージのデプロイが何らかの理由で失敗した場合、そのノードは、Batch サービスによって使用不可としてマークされます。そのノードに対しては、タスクの実行がスケジュールされません。If an application package deployment fails for any reason, the Batch service marks the node unusable, and no tasks are scheduled for execution on that node. この場合、パッケージのデプロイを再開するには、ノードを再起動する必要があります。In this case, you should restart the node to reinitiate the package deployment. ノードを再起動すると、そのノードでのタスクのスケジュールももう一度有効になります。Restarting the node also enables task scheduling again on the node.

タスクのアプリケーション パッケージのインストールInstall task application packages

プールと同様、アプリケーション パッケージへの " 参照 " を指定します。Similar to a pool, you specify application package references for a task. タスクがノード上で実行するようにスケジュールされると、タスクのコマンド ラインが実行される直前に、パッケージがダウンロードされ、展開されます。When a task is scheduled to run on a node, the package is downloaded and extracted just before the task's command line is executed. 指定したパッケージとバージョンが既にノードにインストールされている場合は、パッケージがダウンロードされず、既存のパッケージが使用されます。If a specified package and version is already installed on the node, the package is not downloaded and the existing package is used.

タスクのアプリケーション パッケージをインストールするには、タスクの CloudTask.ApplicationPackageReferences プロパティを構成します。To install a task application package, configure the task's CloudTask.ApplicationPackageReferences property:

CloudTask task =
    new CloudTask(
        "litwaretask001",
        "cmd /c %AZ_BATCH_APP_PACKAGE_LITWARE%\\litware.exe -args -here");

task.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference
    {
        ApplicationId = "litware",
        Version = "1.1001.2b"
    }
};

インストールしたアプリケーションの実行Execute the installed applications

プールまたはタスクに指定したパッケージがダウンロードされ、ノードの AZ_BATCH_ROOT_DIR 内にある名前付きディレクトリに展開されます。The packages that you've specified for a pool or task are downloaded and extracted to a named directory within the AZ_BATCH_ROOT_DIR of the node. Batch により、その名前付きディレクトリへのパスを含む環境変数も作成されます。Batch also creates an environment variable that contains the path to the named directory. タスクのコマンド ラインは、ノード上のアプリケーションを参照するときにこの環境変数を使用します。Your task command lines use this environment variable when referencing the application on the node.

Windows ノードでは、この変数の形式は次のとおりです。On Windows nodes, the variable is in the following format:

Windows:
AZ_BATCH_APP_PACKAGE_APPLICATIONID#version

Linux ノードでは、形式が若干異なります。On Linux nodes, the format is slightly different. ピリオド (.)、ハイフン (-)、番号記号 (#) は、環境変数ではアンダースコアにフラット化されます。Periods (.), hyphens (-) and number signs (#) are flattened to underscores in the environment variable. また、アプリケーション ID の大文字と小文字は保持されることに注意してください。Also, note that the case of the application ID is preserved. 次に例を示します。For example:

Linux:
AZ_BATCH_APP_PACKAGE_applicationid_version

APPLICATIONIDversion は、デプロイに指定したアプリケーションとパッケージ バージョンに対応する値です。APPLICATIONID and version are values that correspond to the application and package version you've specified for deployment. たとえば、アプリケーション "blender" のバージョン 2.7 が Windows ノードにインストールされるように指定した場合、タスクのコマンド ラインでは、次の環境変数を使ってそのファイルにアクセスします。For example, if you specified that version 2.7 of application blender should be installed on Windows nodes, your task command lines would use this environment variable to access its files:

Windows:
AZ_BATCH_APP_PACKAGE_BLENDER#2.7

Linux ノードでは、次の形式で環境変数を指定します。On Linux nodes, specify the environment variable in this format. ピリオド (.)、ハイフン (-)、および番号記号 (#) をアンダースコアにフラット化し、アプリケーション ID の大文字と小文字を保持します。Flatten the periods (.), hyphens (-) and number signs (#) to underscores, and preserve the case of the application ID:

Linux:
AZ_BATCH_APP_PACKAGE_blender_2_7

アプリケーション パッケージをアップロードするときに、コンピューティング ノードにデプロイする既定のバージョンを指定できます。When you upload an application package, you can specify a default version to deploy to your compute nodes. アプリケーションの既定のバージョンを指定した場合、アプリケーションを参照するときにバージョンのサフィックスを省略できます。If you have specified a default version for an application, you can omit the version suffix when you reference the application. アプリケーションの既定のバージョンは、「アプリケーションのアップロードと管理」に示すように、Azure Portal の [アプリケーション] ウィンドウで指定できます。You can specify the default application version in the Azure portal, in the Applications window, as shown in Upload and manage applications.

たとえば、"blender" アプリケーションの既定バージョンとして 2.7 を設定した場合、タスクは次の環境変数を参照するため、Windows ノードはバージョン 2.7 を実行します。For example, if you set "2.7" as the default version for application blender, and your tasks reference the following environment variable, then your Windows nodes will execute version 2.7:

AZ_BATCH_APP_PACKAGE_BLENDER

次のコード スニペットは、 blender アプリケーションの既定のバージョンを起動する、タスクのコマンド ラインの例を示します。The following code snippet shows an example task command line that launches the default version of the blender application:

string taskId = "blendertask01";
string commandLine =
    @"cmd /c %AZ_BATCH_APP_PACKAGE_BLENDER%\blender.exe -args -here";
CloudTask blenderTask = new CloudTask(taskId, commandLine);

ヒント

コンピューティング ノードの環境設定の詳細については、Batch 機能の概要に関するページの「タスクの環境設定」を参照してください。See Environment settings for tasks in the Batch feature overview for more information about compute node environment settings.

プールに含まれるアプリケーション パッケージの更新Update a pool's application packages

アプリケーション パッケージで構成済みの既存プールに対して、新しいパッケージを指定することができます。If an existing pool has already been configured with an application package, you can specify a new package for the pool. プールに対して新しいパッケージ参照を指定すると、次のようになります。If you specify a new package reference for a pool, the following apply:

  • Batch サービスは、プールに参加する新しいノードすべてと、再起動または再イメージ化される既存のノードに、新しく指定されたパッケージをインストールします。The Batch service installs the newly specified package on all new nodes that join the pool and on any existing node that is rebooted or reimaged.
  • パッケージへの参照を更新したときに、既にプールに参加していたコンピューティング ノードに対し、新しいアプリケーション パッケージが自動でインストールされることはありません。Compute nodes that are already in the pool when you update the package references do not automatically install the new application package. 新しいパッケージを受け取るには、これらのコンピューティング ノードを再起動または再イメージ化する必要があります。These compute nodes must be rebooted or reimaged to receive the new package.
  • 新しいパッケージがデプロイされると、作成された環境変数に新しいアプリケーション パッケージ参照が反映されます。When a new package is deployed, the created environment variables reflect the new application package references.

この例では、既存のプールに、CloudPool.ApplicationPackageReferences の 1 つとして blender アプリケーションのバージョン 2.7 が構成されています。In this example, the existing pool has version 2.7 of the blender application configured as one of its CloudPool.ApplicationPackageReferences. プールのノードをバージョン 2.76b で更新するには、新しいバージョンで新しい ApplicationPackageReference を指定し、変更をコミットします。To update the pool's nodes with version 2.76b, specify a new ApplicationPackageReference with the new version, and commit the change.

string newVersion = "2.76b";
CloudPool boundPool = await batchClient.PoolOperations.GetPoolAsync("myPool");
boundPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "blender",
        Version = newVersion }
};
await boundPool.CommitAsync();

新しいバージョンを構成したので、Batch サービスはプールに参加する "新しい" ノードにバージョン 2.76b をインストールします。Now that the new version has been configured, the Batch service installs version 2.76b to any new node that joins the pool. プール内の " 既存 " のノードに 2.76b をインストールするには、ノードを再起動または再イメージ化します。To install 2.76b on the nodes that are already in the pool, reboot or reimage them. 再起動されたノードは、以前のパッケージ デプロイのファイルを保持することにご注意ください。Note that rebooted nodes retain the files from previous package deployments.

Batch アカウント内のアプリケーションの一覧表示List the applications in a Batch account

ApplicationOperations.ListApplicationSummaries メソッドを使用して、Batch アカウント内のアプリケーションとパッケージを一覧表示できます。You can list the applications and their packages in a Batch account by using the ApplicationOperations.ListApplicationSummaries method.

// List the applications and their application packages in the Batch account.
List<ApplicationSummary> applications = await batchClient.ApplicationOperations.ListApplicationSummaries().ToListAsync();
foreach (ApplicationSummary app in applications)
{
    Console.WriteLine("ID: {0} | Display Name: {1}", app.Id, app.DisplayName);

    foreach (string version in app.Versions)
    {
        Console.WriteLine("  {0}", version);
    }
}

まとめWrap up

アプリケーション パッケージを使用すると、顧客がジョブ用のアプリケーションを選択するのを支援したり、Batch を有効にしたサービスでジョブを処理する場合の正確なバージョン指定を行ったりすることができます。With application packages, you can help your customers select the applications for their jobs and specify the exact version to use when processing jobs with your Batch-enabled service. さらに、顧客がサービスに自前のアプリケーションをアップロードし、トラッキングするための環境も用意できます。You might also provide the ability for your customers to upload and track their own applications in your service.

次のステップNext steps