使用 Azure CLI 管理 Batch 资源

了解如何使用 Azure 命令行接口 (Azure CLI) 管理 Azure Batch 帐户和资源。 有一些命令可用于创建和更新 Batch 资源(例如池、作业和任务)。 还可为通过 Batch API、PowerShell cmdlet 和 Azure 门户执行的许多相同任务创建脚本。

可以运行 Azure CLI 或在本地安装 Azure CLI。 多种版本适用于 Windows、Mac 和 Linux 操作系统 (OS)。

本文介绍如何将 Azure CLI 与 Batch 帐户和资源结合使用。

设置 Azure CLI

选择设置 Azure CLI 的方式:

如果你不熟悉如何使用 Azure CLI,请参阅 Azure CLI 入门,然后继续操作。

如果你之前在本地安装了 Azure CLI,请确保将安装更新到最新版本

使用 Azure CLI 进行身份验证

若要将 Azure CLI 与 Batch 结合使用,请先登录到 Azure 帐户,然后登录到 Batch 帐户

登录 Azure 帐户

若要使用 Azure CLI,请先登录到 Azure 帐户。 完成此步骤后即可访问 Azure 资源管理器命令,包括 Batch Management 服务命令。 然后,可以运行命令来管理 Batch 帐户、密钥、应用程序包和配额。

可以采用两种方式通过 Azure CLI 对 Azure 帐户进行身份验证。 若要自行运行命令,请以交互方式登录到 Azure CLI。 Azure CLI 会缓存凭据,并且随后可使用这些相同的凭据登录到 Batch 帐户。 若要从脚本或应用程序运行命令时,请使用服务主体登录到 Azure CLI

若要以交互方式登录到 Azure CLI,请运行 az login

az cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud   //means return to Public Azure.

登录到 Batch 帐户

接下来,使用 az batch account login 命令在 Azure CLI 中登录到 Batch 帐户。 完成此步骤后即可访问 Batch 服务命令。 然后,你可以管理 Batch 资源(例如池、作业和任务)。

可以采用两种方式通过 Azure CLI 对 Batch 帐户进行身份验证。 默认方法是使用 Microsoft Entra ID 进行身份验证。 在大多数情况下,我们建议使用此方法。 另一种方法是使用共享密钥身份验证

如果要创建 Azure CLI 脚本来自动执行 Batch 命令,则可以使用任一身份验证方法。 在某些情况下,使用共享密钥身份验证可能比创建服务主体简单。

使用 Microsoft Entra ID 进行身份验证

使用 Batch 帐户进行身份验证的默认方法是通过 Microsoft Entra ID。 以交互方式或使用服务主体登录到 Azure CLI 时,可以使用这些相同的缓存凭据通过 Microsoft Entra ID 登录到 Batch 帐户。 此身份验证方法还提供 Azure 基于角色的访问控制 (Azure RBAC)。 使用 Azure RBAC 时,用户访问权限取决于分配给他们的角色,而不是帐户密钥。 你只需管理 Azure 角色,而无需管理帐户密钥。 然后,Microsoft Entra ID 将处理访问和身份验证。

若要使用 Microsoft Entra ID 登录到 Batch 帐户,请运行 az batch login。 请确保包含 Batch 帐户名称 (-n) 和资源组名称 (-g) 所需的参数。

az batch account login -g <your-resource-group> -n <your-batch-account>

使用共享密钥进行身份验证

还可以使用共享密钥身份验证登录到 Batch 帐户。 此方法使用帐户访问密钥对适用于 Batch 服务的 Azure CLI 命令进行身份验证。

若要通过共享密钥身份验证登录到 Batch 帐户,请使用参数 --shared-key-auth 运行 az batch login。 请确保包含 Batch 帐户名称 (-n) 和资源组名称 (-g) 所需的参数。

az batch account login -g <your-resource-group> -n <your-batch-account> --shared-key-auth

了解 Batch 命令

Azure CLI 参考文档列出了适用于 Batch 的所有 Azure CLI 命令

若要列出 Azure CLI 中的所有 Batch 命令,请运行 az batch -h

有多个用于常见 Batch 任务的示例 CLI 脚本。 这些示例演示如何在 Azure CLI 中使用可用于 Batch 的多个命令。 你可以了解如何创建和管理 Batch 帐户、池、作业和任务。

使用 Batch CLI 扩展命令

可以使用 Batch CLI 扩展运行 Batch 作业,而无需编写代码。 该扩展提供了使用 JSON 模板通过 Azure CLI 创建池、作业和任务的命令。 该扩展还提供了用于连接到与 Batch 帐户关联的 Azure 存储帐户的命令。 然后,你可以上传并下载作业输入文件。

使用 JSON 创建资源

仅使用命令行参数就可创建大多数 Batch 资源。 某些功能需要你指定 JSON 配置文件。 JSON 文件包含新资源的配置详细信息。 例如,需要使用 JSON 文件才能指定启动任务的资源文件。

例如,若要使用 JSON 文件来配置新的 Batch 池资源,请执行以下操作:

az batch pool <your-batch-pool-configuration>.json

为新资源指定 JSON 文件时,请不要在命令中使用其他参数。 服务只使用 JSON 文件来配置资源。

Batch REST API 参考文档列出了创建资源所需的所有 JSON 语法。

若要查看创建资源所需的 JSON 语法,请参阅 Batch REST API 参考文档。 请转到资源操作参考页的“示例”部分。 然后,找到名为“添加 <资源类型>”的子部分。 例如,添加基本任务。 使用示例 JSON 代码作为配置文件的模板。

如需用于指定 JSON 文件的示例脚本,请参阅使用 Batch 运行作业和任务

高效查询 Batch 资源

可以使用 list 命令查询 Batch 帐户并列出所有资源。 例如,若要列出帐户中的池以及作业中的任务,请执行以下操作:

az batch pool list
az batch task list --job-id <your-job-id>

若要限制 Batch 查询返回的数据量,请指定 OData 子句。 所有筛选都在服务器端进行,因此你只会收到所请求的数据。 使用这些 OData 子句可以节省执行 list 操作所用的带宽和时间。 有关详细信息,请参阅设计适用于 Batch 资源的高效列表查询

子句 说明
--select-clause [select-clause] 返回每个实体的属性子集。
--filter-clause [filter-clause] 仅返回与指定的 OData 表达式匹配的实体。
--expand-clause [expand-clause] 通过单个基础 REST 调用获取实体信息。 expand 子句目前仅支持 stats 属性。

如需演示如何使用这些子句的示例脚本,请参阅使用 Batch 运行作业和任务

故障排除

若要获取任何 Batch 命令方面的帮助,请将 -h 添加到命令末尾。 请勿添加其他选项。 例如,若要获取有关创建 Batch 帐户的帮助,请运行 az batch account create -h

若要返回详细的命令输出,请将 -v-vv 添加到命令末尾。 使用这些切换功能可以显示完整的错误输出。 -vv 标志返回实际的 REST 请求和响应。

若要查看 JSON 格式的命令输出,请将 --json 添加到命令末尾。 例如,若要显示名为“pool001”的池的属性,请运行 az batch pool show pool001 --json。 然后,复制并修改输出,以使用 JSON 配置文件创建 Batch 资源

常规 Azure CLI 故障排除

Azure CLI 可以在多个 shell 环境中运行,但格式略有变化。 如果 Azure CLI 命令出现意外结果,请参阅如何成功使用 Azure CLI

后续步骤