如何从Azure函数、REST API或多语言实现Azure虚拟机脚本执行?
问题解答
1. 能否不编写自定义脚本/包,直接通过REST API实现操作?
可以直接通过Azure官方REST API实现,无需自定义脚本或额外包。核心是调用Microsoft.Compute/virtualMachines/runCommand API:
- 先获取有效的Azure AD访问令牌完成身份验证
- 根据VM类型选择对应
commandId:Windows VM用RunBatchScript(执行批处理)或RunPowerShellScript;Linux VM用RunShellScript - 在请求体中指定要执行的脚本内容,或者脚本的存储URI(如Azure Blob中的脚本路径)
- 发送POST请求到目标VM的runCommand端点,即可远程触发脚本执行
2. 除PowerShell外,能否通过.NET Core、Java或Python实现上述功能?
完全可以,这几种语言都能借助Azure官方管理SDK简化操作,本质都是调用Azure虚拟机运行命令接口:
-.NET Core:使用Azure.ResourceManager.Compute NuGet包,通过VirtualMachine对象的GetRunCommands方法创建运行命令资源,传入脚本内容和命令ID后提交执行
-Java:使用Azure SDK for Java的azure-resourcemanager-compute依赖,通过VirtualMachinesClient的beginRunCommand方法,构造RunCommandInput参数指定脚本和命令类型
-Python:安装azure-mgmt-compute包,调用virtual_machines.run_command方法,传入资源组、VM名称及包含command_id和script的参数对象
内容的提问来源于stack exchange,提问作者Krishnan Sriram
相关产品推荐
相关产品推荐

