Удалить виртуальную машину - сбой настраиваемого сценария в шаблоне диспетчера ресурсов Azure

Я использую шаблон Azure Resource Manager для развертывания виртуальной машины в Azure. У меня есть собственный сценарий, который запускается после запуска виртуальной машины. Сценарий выполняется, даже если сценарий не работает, виртуальная машина остается в рабочем состоянии. Есть ли способ отключить виртуальную машину в случае сбоя настраиваемого сценария?

  "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.0",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "[uri(parameters('_artifactsLocation'), concat('scripts/copyfilefromazure.sh', parameters('_artifactsLocationSasToken')))]"
      ]
    },
    "protectedSettings": {
      "commandToExecute": "[concat('bash ', variables('scriptFileName'), ' ', variables('scriptArgs'))]"
    }

person Ahmed Shahid    schedule 16.01.2020    source источник
comment
Вам нужно выдать сообщения о полученной ошибке.   -  person Charles Xu    schedule 16.01.2020
comment
Ошибка внутренняя. Ожидается, что в некоторых случаях мой сценарий не сработает. Мне не нужно исправлять ошибку. Я просто хочу удалить виртуальную машину, если в скрипте есть ошибка.   -  person Ahmed Shahid    schedule 16.01.2020
comment
Есть еще обновления по этому вопросу? Решает ли это вашу проблему? Если да, пожалуйста, примите это.   -  person Charles Xu    schedule 23.01.2020


Ответы (1)


Для ваших требований вам необходимо узнать о последовательности выполнения развертывания шаблона.

Когда вы создаете виртуальную машину с расширением. Сначала он создаст виртуальную машину, а затем выполнит расширение виртуальной машины в виртуальной машине. ТАК, независимо от того, выполняется ли расширение виртуальной машины безуспешно или безуспешно. ВМ уже запущена. И я боюсь, что для вас нет такой возможности, чтобы в случае сбоя настраиваемого расширения шаблон удалял все ресурсы сам. Насколько мне известно, шаблон Azure не может удалять ресурсы.

Поэтому я думаю, что подходящим решением является создание сценария для проверки успешного выполнения расширения виртуальной машины, если нет, затем удалите расширение с помощью команды CLI _ 1_ (я предполагаю, что вы используете Azure CLI). Затем снова установите расширение виртуальной машины с помощью команды CLI _ 2_.

person Charles Xu    schedule 21.01.2020