Как использовать Google Compute Python API для создания пользовательского типа компьютера или экземпляра с графическим процессором? - PullRequest
1 голос
/ 23 октября 2019

Я просто пытаюсь использовать GCP для облачных вычислений. До сих пор я использовал AWS и библиотеку boto3 и пытался использовать клиентский API Google Python для запуска экземпляров.

Итак, я наткнулся на пример из их документов здесь . Тип машины экземпляра задается как:

machine_type = "zones/%s/machineTypes/n1-standard-1" % zone

, а затем он передается в конфигурацию как:

config = {
        'name': name,
        'machineType': machine_type,
....

Интересно, как можно определить машины с графическим процессором и настраиваемой оперативной памятью ипроцессоры и т.п. из Python API?

Ответы [ 2 ]

3 голосов
/ 24 октября 2019

Python API - это, по сути, оболочка для REST API , поэтому в примере кода, который вы используете, объект конфигурации создается с использованием той же схемы, что и при вставке request .

Чтение этого документа показывает, что структура guestAccelerators является релевантной для графических процессоров.

Более интересны пользовательские ОЗУ и ЦП. Существует формат для указания имени пользовательского типа машины (его можно найти в документации gcloud для создания типа машины). Формат:

[GENERATION]custom-[NUMBER_OF_CPUs]-[RAM_IN_MB]

Генерация относится к «n1» или «n2» в предопределенных именах. Для n1 этот блок пуст, для n2 префикс «n2-». Тем не менее, экспериментирование с gcloud, похоже, указывает на то, что «n1-» в качестве префикса также работает, как и следовало ожидать.

Итак, для машины с 1 ЦП n1 с 5 ГБ оперативной памяти это будет custom-1-5120,Это то, что вы бы заменили n1-standard-1 в вашем примере на.

Вы, конечно, подчиняетесь ограничениям на то, как указать пользовательский компьютер , таким как тот факт, что RAMдолжно быть кратно 256 МБ.

Наконец, в нижней части страницы консоли «Создать экземпляр» есть небольшая удобная функция:

Equivalent REST or command line image from compute engine console

Нажатие на соответствующую ссылку покажет вам точный объект REST, необходимый для создания машины, которую вы определили в консоли в тот самый момент, поэтому очень полезно увидеть, как используется тот или иной параметр.

2 голосов
/ 24 октября 2019

Вы можете создать экземпляр Compute Engine с помощью API Compute Engine. В частности, мы можем использовать API-запрос insert . Это принимает полезную нагрузку JSON в запросе REST, который описывает желаемый экземпляр виртуальной машины, который вы хотите. Полная спецификация запроса находится в документации. Он включает в себя:

  • machineType - спецификации различных (общих) машин, включая ЦП и память *
  • disks - спецификации дисков, которые необходимо добавить, включая размер и тип
  • guestAccelerators - спецификации для графических процессоров для добавления
  • много других опций ...

Можно также создать описание шаблона структуры машины, которую вы хотите, и упростить созданиеэкземпляра путем присвоения имени шаблону для использования и, следовательно, абстрагирования деталей конфигурации из кода в конфигурацию.

Помимо использования запросов REST (которые могут быть переданы с питона), у вас также есть возможность создавать ComputeДвигатели от:

  • GCP Console - веб-интерфейс
  • gcloud - командная строка (которую, я подозреваю, также можно запустить из Python)
  • Deployment Manager - развертывание на основе конфигурации, включающее Python в качестве языка шаблонов
  • Terraform - популярная среда для создания инфраструктуры как среды Code *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...