使用“运行命令”在 VM 中运行脚本

“运行命令”功能使用虚拟机 (VM) 代理在 Azure Linux VM 或 Linux VM 中运行脚本。 可以使用这些脚本进行常规计算机或应用程序管理。 它们可以帮助你快速诊断和修正 VM 访问与网络问题,使 VM 恢复正常状态。 可以在属性中嵌入脚本,或将脚本引用到预先发布的库脚本。

最初的一组命令是面向操作的。 已更新的一组命令是面向管理的,使你能够运行多个脚本,并且其限制会更少。 本文将说明两组运行命令之间的差异,并帮助你确定哪一组适用于你的方案。

重要

目前,Azure CLI、PowerShell 和 API 中可使用“托管运行命令”。 门户功能即将推出。

何时使用操作或托管命令

最初的一组命令是面向操作的。 应考虑使用这组命令的情况包括:

  • 你需要运行一个小脚本以从 VM 获取内容
  • 你需要运行一个脚本以配置 VM(设置注册表项、更改配置)
  • 你需要运行一个一次性脚本以进行诊断

有关可用操作命令以及如何应用它们的说明,请参阅适用于 Linux 的操作运行命令适用于 Windows 的操作运行命令

已更新的一组命令是面向管理的。 如果你的需求与以下示例一致,请考虑使用托管运行命令:

  • 脚本需要在 VM 部署过程中运行
  • 需要重复执行脚本
  • 多个脚本需要按顺序执行
  • 通过运行安装脚本来启动 VM
  • 发布要共享并重复使用的自定义脚本

若要了解如何使用这些命令,请参阅适用于 Linux 的托管运行命令适用于 Windows 的托管运行命令

备注

允许的托管运行命令的最大数目当前限制为 25。

比较功能支持

功能支持 操作运行命令 托管运行命令
ARM 模板 否,这是一个 POST 操作 是,这是一个资源类型
长时间运行 90 分钟限制 客户指定的超时
执行帐户 系统帐户/root 客户指定的用户
多个运行命令 仅一个处于活动状态 多个命令并行执行或按顺序执行
大型输出 限于 4k(在状态 blob 中) 已上传到客户追加 blob
进度跟踪 仅报告最终状态 在执行期间报告进度和最后4k 输出
异步执行 目标状态/预配等待脚本完成 客户指定的异步标志(如果预配等待该脚本)
虚拟机规模集支持 仅在 VM 实例上 支持虚拟机规模集模型和横向扩展
SAS 生成 无 blob 支持 自动,CRP 为客户 blob 生成 SAS 并对其进行管理
库(自定义命令) 仅内置 commandId 客户可以发布脚本并共享它们

后续步骤

开始使用适用于 Linux 的托管运行命令适用于 Windows 的托管运行命令