“运行命令”功能使用虚拟机 (VM) 代理在 Azure Linux VM 或 Linux VM 中运行脚本。 可以使用这些脚本进行常规计算机或应用程序管理。 它们可以帮助你快速诊断和修正 VM 访问与网络问题,使 VM 恢复正常状态。 可以在属性中嵌入脚本,或引用已发布的图库脚本。
最初的一组命令是面向操作的。 已更新的一组命令是面向管理的,使你能够运行多个脚本,并且其限制会更少。 本文将说明两组运行命令之间的差异,并帮助你确定哪一组适用于你的方案。
重要
目前,Azure CLI、PowerShell 和 API 中可使用“托管运行命令”。 门户功能当前不可用。
何时使用操作或托管命令
最初的一组命令是面向操作的。 您应考虑在需要运行以下命令的情况下使用这组命令:
- 一个小脚本用来获取虚拟机的内容
- 你需要运行一个脚本以配置 VM(设置注册表项、更改配置)
- 你需要运行一个一次性脚本以进行诊断
有关可用操作命令以及如何应用它们的说明,请参阅适用于 Linux 的操作运行命令和适用于 Windows 的操作运行命令。
已更新的一组命令是面向管理的。 如果你的需求与以下示例一致,请考虑使用托管运行命令:
- 脚本需要在 VM 部署过程中运行
- 需要重复执行脚本
- 多个脚本需要按顺序执行
- 通过运行安装脚本来启动 VM
- 发布要共享并重复使用的自定义脚本
若要了解如何使用这些命令,请参阅适用于 Linux 的托管运行命令和适用于 Windows 的托管运行命令。
注释
允许的托管运行命令的最大数目当前限制为 25。
比较功能支持
| 功能支持 | 操作执行命令 | 管理的运行命令 |
|---|---|---|
| ARM 模板 | 否,这是一个 POST 操作 | 是,这是一个资源类型 |
| 长时间运行 | 90 分钟限制 | 客户指定的超时 |
| 执行账户 | 系统帐户/root | 客户指定的用户 |
| 多个运行命令 | 仅一个处于活动状态 | 多个命令并行执行或按顺序执行 |
| 大输出 | 限于 4KB(在状态 blob 中) | 已上传到用户追加 Blob 数据块 |
| 进度跟踪 | 仅报告最终状态 | 在执行期间报告进度和最后的4k字节输出 |
| 异步执行 | 目标状态和配置正在等待脚本完成 | 客户指定的异步标志位,如果脚本需要等待预配。 |
| 虚拟机规模集支持 | 仅在 VM 实例上 | 支持虚拟机规模集模型和横向扩展 |
| SAS 生成 | 无 Blob 支持 | 自动化的过程中,CRP 为客户二进制大对象生成 SAS 并进行管理。 |
| 画廊(自定义命令) | 仅限于内置的命令标识符 | 客户可以发布脚本并共享它们 |