可以使用 Azure Command-Line 接口(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 Resource Manager命令的访问权限,其中包括 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 帐户,请使用参数az batch login运行--shared-key-auth。 请确保包含 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 作业,而无需编写代码。 该扩展提供在 Azure CLI 中使用 JSON 模板创建池、作业和任务的命令。 该扩展还提供命令,以连接到与您的 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 资源。
General Azure CLI 故障排除
Azure CLI可以在多个 shell 环境中运行,但格式略有变化。 如果Azure CLI命令出现意外结果,请参阅 如何成功使用Azure CLI。