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、およびアクセス キーまたは Microsoft Entra トークンを使用して要求を認証します。 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 PowerShell コマンドレット: Azure PowerShell モジュールの Azure Batch コマンドレットを使用すると、PowerShell で Batch リソースを管理できます。
- Azure CLI:Azure CLI は、Batch サービスや Batch Management サービスなどの多くの Azure サービスを操作するためのシェル コマンドを提供するクロスプラットフォーム ツールセットです。 詳細については、「Azure CLI で Batch リソースを管理する」を参照してください。
その他のアプリケーション開発用ツール
これらの追加ツールは、Batch アプリケーションや Batch サービスの構築とデバッグに役立つ場合があります。
- Azure ポータル:Azure portal では、Batch プール、ジョブ、タスクを作成、監視、削除できます。 ジョブの実行時にこれらをはじめとする各種リソースの状態情報を確認できるほか、プールのコンピューティング ノードからファイルをダウンロードすることもできます。 たとえばトラブルシューティングの際に、失敗したタスクの
stderr.txt
をダウンロードすることができます。 コンピューティング ノードへのログインに使用できるリモート デスクトップ (RDP) ファイルをダウンロードすることもできます。 - Azure Batch Explorer: Batch Explorer は、Azure Batch アプリケーションの作成、デバッグ、および監視を支援する、豊富な機能を備えた無料のスタンドアロン クライアント ツールです。 Mac、Linux、または Windows 用のインストール パッケージをダウンロードしてください。
- Azure Storage Explorer: Storage Explorer は、厳密には Azure Batch ツールではありませんが、Batch ソリューションの開発とデバッグに役立ちます。
その他のリソース
- Batch アプリケーションからのイベントのログ記録について詳しくは、「Batch の診断の評価と監視用のメトリック、アラート、およびログ」を参照してください。
- Batch サービスで発生するイベントのリファレンス情報については、「一括分析」を参照してください。
- 計算ノードの環境変数については、「Azure Batch ランタイム環境変数」を参照してください。
次のステップ
- Batch サービスのワークフローと主要なリソース (プール、ノード、ジョブ、タスクなど) について学習します。
- .NET 向け Azure Batch ライブラリの概要 」では、C# と Batch .NET ライブラリを利用し、一般的な Batch ワークフローを使用して簡単なワークロードを実行する方法を学習できます。 Python バージョンと JavaScript のチュートリアルも用意されています。
- GitHub のサンプル コードをダウンロードし、C# と Python の両方について、Batch とやり取りしてサンプル ワークロードのスケジュール設定と処理を実行する方法を確認してください。