Да, производительность способа «запустить команду» не так хороша, если вы получаете ошибки тайм-аута с помощью SDK, возможно, прямой вызов остальных 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, а в заголовке ответа будет параметр «location», значением которого является ссылка, и вы можете получить статус выполнения своей команды, используя его:
![введите здесь описание изображения](https://i.stack.imgur.com/9Rm0N.png)
Таким образом, вы можете отслеживать текущий статус, вызывая этот URL, вместо того, чтобы ждать ответа в течение длительного времени.
Помимо способа «запустить команду» для запуска сценария ps на виртуальных машинах Azure, есть еще 3 способа сделать это:
- Расширение настраиваемого сценария виртуальной машины Azure
- Удаленный PowerShell
- Служба автоматизации Azure DSC
В этом блоге они хорошо описаны, вы можете выбрать один из них в зависимости от ваших требований.
Надеюсь, это поможет.
person
Stanley Gong
schedule
26.08.2019