批处理 API 和工具概述
使用 Azure Batch 处理并行工作负荷通常是使用批处理 API 之一以编程方式实现的。 客户端应用程序或服务可使用 Batch API 与 Batch 服务通信。 Batch API 允许用户创建和管理计算节点(虚拟机或云服务)池。 随后可将作业和任务计划为在这些节点上运行。
可以为组织高效处理大量工作负荷,或提供服务前端给客户,让他们可以在一个、数百个甚至数千个节点上,按需要或按计划运行作业和任务。 还可以在 Azure 数据工厂等工具管理的大型工作流中使用 Azure Batch 。
提示
若要详细了解 Azure Batch 中所用的功能和工作流,请参阅 Batch 服务工作流和资源。
用于批处理开发的 Azure 帐户
开发 Batch 解决方案时,请在 Azure 订阅中使用以下帐户:
- Batch 帐户:Azure Batch 资源(包括池、计算节点、作业和任务)与 Azure Batch 帐户相关联。 当应用程序提出批处理服务请求时,会使用 Azure Batch 帐户名称、帐户的 URL 以及访问密钥或 Microsoft Entra 令牌对请求进行身份验证。 可以通过 Azure 门户或编程方式创建 Batch 帐户。
- 存储帐户:Batch 提供的内置支持允许处理 Azure 存储中的文件。 几乎每个 Batch 方案都使用 Azure Blob 存储暂存任务所运行的程序及其处理的数据,以及存储任务生成的输出数据。 每个 Batch 帐户通常与相应的存储帐户关联。
服务级别和管理级 API
Azure Batch 具有两组 API,一个用于服务级别,另一个用于管理级别。 命名通常相似,但它们返回不同的结果。
活动日志中只跟踪来自管理 API 的操作。 服务级别 API 会绕过 Azure 资源管理层 (management.chinacloudapi.cn),并且不会进行记录。
例如,用于删除池的 Batch 服务 API 直接以批处理帐户为目标:DELETE {batchUrl}/pools/{poolId}
而用于删除池的 Batch 管理 API 的目标是 management.chinacloudapi.cn 层:DELETE https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}
批处理服务 API
应用程序和服务可发出直接的 REST API 调用,或使用以下一个或多个客户端库,运行和管理 Azure Batch 工作负荷。
API | API 参考 | 下载 | 教程 | 代码示例 | 更多信息 |
---|---|---|---|---|---|
批处理 REST | Azure REST API - Docs | 空值 | - | - | 支持的版本 |
Batch .NET | 用于 .NET 的 Azure SDK - Docs | NuGet | 教程 | GitHub | 发行说明 |
Batch Python | 用于 Python 的 Azure SDK - Docs | PyPI | 教程 | GitHub | 自述文件 |
Batch JavaScript | 用于 JavaScript 的 Azure SDK - Docs | npm | 教程 | - | 自述文件 |
批处理 Java | 用于 Java 的 Azure SDK - Docs | Maven | - | GitHub | 自述文件 |
批处理管理 API
通过用于 Batch 的 Azure Resource Manager API,可以编程方式访问批处理帐户。 可以使用这些 API 通过 Microsoft.Batch 提供程序以编程方式管理 Batch 帐户、配额、应用程序包和其他资源。
API | API 参考 | 下载 | 教程 | 代码示例 |
---|---|---|---|---|
批次管理 REST | Azure REST API - Docs | - | - | GitHub |
Batch Management .NET | 用于 .NET 的 Azure SDK - Docs | NuGet | 教程 | GitHub |
批次管理 Python | 用于 Python 的 Azure SDK - Docs | PyPI | - | - |
Batch Management JavaScript | 用于 JavaScript 的 Azure SDK - Docs | npm | - | - |
批次管理 Java | 用于 Java 的 Azure SDK - Docs | Maven | - | - |
批处理命令行工具
这些命令行工具提供的功能与批处理服务和批处理管理 API 相同:
- Batch PowerShell cmdlet:Azure PowerShell 模块中的 Azure Batch cmdlet 可让用户使用 PowerShell 管理 Batch 资源。
- Azure CLI:Azure CLI 是一个跨平台工具集,提供用来与许多 Azure 服务(包括 Batch 服务和 Batch 管理服务)交互的 shell 命令。 有关详细信息,请参阅使用 Azure CLI 管理 Batch 资源。
适合应用程序开发的其他工具
这些附加工具可能有助于生成和调试 Batch 应用程序和服务。
- Azure 门户:可以在 Azure 门户中创建、监视和删除 Batch 池、作业和任务。 用户运行作业时,可以查看这些资源和其他资源的状态信息,甚至可以从池中的计算节点下载文件。 例如,在进行故障排除时下载失败任务的
stderr.txt
。 用户还可以下载可用于登录到计算节点的远程桌面 (RDP) 文件。 - Azure Batch Explorer:Batch Explorer 是一个功能丰富的免费独立客户端工具,可帮助创建、调试和监视 Azure Batch 应用程序。 下载适用于 Mac、Linux 或 Windows 的安装包。
- Azure 存储资源管理器:严格地说,虽然存储资源管理器不算是 Azure Batch 工具,但在开发和调试 Batch 解决方案时非常有用。
其他资源
- 如需参考 Batch 服务引发的事件的信息,请参阅 Batch 分析。
- 若要了解计算节点的环境变量,请参阅 Azure Batch 运行时环境变量。
后续步骤
- 了解 Batch 服务工作流和主要资源,例如池、节点、作业和任务。
- Get started with the Azure Batch library for .NET (适用于 .NET 的 Azure Batch 库入门),了解如何使用 C# 和 Batch .NET 库在常见的 Batch 工作流中执行简单的工作负荷。 也提供 Python 版和 JavaScript 教程。
- 下载 GitHub 上的代码示例,了解 C# 和 Python 如何与 Batch 交互以计划和处理示例工作负荷。