0

尝试使用 Azure nodejs SDK 并测试虚拟机运行命令,如Get StdOut from RunCommand using Azure VM Javascript SDK中所述。此调用的性能很差。用户是否有权更改虚拟机运行命令的超时值?

发送脚本的任何其他替代方法。

4

1 回答 1

1

是的,“运行命令”方式的性能不太好,如果使用 SDK 遇到超时错误,也许直接调用 REST API 将是一种解决方法。

在底层方面,当你使用SDK调用运行命令函数时,它调用了这个API:

POST https://management.azure.com/subscriptions/<your subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Compute/virtualMachines/<VM Name>/runCommand?api-version=2018-04-01

Request Headers:
Content-Type: application/json
Authorization: Bearer <access token>

Request Body:
{"commandId":"RunPowerShellScript","script":["<script content>"]}

一旦你成功调用它,你会得到一个 202 响应代码,并且在响应头中,会有一个参数“位置”,它的值是一个链接,你可以使用它来获取你的命令运行状态: 在此处输入图像描述

在此处输入图像描述

通过这种方式,您可以通过调用这个url来监控运行状态,而不是等待很长时间的响应。

除了在 Azure VM 上运行 ps 脚本的“运行命令”方式外,还有 3 种其他方式可以执行此操作:

  1. Azure VM 自定义脚本扩展
  2. 远程 PowerShell
  3. Azure 自动化 DSC

该博客对它们进行了很好的描述,您可以根据需要选择其中一个。

希望能帮助到你。

于 2019-08-26T01:19:35.053 回答