Назад | Перейти на главную страницу

Как я могу автоматически освободить экземпляр Azure после завершения сценария?

Я хочу развернуть экземпляр Azure Linux, обработать некоторые данные, а затем, чтобы экземпляр автоматически перешел в остановленное (освобожденное) состояние, чтобы избежать дальнейшего выставления счетов.

Можно ли это сделать, в идеале просто запустив команду на экземпляре после завершения задания?

Изменить: после того, как комментарии ниже помогли с поиском соответствующей команды, я попытался запустить на экземпляре следующее, но с ошибкой:

[server]$ az vm deallocate --resource-group MyResources --name VMName

что приводит к ошибке

getattr(): attribute name must be string
Traceback (most recent call last):
  File "/anaconda/envs/py35/lib/python3.5/site-packages/azure/cli/main.py", line 36, in main
    cmd_result = APPLICATION.execute(args)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/azure/cli/core/application.py", line 177, in execute
    self.configuration.load_params(command)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/azure/cli/core/application.py", line 50, in load_params
    commands.load_params(command)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/azure/cli/core/commands/__init__.py", line 408, in load_params
    import_module(module_to_load).load_params(command)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/azure/cli/command_modules/vm/__init__.py", line 10, in load_params
    import azure.cli.command_modules.vm._params  # pylint: disable=redefined-outer-name, unused-variable
  File "/anaconda/envs/py35/lib/python3.5/site-packages/azure/cli/command_modules/vm/_params.py", line 78, in <module>
    c.register_cli_argument('vm', 'zone', zone_type)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/azure/cli/core/commands/__init__.py", line 62, in register_cli_argument
    if (isinstance(is_supported, tuple) and getattr(is_supported, self._operation_group)) or is_supported:
TypeError: getattr(): attribute name must be string

Для отмены выделения экземпляра требуется выполнить команду для API Azure, чтобы он выключил виртуальную машину, если у вас отключена Windows, она не будет освобождена. Что вы можете сделать, так это установить командлеты Azure PowerShell на свою виртуальную машину, а затем в конце сценария вызвать команду stop-azurermvm для завершения работы.

Тем не менее, рассматривали ли вы также возможность использования функций Azure? Это сделает всю эту работу за вас /