你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure CLI 管理 Batch 资源

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

可以在 Azure Cloud Shell 中运行 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 管理服务 命令)的访问权限。 然后,可以运行命令来管理 Batch 帐户、密钥、应用程序包和配额。

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

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

az login

登录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 资源的高效列表查询

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

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

Troubleshooting

若要获取任何 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

后续步骤