Batch API とツールの概要

Azure Batch による並列ワークロードの処理は、通常、Batch API のいずれかを使用して、プログラムで実行されます。 クライアント アプリケーションまたはサービスは、Batch API を使用して Batch サービスと通信することができます。 Batch API を使用すると、コンピューティング ノード (仮想マシンまたはクラウド サービス) のプールを作成して管理できます。 その後、それらのノードで実行するジョブおよびタスクをスケジュールできます。

組織の大規模なワークロードを効率的に処理したり、ノードの数を問わず (1 つ、数百、数千など)、必要なときに、またはスケジュールに基づいてジョブやタスクを実行できるように、顧客にサービス フロントエンドを提供したりできます。 また、Azure Batch を大規模なワークフローの一部として使用し、Azure Data Factory などのツールで管理できます。

ヒント

Azure Batch で使用される機能とワークフローの詳細については、「Batch サービスのワークフローとリソース」を参照してください。

バッチの開発用の Azure アカウント

Batch ソリューションを開発するとき、ご自身の Azure サブスクリプションで次のアカウントを使用します。

  • Batch アカウント: Azure Batch リソース (プール、コンピューティング ノード、ジョブ、タスクなど) は、Azure Batch アカウントに関連付けられています。 アプリケーションは、Batch サービスに対する要求を行う際に、Azure Batch アカウント名、アカウントの URL、およびアクセス キーまたは Azure Active Directory トークンを使用して要求を認証します。 Azure portal またはプログラムで Batch アカウントを作成できます。
  • ストレージ アカウント: Batch には、Azure Storage のファイルを操作するためのサポートが組み込まれています。 ほぼすべての Batch シナリオで、Azure Blob Storage が使用されます。タスクで実行されるプログラムや、プログラムで処理されるデータのステージングに使用されたり、プログラムで生成される出力データの格納に使用されたりします。 各 Batch アカウントは、通常、対応するストレージ アカウントに関連付けられています。

サービスレベルおよび管理レベルの API

Azure Batch には、サービス レベル用と管理レベル用の 2 つの API のセットがあります。 名前はよく似ていますが、返される結果は異なります。

アクティビティ ログで追跡されるのは、管理 API からのアクションのみです。 サービス レベル API は、Azure Resource Management (management.azure.com) レイヤーをバイパスし、ログには記録されません。

たとえば、プールを削除するための Batch サービス API は、Batch アカウントで直接ターゲットになります: DELETE {batchUrl}/pools/{poolId}

これに対し、プールを削除するための Batch 管理 API は、management.azure.com レイヤーでターゲットになります: DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}

Batch サービス API

アプリケーションとサービスは、直接 REST APIを呼び出したり、以下の 1 つ以上のクライアント ライブラリを使用したりして、Azure Batch ワークロードを実行および管理することができます。

API API リファレンス ダウンロード チュートリアル コード サンプル 詳細情報
Batch REST Azure REST API - ドキュメント 該当なし - - サポートされているバージョン
Batch .NET Azure SDK for .NET - ドキュメント NuGet チュートリアル GitHub リリース ノート
Batch Python Azure SDK for Python - ドキュメント PyPI チュートリアル GitHub Readme
Batch JavaScript Azure SDK for JavaScript - ドキュメント npm チュートリアル - Readme
Batch Java Azure SDK for Java - ドキュメント Maven - GitHub Readme

Batch Management API

Batch 用の Azure Resource Manager API には、Batch アカウントにプログラムでアクセスする機能が用意されています。 これらの API を使用すると、プログラムから Microsoft.Batch プロバイダーを介して、Batch アカウント、クォータ、アプリケーション パッケージなどのリソースを管理できます。

API API リファレンス ダウンロード チュートリアル コード サンプル
Batch Management REST Azure REST API - ドキュメント - - GitHub
Batch Management .NET Azure SDK for .NET - ドキュメント NuGet チュートリアル GitHub
Batch Management Python Azure SDK for Python - ドキュメント PyPI - -
Batch Management JavaScript Azure SDK for JavaScript - ドキュメント npm - -
Batch Management Java Azure SDK for Java - ドキュメント Maven - -

Batch コマンド ライン ツール

これらのコマンド ライン ツールには、Batch サービスや Batch Management API と同じ機能が備わっています。

その他のアプリケーション開発用ツール

これらの追加ツールは、Batch アプリケーションや Batch サービスの構築とデバッグに役立つ場合があります。

  • Azure ポータル:Azure portal では、Batch プール、ジョブ、タスクを作成、監視、削除できます。 ジョブの実行時にこれらをはじめとする各種リソースの状態情報を確認できるほか、プールのコンピューティング ノードからファイルをダウンロードすることもできます。 たとえばトラブルシューティングの際に、失敗したタスクの stderr.txt をダウンロードすることができます。 コンピューティング ノードへのログインに使用できるリモート デスクトップ (RDP) ファイルをダウンロードすることもできます。
  • Azure Batch Explorer: Batch Explorer は、Azure Batch アプリケーションの作成、デバッグ、および監視を支援する、豊富な機能を備えた無料のスタンドアロン クライアント ツールです。 Mac、Linux、または Windows 用のインストール パッケージをダウンロードしてください。
  • Azure Batch Shipyard: Batch Shipyard は、コンテナーベースのバッチ処理と HPC ワークロードを Azure Batch に対してプロビジョニング、実行、監視できるようにするツールです。
  • Azure Storage Explorer: Storage Explorer は、厳密には Azure Batch ツールではありませんが、Batch ソリューションの開発とデバッグに役立ちます。

その他のリソース

次のステップ